Metasploit入门系列(四)——小结备查
字数 1823 2025-08-18 11:39:00

Metasploit入门系列(四)——命令详解与使用技巧

核心命令详解

基本操作命令

  • ?help: 显示帮助菜单
  • banner: 显示Metasploit标志性横幅
  • cd: 更改当前工作目录
  • color: 切换颜色显示
  • connect: 与指定主机建立连接通信
  • exit/quit: 退出控制台
  • history: 显示命令历史记录
  • irb: 进入交互式Ruby脚本模式
  • sleep: 暂停指定秒数
  • spool: 将控制台输出同时写入文件和屏幕
  • threads: 查看和操作后台线程
  • version: 显示框架和控制台库版本号

变量操作命令

  • get: 获取特定上下文变量的值
  • getg: 获取全局变量的值
  • set: 设置特定上下文变量的值
  • setg: 设置全局变量的值
  • unset: 取消设置一个或多个特定上下文变量
  • unsetg: 取消设置一个或多个全局变量
  • save: 保存当前数据存储状态(下次登录时会自动加载)

模块相关命令

模块基础操作

  • advanced: 显示模块的高级选项
  • back: 从当前上下文返回上一级
  • edit: 使用编辑器编辑当前模块
  • info: 显示模块详细信息
  • loadpath: 从指定路径搜索并加载模块
  • options: 显示模块的全局选项
  • reload_all: 重新加载所有定义的模块路径中的模块
  • search: 搜索模块名称和描述
  • show: 显示给定类型或所有模块
  • use: 按名称选择模块

模块堆栈操作

  • popm: 弹出堆栈中最新模块并激活
  • previous: 将之前加载的模块设为当前模块
  • pushm: 将活动模块或模块列表推入堆栈

作业管理命令

  • handler: 作为作业启动负载处理程序
  • jobs: 显示和管理当前作业
  • kill: 终止指定作业
  • rename_job: 重命名作业

资源脚本命令

  • makerc: 将当前会话的命令历史保存到文件
  • resource: 执行存储在文件中的命令序列

数据库相关命令

数据库连接与管理

  • db_connect: 连接到现有数据库
  • db_disconnect: 断开当前数据库连接
  • db_export: 导出数据库内容到文件
  • db_import: 导入扫描结果文件(自动检测类型)
  • db_nmap: 执行nmap扫描并自动记录结果
  • db_rebuild_cache: 重建模块缓存
  • db_status: 显示当前数据库状态

数据查看命令

  • hosts: 列出数据库中所有主机
  • loot: 列出所有战利品数据
  • notes: 列出所有备注信息
  • services: 列出所有服务信息
  • vulns: 列出所有漏洞信息
  • workspace: 切换数据库工作区

凭证管理命令

  • creds: 列出数据库中所有凭证信息

高级使用技巧

命令对比与选择

  • runexploit: 功能相同,但习惯上exploit用于exploits模块
  • db_nmap与普通nmap: 功能相同,但db_nmap会将结果自动记录到数据库

会话管理

  • sessions: 查看当前所有会话
  • sessions -i [ID]: 进入指定会话的shell

资源文件使用

  1. 创建资源文件(.rc格式):
    vi custom.rc
    
  2. 执行资源文件:
    • 在msfconsole中使用:resource custom.rc
    • 在命令行直接执行:msfconsole -r custom.rc

变量持久化

  • 使用setg设置全局变量后,配合save命令可永久保存配置
  • 下次启动msfconsole时会自动加载保存的配置

实用建议

  1. 常用命令组合:

    • use [模块]show optionsset [参数]exploit
  2. 数据库集成:

    • 优先使用db_nmap而非普通nmap,便于结果管理
    • 可导入外部扫描结果到数据库
  3. 工作流程优化:

    • 使用资源文件(.rc)保存常用命令序列
    • 利用makerc快速创建资源文件
    • 通过sessions管理多个连接
  4. 开发习惯:

    • 终止作业使用kill而非"删除"(开发者习惯用语)
    • 利用pushm/popm管理模块堆栈提高效率

