Metasploit
基本模块
- 辅助模块:Auxiliary
- 渗透攻击模块:exploit
- 攻击载荷模块:payload
- 编码模块:encoder
渗透攻击模块
相当于“破门工具”,它们只负责利用漏洞黑进去,但不包含进去之后给你什么样的终端控制权。
攻击载荷模块
- 反弹 Shell (Reverse Shell)
- 特征关键字:
reverse(最常见的是reverse_tcp) - 工作原理: 目标机器主动连接回你(攻击机)的 IP 和端口。通常用于绕过目标机器的防火墙拦截入站规则。
- 名字示例:
php/meterpreter/reverse_tcp、cmd/unix/reverse_netcat、linux/x86/meterpreter/reverse_tcp
- 特征关键字:
- 正向 Shell (Bind Shell)
- 特征关键字:
bind(最常见的是bind_tcp) - 工作原理: 目标机器在本地开放一个端口(比如 4444),然后你(攻击机)主动去连接它。如果目标机器有防火墙,这种方式很容易被拦截。
- 名字示例:
php/meterpreter/bind_tcp、cmd/unix/bind_netcat
- 特征关键字:
- 普通 Shell vs. 高级 Shell (Meterpreter)
- 普通 Shell: 名字里通常带有
shell或者cmd。它只给你一个基础的命令行黑框(比如 bash 或 cmd.exe)。示例:linux/x86/shell_reverse_tcp。 - 高级 Shell (Meterpreter): 名字里带有
meterpreter。这是 MSF 的“神器”,不仅是个 shell,还能一键提权、键盘记录、抓取密码、轻松上传/下载文件。示例:linux/x86/meterpreter/reverse_tcp。
- 普通 Shell: 名字里通常带有
控制台
msfconsole
使用方法:
search 关键字 # 根据关键字搜索某个模块
info 模块 # 列出模块基本信息
use 模块 # 使用某个模块
show options # 查看需要设置的选项
set option # 设置选项或攻击载荷
check # 检测是否易受攻击
exploit -j # 后台启动,要查看上线情况就结合 sessions 操作
run / exploit # 启动
sessions # 列出肉鸡会话列表
back # 回退
后门生成器
msfvenom
-h 帮助
-p 选择一个 payload
-l 载荷列表
-f 生成的文件格式
-e 编码方式
-i 编码次数
-b 在生成的程序中避免出现的值
-x 指定一个自定义的可执行文件作为模板(将木马绑到该可执行文件上)
-o 输出的文件名称
CobaltStrike
CobaltStrike(CS)是一款商业化的后渗透框架,常用于红队评估。其核心架构为 C/S 模式:团队服务器(Team Server)+ 客户端(Client)。所有被控主机(Beacon)都会回连到 Team Server。
核心概念
- Team Server:控制端服务,监听被控主机的回连,并记录所有操作日志。只能运行在 Linux 上。
- Beacon:CS 的 Payload(相当于 MSF 的 Meterpreter),运行在被控主机上,支持异步通信(默认低频心跳,隐蔽性强)和交互式通信。
- Listener:监听器,定义 Beacon 回连的协议/端口(HTTP、HTTPS、SMB、TCP、DNS 等)。
常用模块
| 模块 | 功能 |
|---|---|
| Cobalt Strike | 监听器管理、界面设置、脚本管理 |
| Modules | 调用 MSF 模块、脚本化攻击 |
| View | 图形化展示拓扑、凭证、日志、下载文件 |
| Attacks | 生成 Payload、钓鱼攻击、Web 投递 |
| Reporting | 自动化生成报告 |
典型上线流程
- 启动 Team Server:
./teamserver <你的IP> <连接密码> <Profile文件(可选)> - 客户端连接后,新建 Listener(如 HTTP Beacon)
Attacks → Packages → Windows Executable生成木马,或Attacks → Web Drive-by做钓鱼/投递- 目标执行木马后,在 Beacon 列表中可看到上线主机
Beacon 常用命令
help # 查看所有命令
sleep <秒> # 设置心跳时间,值越小越实时但越易被发现
shell <命令> # 通过 cmd 执行命令
run <命令> # 直接执行(无 cmd.exe 子进程)
upload / download # 上传 / 下载文件
powershell-import # 导入 PS 脚本
mimikatz # 直接调用 mimikatz 抓密码(需管理员权限)
hashdump # 导出本地 SAM 哈希
jump <横向模块> # 横向移动,如 jump psexec、jump psexec_psh、jump winrm
spawn <监听器> # 派生一个新的会话(如派生给 MSF)
SMB Beacon / 横向
利用 SMB 命名管道进行内网横向,link <主机> 可让目标主机通过 445 端口回连,适合不通外网的内网主机。
实战中常用 CrossC2 等插件扩展 CS 对 Linux/Mac 的支持,并配合 Profile 做流量特征伪装以绕过流量审计。
BloodHound
BloodHound 是一款可视化图形分析域环境中关系的工具:红队可用它识别复杂的攻击路径,蓝队可以用它来识别和防御这些路径。详细的安装、收集、查询、边(Edge)说明见 域渗透 → 信息收集 → BloodHound 章节。
信息收集
使用 bloodhound-python(Linux):
bloodhound-python -d contoso.com -u testuser -p Password123! -ns 192.168.1.10 -c all
使用 SharpHound(适用于已控的 Windows 域内机器):
# 可执行文件版本(通常需要免杀)
SharpHound.exe -c All
# PowerShell 脚本版本(可配合内存加载)
Import-Module .\SharpHound.ps1
Invoke-BloodHound -CollectionMethod All