adombrowiak/splunk-sysmon-detection-lab
GitHub: adombrowiak/splunk-sysmon-detection-lab
一个基于Splunk和Sysmon的检测工程实验室,演示如何通过进程创建事件分析来识别PowerShell滥用和攻击者行为。
Stars: 1 | Forks: 0
# Splunk + Sysmon 检测实验室
## 概述
本实验室演示了如何使用 Splunk 中的 Sysmon 遥测进行检测工程,重点是通过进程创建事件识别攻击者的攻击技术。
通过命令行活动和父子进程关系模拟和分析对抗技术,以开发与真实 SOC 和威胁狩猎工作流程相一致的行为检测。
## 环境
- Windows 11 虚拟机(终端)
- Ubuntu 虚拟机(Splunk 服务器)
- Splunk Enterprise
- Sysmon(自定义配置)
- Splunk Universal Forwarder
## 数据源
- Microsoft-Windows-Sysmon/Operational(事件 ID 1 - 进程创建)
## 涉及的技术
- T1059.001 - PowerShell
- T1218 - 签名二进制代理执行(rundll32)
- 进程注入模式(基础观察)
## 展示的关键技能
- 在 Splunk 中解析原始 XML 日志
- 使用正则表达式(rex)进行字段提取
- 进程和命令行分析
- 父子进程关系
- 检测逻辑开发
## 检测示例
- 可疑的 PowerShell 标志(-nop、hidden)
- 编码的 PowerShell 执行
- rundll32 执行跟踪
## 屏幕截图
### 1. 数据采集

Sysmon 遥测数据通过 Universal Forwarder 成功采集到 Splunk,来自 Windows 终端。
### 2. 原始 Sysmon 事件(事件 ID 1)

展开的 Sysmon 事件 ID 1(进程创建)原始 XML 格式,验证事件结构和可用于检测开发的字段。
### 3. 字段提取(进程 + 命令行)

使用正则表达式(rex)从原始 Sysmon XML 日志中提取进程镜像和命令行参数,实现结构化分析和检测开发。
### 4. 检测逻辑(PowerShell 活动)

聚合 Sysmon 进程创建事件以识别 PowerShell 执行频率,展示使用字段提取和统计分组的检测分析。
### 5. PowerShell 执行模式分析

此查询识别 PowerShell 执行活动并按进程镜像和命令行参数聚合结果。
通过按 `cmdline` 分组,此步骤揭示了 PowerShell 执行方式的变化,实现了对不同执行模式的可见性(例如,标准执行与脚本化或参数化使用)。
这对于检测工程至关重要,因为攻击者经常修改命令行参数以规避简单检测。
### 6. 可疑的 PowerShell 标志(编码命令)

此查询识别包含 `-enc` 标志的 PowerShell 执行,这是一种用于隐藏命令内容的常见混淆技术。
Base64 编码参数的存在表明可能存在通过在编码有效载荷中隐藏执行意图来规避检测的尝试。
通过从原始 Sysmon XML 中提取和分析命令行参数,此步骤展示了如何通过有针对性的检测逻辑发现混淆执行。
### 7. 可疑的 PowerShell 标志(更广泛检测)

此查询扩展检测逻辑以识别多个可疑的 PowerShell 执行标志,包括 `-enc`、`-nop` 和 `-w hidden`。
这些标志通常与攻击者技术相关,能够实现隐蔽执行、混淆和规避基本监控控制。
通过关联命令行参数中的多个指标,此步骤展示了超越单模式检测的更全面威胁狩猎方法。
### 8. 父子进程关系

此查询通过关联 Sysmon 事件 ID 1 遥测中的父进程和子进程来分析进程创建关系。
通过识别哪些进程会生成 PowerShell 和其他可执行文件,此步骤提供了对执行链的洞察,并揭示了对合法进程的潜在滥用。
父子关系是威胁狩猎的关键组成部分,因为它们有助于揭示可疑的进程生成模式,例如命令行解释器启动 PowerShell。
### 9. 生成 PowerShell 的父进程

此查询专门关注识别哪些父进程负责生成 PowerShell 执行。
过滤 PowerShell 活动并按父子关系分组有助于揭示执行链并突出显示进程在系统中的交互方式。
这种分析对于检测可疑行为至关重要,因为攻击者经常使用合法的父进程启动 PowerShell 以规避检测。
### 10. 可疑的 PowerShell 执行模式

此查询识别使用与恶意活动相关的常用被滥用命令行标志的 PowerShell 执行。
过滤器包括:
- `-enc`(编码命令)
- `-nop`(无配置文件执行)
- `-w hidden`(隐藏窗口执行)
通过隔离这些模式,此步骤突出了在真实攻击中经常观察到的行为,展示了如何利用命令行分析检测进程执行日志中的可疑活动。
## 关键要点
- Sysmon 事件 ID 1 提供对进程执行和攻击者行为的高保真可见性。
- 命令行分析对于检测混淆或隐蔽执行技术至关重要。
- 父子进程关系揭示了执行链和对合法进程的潜在滥用。
- 在真实环境中,基于行为的检测比静态指标更具弹性。
## 作者
Aaron
拥有 20 多年数字取证、事件响应和网络安全运营经验的网络安全专业人员。拥有网络安全技术硕士学位和 CompTIA CySA+ 认证。专注于检测工程、威胁狩猎和 SOC 工作流程。
标签:AMSI绕过, CIDR扫描, Conpot, EDR, Event ID 1, IPv6, OpenCanary, PowerShell, rundll32, Sysmon, Windows安全, XML日志解析, 命令执行监控, 威胁检测, 字段提取, 安全运营, 恶意行为检测, 扫描框架, 攻击模拟, 父子进程关系, 知识库安全, 端点检测响应, 红队防御, 脆弱性评估, 进程创建分析, 驱动签名利用