ckvishwa/soc-analyst-portfolio

GitHub: ckvishwa/soc-analyst-portfolio

基于 Splunk + Sysmon 的 SOC 分析师实战作品集,在 Active Directory 实验环境中模拟完整 Windows 攻击链并编写对应的 MITRE ATT&CK 检测规则与调查报告。

Stars: 0 | Forks: 0

# 企业 SOC 检测实验室 ![Splunk](https://img.shields.io/badge/Splunk-10.4.0-green) ![Sysmon](https://img.shields.io/badge/Sysmon-v15.20-blue) ![MITRE](https://img.shields.io/badge/MITRE-ATT%26CK%20v14-red) ![AD](https://img.shields.io/badge/Active%20Directory-SOCLAB.LOCAL-orange) ![Kali](https://img.shields.io/badge/Attacker-Kali%20Linux-purple) ![Status](https://img.shields.io/badge/Status-Active-brightgreen) **Vishva Teja Chikoti** | 网络安全 | SOC 分析师 [LinkedIn](https://linkedin.com/in/vishvack) • [邮箱](mailto:vchik2@unh.newhaven.edu) • 求职意向:SOC 分析师 L1 / 检测工程师 ## 作品集数据统计 | 指标 | 数值 | |--------|-------| | 实验室 / 模拟总数 | 14(8 个企业 AD + 6 个独立环境) | | 已分析的真实安全事件 | 8,000+ Windows + Sysmon 事件 | | 映射的 MITRE ATT&CK 技术 | 跨 9 个战术的 25 项技术 | | 自定义 SPL 检测规则 | 14 条规则 | | 调查报告 | 8 份结构化分析师报告 | | 覆盖的攻击阶段 | 初始访问 → 侦察 → 执行 → 凭证访问 → 横向移动 → 持久化 → C2 | | 实验室环境 | 3 虚拟机 Active Directory 域(DC + 端点 + Kali 攻击机) | | 攻击机 | Kali Linux — 真实的跨机攻击 | ## 实验室架构 ``` ┌─────────────────────────────────────────────────────────────┐ │ Lab Network: 192.168.10.0/24 │ │ Domain: SOCLAB.LOCAL │ │ │ │ ┌──────────────────────┐ ┌──────────────────────┐ │ │ │ Windows Server 2019 │ │ Windows 10 │ │ │ │ Domain Controller │◄──│ Victim Endpoint │ │ │ │ 192.168.10.10 │ │ 192.168.10.20 │ │ │ │ AD DS + DNS │ │ Sysmon v15.20 │ │ │ │ Splunk Enterprise │ │ Splunk UF │ │ │ │ Sysmon v15.20 │ │ jsmith (domain) │ │ │ └──────────┬───────────┘ └──────────┬───────────┘ │ │ │ log forwarding │ │ │ └──────────┬───────────────┘ │ │ ▼ port 9997 │ │ ┌─────────────────┐ │ │ │ Splunk indexes │ │ │ │ endpoint │ │ │ │ wineventlog │ │ │ └─────────────────┘ │ │ │ │ ┌──────────────────────┐ │ │ │ Kali Linux │ ← Real attacker machine │ │ │ 192.168.10.50 │ brute force, SMB, recon │ │ └──────────────────────┘ │ └──────────────────────────────────────────────────────────────┘ ``` ## 第 1 部分 — 企业 AD 检测实验室 (v2) 3 虚拟机 Active Directory 环境。来自 Kali 的真实跨机攻击。所有遥测数据均收集在 Splunk 中。 ### 实验室配置 - Windows Server 2019 被提升为域控 (`SOCLAB.LOCAL`) - Windows 10 端点加入域,用户为 `SOCLAB\jsmith` - Kali Linux 攻击机位于同一网段 - 两台 Windows 机器上均部署了 Sysmon v15.20 - Splunk Enterprise 从端点接收了 4,000+ 个事件 ### 攻击模拟与检测 | # | 模拟 | MITRE 技术 | 战术 | 攻击机 | 检测 | 状态 | |---|-----------|----------------|--------|---------|-----------|--------| | 01 | PowerShell 可疑执行 | T1059.001 | 执行 | Win10 | DET-001 ✅ 触发 | ✅ | | 02 | 暴力破解登录 | T1110.001 | 凭证访问 | **Kali Linux** | DET-002 ✅ 触发 | ✅ | **查看完整实验室环境的实际运行情况:** [DET-008 — 3 台虚拟机全部运行并成功触发 DNS 信标检测](screenshots/splunk-searches/det-008-dns-beacon-all-vms.png) | 03 | 凭证转储模拟 | T1003.001 | 凭证访问 | Win10 | DET-003 ✅ 触发 | ✅ | | 04 | 计划任务持久化 | T1053.005 | 持久化 | Win10 | DET-004 ✅ 触发 | ✅ | | 05 | 注册表 Run Key 持久化 | T1547.001 | 持久化 | Win10 | DET-005 ✅ 触发 | ✅ | | 06 | 进程注入指标 | T1055 | 防御规避 | Win10 | DET-006 ✅ 触发 | ✅ | | 07 | 通过 SMB 进行横向移动 | T1021.002 | 横向移动 | **Kali Linux** | DET-007 ✅ 触发 | ✅ | | 08 | DNS/HTTP 信标流量 | T1071.001/004 | 命令控制 (C2) | Win10 | DET-008 ✅ 触发 | ✅ | ### 已验证的检测 **DET-001 — 可疑 PowerShell 执行** ✅ 在 Splunk 中实时运行 ``` index=endpoint sourcetype="XmlWinEventLog:Microsoft-Windows-Sysmon/Operational" "1" | rex field=_raw "(?[^<]+)" | rex field=_raw "(?[^<]+)" | rex field=_raw "(?[^<]+)" | rex field=_raw "(?[^<]+)" | search Image="*powershell*" (CommandLine="*EncodedCommand*" OR CommandLine="*ExecutionPolicy Bypass*" OR CommandLine="*WindowStyle Hidden*" OR CommandLine="*DownloadString*") | table _time, host, User, Image, ParentImage, CommandLine | sort -_time ``` **结果:** 在 `SOCLAB\jsmith` 从 `cmd.exe` 运行编码的 PowerShell 时触发 — 确认为真阳性。 **DET-002 — 暴力破解登录** ✅ 在 Splunk 中实时运行 ``` index=wineventlog EventCode=4625 | stats count AS failures BY Account_Name, Source_Network_Address | where failures >= 3 | sort -failures ``` **结果:** 检测到来自 Kali Linux (192.168.10.50) 针对 `testuser01` 的 11 次 SMB 登录失败尝试 — 确认账户锁定(事件 4740)。 **查看全部 8 条检测规则:** [`detections/`](detections/) ## 第 2 部分 — 独立检测实验室 (v1) 单虚拟机实验室,利用真实的 Windows 遥测数据覆盖额外的攻击阶段。 ### 完整攻击链 ``` [Lab 4] Initial Access Phishing email → weaponized PDF.exe → credential harvesting ↓ [Lab 1] Reconnaissance whoami → ipconfig → systeminfo → netstat → tasklist ↓ [Lab 2] Execution Malicious PowerShell → Base64 obfuscation → encoded command execution RuntimeBroker.exe → PowerShell (anomalous parent — suspected injection, not confirmed) ↓ [Lab 3] Credential Access Brute force → 10 attempts in 5 sec via svchost ↓ [Lab 5] Explicit Credential Use cmdkey credential enumeration → EventCode 4648 (explicit credential use) → local RDP session ↓ [Lab 6] Persistence Run Key + Fake Service + Winlogon Hijack = 3 simultaneous persistence mechanisms ``` ### 实验室 | # | 实验室 | MITRE 技术 | 关键发现 | 状态 | |---|-----|-----------------|-------------|--------| | 1 | [侦察检测](./labs/Lab1-Recon-Detection.md) | T1033, T1016, T1082 | 在 SYSTEM 和用户上下文中观察到侦察命令 — 可能存在双重落脚点 | ✅ | | 2 | [PowerShell 检测](./labs/Lab2-PowerShell-Detection.md) | T1059.001, T1027 | RuntimeBroker.exe → PowerShell — 异常的父子进程关系(怀疑 T1055,未确认) | ✅ | | 3 | [暴力破解检测](./labs/Lab3-Brute-Force-Detection.md) | T1110.001 | 5 秒内来自本地主机经由 svchost 的 10 次失败尝试 | ✅ | | 4 | [钓鱼分诊](./labs/Lab4-Phishing-Triage.md) | T1566.001, T1027, T1036.007 | Base64 URL 解码为 evil.com/steal + pdf.exe 附件 | ✅ | | 5 | [RDP 认证与显式凭证检测](./labs/Lab5-RDP-Lateral-Movement.md) | T1021.001, T1078 (部分) | EventCode 4648 — 在本地主机上观察到通过 cmdkey 使用显式凭证 | ✅ | | 6 | [持久化狩猎](./labs/Lab6-Persistence-Hunt.md) | T1547.001, T1543.003, T1547.004 | 检测到 3 种同时存在的持久化机制 | ✅ | ## 完整的 MITRE ATT&CK 覆盖范围 | 战术 | 技术 ID | 技术名称 | 实验室/模拟 | 已检测 | |--------|-------------|---------------|---------|---------| | 初始访问 | T1566.001 | 鱼叉式钓鱼附件 | Lab 4 | ✅ | | 执行 | T1059.001 | PowerShell | Lab 2, SIM-001 | ✅ | | 执行 | T1027 | 混淆文件 | Lab 2, Lab 4 | ✅ | | 凭证访问 | T1110.001 | 暴力破解:密码猜测 | Lab 3, SIM-002 | ✅ | | 凭证访问 | T1078 | 有效账户 | Lab 5 (部分) | ⚠️ 未确认对手滥用 | | 凭证访问 | T1003.001 | LSASS 内存 (模拟) | SIM-003 | ✅ | | 持久化 | T1547.001 | 注册表 Run Keys | Lab 6, SIM-005 | ✅ | | 持久化 | T1543.003 | Windows 服务 | Lab 6 | ✅ | | 持久化 | T1547.004 | Winlogon 助手 | Lab 6 | ✅ | | 持久化 | T1053.005 | 计划任务 | SIM-004 | ✅ | | 防御规避 | T1055 | 进程注入 | SIM-006 | ✅ | | 防御规避 | T1036.007 | 伪装 | Lab 4 | ✅ | | 发现 | T1033 | 系统所有者发现 | Lab 1 | ✅ | | 发现 | T1016 | 系统网络配置发现 | Lab 1 | ✅ | | 发现 | T1082 | 系统信息发现 | Lab 1 | ✅ | | 横向移动 | T1021.001 | 远程服务:RDP | Lab 5 | ✅ | | 横向移动 | T1021.002 | SMB 管理共享 | SIM-007 | ✅ | | 命令控制 (C2) | T1071.001 | Web 协议 | SIM-008 | ✅ | | 命令控制 (C2) | T1071.004 | DNS | SIM-008 | ✅ | **已映射 25 项技术。已检测 25 项。** ## 使用的工具 | 工具 | 角色 | 版本 | |------|------|---------| | Splunk Enterprise | SIEM — 索引、搜索、仪表板、告警 | 10.4.0 | | Sysmon | 高级端点遥测 | v15.20 | | Windows Server 2019 | 域控制器 (AD DS, DNS) | 评估版 | | Windows 10 | 受害者端点 | 21H2 | | Kali Linux | 攻击机 — 真实的跨机攻击 | 2024.x | | CyberChef | Base64 解码、IOC 分析 | 在线版 | | VirusTotal | 哈希与 URL 信誉检测 | 在线版 | | MITRE ATT&CK Navigator | 覆盖范围可视化 | v14 | | hydra / smbclient | 暴力破解模拟(仅限实验室) | Kali 内置 | ## 检测工程工作流 ``` Kali / Win10 Sysmon + Windows Splunk SPL Attack Simulation ──► Event Log Telemetry ──► Detection Query │ │ ▼ ▼ Attack Simulation MITRE ATT&CK Tune + Save Alert Documentation ◄─── Mapping ◄─── + FP Analysis │ ▼ Investigation Report (analyst POV — timeline, artifacts, decision) ``` ## 关键发现 | 模拟/实验室 | 发现 | 严重程度 | |---------------|---------|---------| | SIM-001 PowerShell | `cmd.exe → powershell.exe -EncodedCommand -ExecutionPolicy Bypass` — Sysmon 事件 1 | 高 | | SIM-002 暴力破解 | 11 次来自 Kali 192.168.10.50 的 SMB 失败 — testuser01 被锁定(事件 4740) | 高 | | SIM-003 LSASS | rundll32.exe + comsvcs.dll → lsass.exe 访问 — Sysmon 事件 10 | 严重 | | SIM-004 计划任务 | 由 SOCLAB\jsmith 执行 schtasks /create — Sysmon 事件 1 | 高 | | SIM-005 注册表 | reg.exe 写入 HKCU\...\Run — Sysmon 事件 13 | 高 | | SIM-006 注入 | mavinject.exe → notepad.exe CreateRemoteThread — Sysmon 事件 8 | 严重 | | SIM-007 横向移动 | 来自 Kali 192.168.10.50 的 SMB ADMIN$ 访问 — DC 上的事件 4624 类型 3 | 高 | | SIM-008 信标通信 | backgroundTaskHost.exe — 以 5 秒间隔向 soclab.local 发起 15 次周期性 DNS 查询 — Sysmon 事件 22 — DET-008 触发了 85 个事件 — [截图](screenshots/splunk-searches/det-008-dns-beacon-all-vms.png) | 中 | | Lab 1 侦察 | 在 SYSTEM 和用户上下文中观察到侦察命令 — 可能存在双重落脚点或单一攻击者处于多个安全上下文中 | 高 | | Lab 2 PowerShell | RuntimeBroker.exe → PowerShell — 异常的父子进程关系 — 如果没有事件 8/10,怀疑是 T1055 但未确认 | 高 | | Lab 3 暴力破解 | 5 秒内通过本地主机的 svchost 发生 10 次登录失败 | 严重 | | Lab 4 钓鱼 | Base64 URL 解码为 evil.com/steal — 识别出 pdf.exe 附件 | 严重 | | Lab 5 RDP | EventCode 4648 — 观察到通过 cmdkey 使用显式凭证 — 仅限本地主机范围 | 高 | | Lab 6 持久化 | 检测到 3 种同时存在的持久化机制:Run Key + 服务 + Winlogon | 严重 | ## 关键经验总结 1. **Sysmon 事件 ID 1 是最具价值的检测源** — `ParentImage` + `CommandLine` + `User` 结合起来可以解决分诊过程中的大部分歧义 2. **真实的跨机攻击看起来与本地模拟不同** — Kali 的暴力破解会生成类型 3 的网络登录事件,而本地模拟生成的则是类型 2 的交互式登录事件 3. **误报才是真正的工程工作** — 最初的 检测在 Splunk UF 自身的进程上触发了告警;在规则发挥作用之前,需要进行基线分析调优 4. **账户锁定本身就是一种检测** — 事件 4740 是一种高保真的暴力破解确认信号,无需任何调优 5. **异常的父子进程关系需要佐证** — RuntimeBroker → PowerShell 很可疑,但无法自我证实;在断言 T1055 之前需要事件 ID 8 或 10 6. **事件 ID 4648 是一个信号,而不是最终判定** — 显式凭证使用可能是合法的;请务必将其与进程名称、目标服务器和账户上下文进行关联 7. **3 种同时存在的持久化机制比单一机制更难被检测到** — 防御者必须同时对 Run Key、服务和 Winlogon 进行威胁狩猎 ## 简历要点 ## 仓库结构 ``` soc-analyst-portfolio/ ├── README.md ├── lab-setup/ ← VM build, network diagram, Splunk + Sysmon install ├── configs/ ← sysmonconfig.xml, inputs.conf, indexes.conf ├── detections/ ← 8 SPL detection rules + detection index ├── attack-simulations/ ← 8 enterprise AD simulation docs ├── investigation-reports/ ← structured analyst reports per detection ├── mitre-attack-mapping/ ← full MITRE ATT&CK mapping table ├── dashboards/ ← Splunk dashboard SPL panels ├── false-positive-analysis/ ← FP notes and tuning recommendations ├── resume-linkedin/ ← resume bullets, LinkedIn post, talking points ├── labs/ ← v1 standalone lab markdown files ├── reports/ ← executive incident report ├── detection/ ← v1 SPL correlation searches ├── references/ ← tools used, glossary └── screenshots/ ├── lab-architecture/ ← DC setup, domain join, network proof ├── splunk-searches/ ← all 8 detection results + FP evidence ├── alerts/ ← saved Splunk alerts └── sysmon-events/ ← Sysmon telemetry verification ``` ## 免责声明
标签:AMSI绕过, Cloudflare, IP 地址批量处理, MITRE ATT&CK, PE 加载器, Sysmon, Terraform 安全, 威胁检测, 安全运营, 扫描框架, 攻击模拟, 红队行动, 驱动签名利用