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。

控制台

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自动化生成报告

典型上线流程

  1. 启动 Team Server:./teamserver <你的IP> <连接密码> <Profile文件(可选)>
  2. 客户端连接后,新建 Listener(如 HTTP Beacon)
  3. Attacks → Packages → Windows Executable 生成木马,或 Attacks → Web Drive-by 做钓鱼/投递
  4. 目标执行木马后,在 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