dinesh3690/-soc-home-lab1

GitHub: dinesh3690/-soc-home-lab1

基于Splunk和Sysmon搭建的家庭SOC实验室,通过模拟暴力破解和端口扫描攻击来训练威胁检测与告警能力。

Stars: 0 | Forks: 0

# SOC 家庭实验室 — 使用 Splunk 和 Sysmon 的威胁检测 一个从零搭建的全功能安全运营中心( SOC )家庭实验室。该项目模拟真实世界的攻击场景,并使用行业标准工具进行检测——Splunk SIEM、Sysmon 端点监控以及 Kali Linux 作为攻击机。 ## 实验室架构 ``` ┌─────────────────────────────────────────────────────────────┐ │ HOST MACHINE (Laptop) │ │ │ │ ┌─────────────────┐ ┌────────────────────────┐ │ │ │ Windows Server │ │ Splunk Enterprise │ │ │ │ 2022 VM │────────▶│ (SIEM) │ │ │ │ │ logs │ localhost:8000 │ │ │ │ Sysmon v15.20 │ port │ │ │ │ │ UF installed │ 9997 │ index: wineventlog │ │ │ │ 192.168.136.131│ │ 192.168.136.1 │ │ │ └────────▲────────┘ └────────────────────────┘ │ │ │ attack │ │ ┌────────┴────────┐ │ │ │ Kali Linux VM │ │ │ │ (Attacker) │ │ │ │ 192.168.136.129│ │ │ └─────────────────┘ │ │ │ │ Network: VMware NAT — 192.168.136.0/24 │ └─────────────────────────────────────────────────────────────┘ ``` ## 使用工具 | 工具 | 版本 | 用途 | |------|---------|---------| | VMware Workstation Player | 17 | 虚拟化平台 | | Windows Server 2022 | 评估版(180天) | 目标/受害机 | | Sysmon | v15.20 | 端点遥测与日志记录 | | SwiftOnSecurity 配置 | 最新版 | Sysmon 检测规则集 | | Splunk Enterprise | 10.2.3 | SIEM — 日志收集、搜索、告警 | | Splunk Universal Forwarder | 10.2.3 | 从虚拟机向 Splunk 转发日志 | | Kali Linux | 2025.3 | 攻击机 | | Nmap | 7.98 | 端口扫描与服务枚举 | ## 已搭建功能 ### 1. 端点监控 - 在 Windows Server 2022 上部署 Sysmon v15.20 ,使用 SwiftOnSecurity 配置 - 配置 Splunk Universal Forwarder 将日志转发至集中式 Splunk SIEM - 收集两个日志源:Windows 安全事件和 Sysmon 操作日志 - 已收集超过 4500 条 Sysmon 事件和 965 条安全事件 ### 2. 暴力破解攻击模拟与检测 - 使用虚假凭据模拟 10 次连续登录失败 - 在 Splunk 中检测到 EventCode=4625(登录失败)事件 - 编写 SPL 检测规则,将事件按 60 秒窗口分组,当同一账户失败超过 5 次时触发告警 - 保存为计划 Splunk 告警,每 5 分钟运行一次 ### 3. 端口扫描模拟与分析 - 从 Kali Linux 对 Windows Server 2022 执行 Nmap 服务扫描 - 识别开放端口:135 (MSRPC)、139 (NetBIOS-SSN)、445 (SMB)、5357、5985 (Microsoft HTTP API) - 操作系统指纹确认:Windows,CPE `cpe:/o:microsoft:windows` - 以漏洞评估格式记录发现结果,包含服务版本信息 ## 攻击检测 ### 检测 1 — 暴力破解登录攻击 **攻击:** 短时间内针对 Windows 账户多次登录失败 **日志源:** Windows 安全 — EventCode 4625(账户登录失败) **SPL 查询:** ``` index=wineventlog EventCode=4625 | bucket _time span=60s | stats count by _time, Account_Name, ComputerName | where count >= 5 ``` **结果:** 在 60 秒窗口内检测到账户 `FakeUser` 在 `WIN-OHJAI5IO3E2` 上发生 10 次登录失败 **告警:** 计划 Splunk 告警 — 当任意 60 秒周期内登录失败次数超过 5 次时触发 ### 检测 2 — 网络侦察(端口扫描) **攻击:** 从 Kali Linux (192.168.136.129) 对 Windows Server (192.168.136.131) 执行 Nmap 端口扫描 **工具:** `nmap -p 1-1000 -T4 192.168.136.131` **发现结果:** | 端口 | 状态 | 服务 | 版本 | |------|-------|---------|---------| | 135/tcp | open | msrpc | Microsoft Windows RPC | | 139/tcp | open | netbios-ssn | Microsoft Windows netbios-ssn | | 445/tcp | open | microsoft-ds | Microsoft Windows Server 2008 R2 | | 5357/tcp | open | http | Microsoft HTTPAPI httpd 2.0 | | 5985/tcp | open | http | Microsoft HTTPAPI httpd 2.0 | **风险:** 端口 445 (SMB) 开放 — 历史上曾被 EternalBlue (MS17-010)、WannaCry 勒索软件利用。端口 135 (RPC) 开放 — 存在潜在的 DCE/RPC 攻击面。 **建议:** 通过 Windows 防火墙关闭不必要的端口。禁用 SMBv1。将 RPC 访问限制在内部网络。 **使用的 Sysmon 查询:** ``` index=wineventlog source="WinEventLog:Microsoft-Windows-Sysmon/Operational" EventCode=3 | stats dc(DestinationPort) as ports_scanned, values(DestinationPort) as ports by SourceIp, ComputerName ``` ## SPL 查询参考 ### 搜索所有 Sysmon 事件 ``` index=wineventlog source="WinEventLog:Microsoft-Windows-Sysmon/Operational" ``` ### 搜索所有登录失败事件 ``` index=wineventlog EventCode=4625 ``` ### 搜索所有成功登录事件 ``` index=wineventlog EventCode=4624 ``` ### 暴力破解检测规则 ``` index=wineventlog EventCode=4625 | bucket _time span=60s | stats count by _time, Account_Name, ComputerName | where count >= 5 ``` ### 进程创建事件(Sysmon EventCode=1) ``` index=wineventlog source="WinEventLog:Microsoft-Windows-Sysmon/Operational" EventCode=1 | table _time, ComputerName, Image, CommandLine, ParentImage ``` ### 网络连接事件(Sysmon EventCode=3) ``` index=wineventlog source="WinEventLog:Microsoft-Windows-Sysmon/Operational" EventCode=3 | table _time, SourceIp, DestinationIp, DestinationPort, Image ``` ### 按频率排名的 Top 进程 ``` index=wineventlog source="WinEventLog:Microsoft-Windows-Sysmon/Operational" EventCode=1 | stats count by Image | sort -count | head 20 ``` ## 关键 Sysmon 事件代码参考 | 事件代码 | 描述 | 使用场景 | |-----------|-------------|----------| | 1 | 进程创建 | 检测恶意软件执行 | | 3 | 网络连接 | 检测 C2 通信、端口扫描 | | 5 | 进程终止 | 跟踪进程生命周期 | | 7 | 镜像加载 | 检测 DLL 注入 | | 8 | CreateRemoteThread | 检测进程注入 | | 11 | 文件创建 | 检测文件释放 | | 12/13 | 注册表事件 | 检测持久化机制 | | 22 | DNS 查询 | 检测可疑 DNS 解析 | ## 关键 Windows 安全事件代码参考 | 事件代码 | 描述 | |-----------|-------------| | 4624 | 成功登录 | | 4625 | 登录失败 | | 4648 | 使用显式凭据登录 | | 4672 | 分配特殊权限 | | 4720 | 创建用户账户 | | 4726 | 删除用户账户 | | 4728 | 向安全组添加成员 | ## 经验教训 - Sysmon EventCode=3 记录的是受监控主机的出站连接,而非入站扫描——入站侦察更适合通过防火墙日志或基于网络的入侵检测系统(IDS)来检测 - SwiftOnSecurity Sysmon 配置开箱即用,覆盖全面且误报率低 - Windows 防火墙会在连接完全建立前阻止大部分 Nmap SYN 扫描数据包,因此启用基于主机的防火墙能有效对抗侦察行为 - Splunk 的 `bucket` 命令对于基于时间窗口的检测规则至关重要——它将事件按固定时间段分组,用于阈值告警 - Universal Forwarder 必须以 LocalSystem 身份运行,才能访问 Windows Server 2022 上 Sysmon 的事件日志通道 ## 仓库文件列表 ``` soc-home-lab/ ├── README.md — This file ├── splunk-queries/ │ ├── brute-force-detection.spl — Brute force SPL query │ ├── port-scan-detection.spl — Port scan SPL query │ └── useful-soc-queries.spl — General SOC queries ├── docs/ │ ├── lab-setup-guide.md — Step by step setup guide │ └── vulnerability-assessment.md — Nmap findings report └── network-diagram/ └── lab-architecture.md — Network diagram description ``` ## 展示的技能 - SIEM 配置与日志接入(Splunk Enterprise) - 端点检测与响应(EDR)工具部署(Sysmon) - 攻击模拟——暴力破解与网络侦察 - SPL(搜索处理语言)查询编写 - 告警规则创建与基于阈值的检测 - 漏洞评估与结果文档化 - 网络流量分析与端口扫描解读 - Windows 安全事件日志分析 - Linux(Kali)攻击安全工具使用 ## 参考 - [Sysmon 文档 — Microsoft Sysinternals](https://learn.microsoft.com/en-us/sysinternals/downloads/sysmon) - [SwiftOnSecurity Sysmon 配置](https://github.com/SwiftOnSecurity/sysmon-config) - [Splunk SPL 参考](https://docs.splunk.com/Documentation/Splunk/latest/SearchReference) - [MITRE ATT&CK — 暴力破解 (T1110)](https://attack.mitre.org/techniques/T1110/) - [MITRE ATT&CK — 网络扫描 (T1046)](https://attack.mitre.org/techniques/T1046/) *该项目作为网络安全组合项目的一部分,旨在展示面向入门级安全职位的 SOC 分析师技能。*
标签:AMSI绕过, CTI, SOC仿真, Sysmon, Universal Forwarder, Windows Server 2022, 免杀技术, 威胁检测, 安全实验环境, 安全运营中心, 家庭实验室, 插件系统, 攻击模拟, 暴力破解检测, 端口扫描检测, 端点监控, 网络安全, 网络映射, 隐私保护, 驱动签名利用