通过掌握这些命令和技巧,可以显著提高Metasploit的使用效率和渗透测试工作流程的自动化程度。

Metasploit入门系列(四)——命令详解与使用技巧 核心命令详解 基本操作命令 ? 或 help : 显示帮助菜单 banner : 显示Metasploit标志性横幅 cd : 更改当前工作目录 color : 切换颜色显示 connect : 与指定主机建立连接通信 exit / quit : 退出控制台 history : 显示命令历史记录 irb : 进入交互式Ruby脚本模式 sleep : 暂停指定秒数 spool : 将控制台输出同时写入文件和屏幕 threads : 查看和操作后台线程 version : 显示框架和控制台库版本号 变量操作命令 get : 获取特定上下文变量的值 getg : 获取全局变量的值 set : 设置特定上下文变量的值 setg : 设置全局变量的值 unset : 取消设置一个或多个特定上下文变量 unsetg : 取消设置一个或多个全局变量 save : 保存当前数据存储状态(下次登录时会自动加载) 模块相关命令 模块基础操作 advanced : 显示模块的高级选项 back : 从当前上下文返回上一级 edit : 使用编辑器编辑当前模块 info : 显示模块详细信息 loadpath : 从指定路径搜索并加载模块 options : 显示模块的全局选项 reload_all : 重新加载所有定义的模块路径中的模块 search : 搜索模块名称和描述 show : 显示给定类型或所有模块 use : 按名称选择模块 模块堆栈操作 popm : 弹出堆栈中最新模块并激活 previous : 将之前加载的模块设为当前模块 pushm : 将活动模块或模块列表推入堆栈 作业管理命令 handler : 作为作业启动负载处理程序 jobs : 显示和管理当前作业 kill : 终止指定作业 rename_job : 重命名作业 资源脚本命令 makerc : 将当前会话的命令历史保存到文件 resource : 执行存储在文件中的命令序列 数据库相关命令 数据库连接与管理 db_connect : 连接到现有数据库 db_disconnect : 断开当前数据库连接 db_export : 导出数据库内容到文件 db_import : 导入扫描结果文件(自动检测类型) db_nmap : 执行nmap扫描并自动记录结果 db_rebuild_cache : 重建模块缓存 db_status : 显示当前数据库状态 数据查看命令 hosts : 列出数据库中所有主机 loot : 列出所有战利品数据 notes : 列出所有备注信息 services : 列出所有服务信息 vulns : 列出所有漏洞信息 workspace : 切换数据库工作区 凭证管理命令 creds : 列出数据库中所有凭证信息 高级使用技巧 命令对比与选择 run 与 exploit : 功能相同,但习惯上 exploit 用于exploits模块 db_nmap 与普通 nmap : 功能相同,但 db_nmap 会将结果自动记录到数据库 会话管理 sessions : 查看当前所有会话 sessions -i [ID] : 进入指定会话的shell 资源文件使用 创建资源文件(.rc格式): 执行资源文件: 在msfconsole中使用: resource custom.rc 在命令行直接执行: msfconsole -r custom.rc 变量持久化 使用 setg 设置全局变量后,配合 save 命令可永久保存配置 下次启动msfconsole时会自动加载保存的配置 实用建议 常用命令组合: use [模块] → show options → set [参数] → exploit 数据库集成: 优先使用 db_nmap 而非普通nmap,便于结果管理 可导入外部扫描结果到数据库 工作流程优化: 使用资源文件(.rc)保存常用命令序列 利用 makerc 快速创建资源文件 通过 sessions 管理多个连接 开发习惯: 终止作业使用 kill 而非"删除"(开发者习惯用语) 利用 pushm / popm 管理模块堆栈提高效率 通过掌握这些命令和技巧,可以显著提高Metasploit的使用效率和渗透测试工作流程的自动化程度。