Meluukoi/splunk-detection-engineering-lab
GitHub: Meluukoi/splunk-detection-engineering-lab
该项目是一个使用 Splunk、Sysmon 和 Windows 事件日志进行检测规则开发与威胁狩猎实践的安全实验室。
Stars: 0 | Forks: 0
# Splunk 检测工程实验室
## 概述
本项目主要关注使用 Splunk Enterprise、Sysmon 和 Windows 事件日志进行检测工程和威胁狩猎。
目标是在调查从 Windows 终端收集的安全遥测数据的同时,针对常见的攻击者技术创建并验证检测规则。
## 实验环境
### 使用的工具
- Splunk Enterprise
- Splunk Universal Forwarder
- Sysmon
- Windows Event Viewer
- Windows Command Prompt
- PowerShell
### 数据来源
- Microsoft-Windows-Sysmon/Operational
- Windows 安全日志
- Windows 系统日志
## 检测场景 1:进程创建监控
### 目标
使用 Sysmon Event ID 1 检测并调查新创建的进程。
### 检测查询
``spl
source="WinEventLog:Microsoft-Windows-Sysmon/Operational"
EventID=1
## 调查分析
进程创建事件已成功索引到 Splunk 中。
多个进程被生成并经过验证,包括:
- cmd.exe
- notepad.exe
- powershell.exe
这些事件提供了对进程执行活动和父子进程关系的可见性。
## MITRE ATT&CK 映射
| 技术 | ID |
|------------|------------|
| 命令和脚本解释器 | T1059 |
| PowerShell | T1059.001 |
| Windows 命令行 Shell | T1059.003 |
## 截图
### Sysmon 进程创建事件

### CMD 执行检测

### 记事本执行检测

### PowerShell 执行检测
通过 Sysmon 进程创建事件识别出 PowerShell 活动。调查显示了 PowerShell 派生 `whoami.exe` 进程的过程,提供了对命令执行和父子进程关系的可见性。

# 检测场景 2:网络连接监控
## 目标
使用 Sysmon Event ID 3 检测并调查出站网络连接。
## 检测查询
```
source="WinEventLog:Microsoft-Windows-Sysmon/Operational"
"3 "
```
## 调查分析
网络连接事件已成功收集并索引到 Splunk 中。
通过使用网页浏览和 DNS 查找生成出站网络活动来进行测试。审查了 Sysmon Event ID 3 遥测数据以识别:
- 源 IP 地址
- 目标 IP 地址
- 目标端口
- 目标主机名
- 关联的进程
调查确认了网络连接事件的成功收集,并展示了对进程级网络活动的可见性。
这种可见性有助于识别可疑通信和潜在的命令与控制 (C2) 活动。
## MITRE ATT&CK 映射
| 技术 | ID |
|------------|------------|
| 应用层协议 | T1071 |
| 网络服务发现 | T1046 |
## 截图
### 网络连接事件
通过 Sysmon Event ID 3 捕获的网络连接活动。调查识别了出站连接、目标 IP 地址、目标主机名、目标端口以及发起连接的进程。

# 检测场景 3:DNS 监控
## 目标
使用 Sysmon Event ID 22 检测并调查 DNS 查询。
## 检测查询
```
source="WinEventLog:Microsoft-Windows-Sysmon/Operational"
EventID=22
```
## 调查分析
使用 Sysmon Event ID 22 成功收集了 DNS 查询事件并将其索引到 Splunk 中。
调查识别了:
- 查询的域名
- DNS 查询结果
- 关联的进程
- 用户上下文
对 Event ID 22 遥测数据的分析表明,系统和应用程序进程正在生成 DNS 请求,提供了对终端上域名解析活动的可见性。
这种可见性可以协助识别可疑域名、恶意软件通信和命令与控制 (C2) 活动。
## MITRE ATT&CK 映射
| 技术 | ID |
|------------|------------|
| 应用层协议:DNS | T1071.004 |
## 截图
### DNS 查询调查

# 检测场景 4:失败登录检测
## 目标
使用 Windows 安全 Event ID 4625 检测失败的认证尝试。
## 检测查询
```
source="WinEventLog:Security"
EventCode=4625
```
## 调查分析
失败登录事件已成功收集并索引到 Splunk 中。
调查识别了:
- 失败的认证尝试
- 源工作站信息
- 登录类型
- 失败原因和状态码
对 Event ID 4625 遥测数据的分析提供了对未成功认证活动的可见性,并有助于识别密码喷洒和暴力破解攻击。
## MITRE ATT&CK 映射
| 技术 | ID |
|------------|------------|
| 暴力破解 | T1110 |
## 截图
### 失败登录调查

# 检测场景 5:成功登录检测
## 目标
使用 Windows 安全 Event ID 4624 检测成功的认证事件。
## 检测查询
```
source="WinEventLog:Security"
EventCode=4624
```
## 调查分析
成功登录事件已成功收集并索引到 Splunk 中。
调查识别了:
- 认证的用户账户
- 登录类型
- 认证包
- 工作站信息
- 安全标识符 (SID)
对 Event ID 4624 遥测数据的分析提供了对成功认证活动的可见性,并有助于跟踪整个环境中的用户访问情况。
## MITRE ATT&CK 映射
| 技术 | ID |
|------------|------------|
| 有效账户 | T1078 |
## 截图
### 成功登录调查

# 检测场景 6:编码的 PowerShell 检测
## 目标
使用 Sysmon Event ID 1 检测使用编码 payload 执行的 PowerShell 命令。
## 检测查询
```
source="WinEventLog:Microsoft-Windows-Sysmon/Operational"
"-enc"
```
## 调查分析
通过 Sysmon 进程创建事件成功检测到了编码的 PowerShell 活动。
调查识别了:
- PowerShell 执行
- 编码的命令行参数
- 父子进程关系
- 用户执行上下文
对编码的 PowerShell 活动的分析提供了对攻击者常用于混淆命令和逃避检测的技术的可见性。
## MITRE ATT&CK 映射
| 技术 | ID |
|------------|------------|
| PowerShell | T1059.001 |
| 混淆文件或信息 | T1027 |
## 截图
### 编码的 PowerShell 检测

# 检测场景 8:新用户账户创建检测
## 目标
使用 Windows 安全 Event ID 4720 检测新创建的用户账户。
## 检测查询
```
source="WinEventLog:Security"
EventCode=4720
```
## 调查分析
用户账户创建事件已成功收集并索引到 Splunk 中。
调查识别了:
- 新创建的用户账户
- 安全标识符 (SID)
- 账户创建时间戳
- 关联的系统信息
对 Event ID 4720 遥测数据的分析提供了对账户创建活动的可见性,并有助于识别未经授权的持久化机制。
## MITRE ATT&CK 映射
| 技术 | ID |
|------------|------------|
| 创建账户 | T1136 |
## 截图
### 新用户账户创建调查

# 检测场景 9:安全组成员身份更改
## 目标
使用 Windows 安全 Event ID 4732 检测被添加到特权安全组的用户账户。
## 检测查询
```
source="WinEventLog:Security"
EventCode=4732
```
## 调查分析
安全组成员身份修改事件已成功收集并索引到 Splunk 中。
调查识别了:
- 被添加到特权组的用户账户
- 组名称和关联的权限
- 安全标识符 (SID)
- 账户修改活动
对 Event ID 4732 遥测数据的分析提供了对权限提升尝试和未授权账户修改的可见性。
调查确认了用户账户 **labuser** 被添加到了本地 **Administrators** 组中。
## MITRE ATT&CK 映射
| 技术 | ID |
|------------|------------|
| 账户操纵 | T1098 |
## 截图
### 安全组成员身份更改调查

# 检测场景 10:PowerShell 执行监控
## 目标
使用 Sysmon 进程创建事件检测并调查 PowerShell 执行活动。
## 检测查询
```
source="WinEventLog:Microsoft-Windows-Sysmon/Operational"
powershell.exe
```
### PowerShell 执行检测
通过 Sysmon 进程创建事件 (Event ID 1) 识别出了 PowerShell 活动。
调查显示 PowerShell 派生了 `whoami.exe` 进程,提供了对命令执行和父子进程关系的可见性。
这种类型的遥测可以帮助分析师识别恶意的 PowerShell 活动、利用后行为以及攻击者的侦察技术。
## MITRE ATT&CK 映射
| 技术 | ID |
|------------|------------|
| PowerShell | T1059.001 |
| 命令和脚本解释器 | T1059 |
## 截图
### PowerShell 执行调查

# 高级调查
以下调查建立在先前开发的检测基础之上,展示了使用 Splunk、Sysmon 和 Windows 事件日志进行更深入的威胁狩猎和事件分析的工作流。
## 调查 1:成功登录分析
### 相关检测
检测场景 7:成功登录监控
## 目标
使用 Windows 安全 Event ID 4624 调查成功的认证活动,并识别终端上发生的用户登录行为。
## 检测查询
```
source="WinEventLog:Security"
EventCode=4624
```
## 调查分析
成功登录事件已成功收集并在 Splunk 中进行了分析。
调查识别了:
- 认证的用户账户
- 交互式登录活动
- 认证包
- 源系统信息
- 登录会话详情
对 Event ID 4624 遥测数据的分析提供了对终端上发生的成功用户认证活动的可见性。
调查确认了一次成功的交互式登录 (Logon Type 2),展示了 Windows 如何记录合法的用户访问及相关认证详情。
这种可见性可以帮助分析师识别正常用户行为、未经授权的账户使用以及潜在的横向移动活动。
## MITRE ATT&CK 映射
| 技术 | ID |
|------------|------------|
| 有效账户 | T1078 |
## 截图
### 成功登录调查
通过 Windows 安全 Event ID 4624 识别出的成功认证活动。调查显示了交互式登录 (Logon Type 2)、认证包信息以及与成功登录事件相关联的用户账户详情。

## 调查 2:PowerShell 执行分析
### 相关检测
检测场景 1:进程创建检测
## 目标
调查 PowerShell 执行活动,并使用 Sysmon 进程创建事件分析父子进程关系。
## 检测查询
```
source="WinEventLog:Microsoft-Windows-Sysmon/Operational"
whoami.exe
```
## 调查分析
通过 Sysmon 进程创建事件成功识别出了 PowerShell 执行活动。
调查识别了:
- PowerShell 进程执行
- 子进程创建
- 命令执行活动
- 父子进程关系
对 Sysmon Event ID 1 遥测数据的分析表明,PowerShell 派生了 `whoami.exe` 进程。
这种行为演示了如何通过进程创建事件追踪命令执行活动,并为终端上发生的用户和攻击者操作提供了可见性。
监控父子进程关系可以帮助分析师识别可疑的 PowerShell 使用情况、攻击者侦察活动和利用后行为。
## MITRE ATT&CK 映射
| 技术 | ID |
|------------|------------|
| 命令和脚本解释器:PowerShell | T1059.001 |
| 系统所有者/用户发现 | T1033 |
## 截图
### PowerShell 执行调查
通过 Sysmon 进程创建事件识别出的 PowerShell 执行活动。调查显示 PowerShell 派生了 `whoami.exe` 进程,提供了对命令执行和父子进程关系的可见性。

## 调查 3:DNS 活动分析
### 相关检测
检测场景 3:DNS 监控
## 目标
使用 Sysmon Event ID 22 调查 DNS 查询活动,并识别由终端进程生成的域名解析请求。
## 检测查询
```
source="WinEventLog:Microsoft-Windows-Sysmon/Operational"
EventID=22
```
## 调查分析
通过 Sysmon DNS 查询事件成功识别出了 DNS 查询活动。
调查识别了:
- 查询的域名
- DNS 查询结果
- 关联的进程
- 用户上下文
对 Sysmon Event ID 22 遥测数据的分析表明,终端进程正在向外部域生成 DNS 请求。
这种可见性使分析师能够调查可疑的域名查询、恶意软件通信和潜在的命令与控制 (C2) 活动。
## MITRE ATT&CK 映射
| 技术 | ID |
|------------|------------|
应用层协议:DNS | T1071.004 |
## 截图
### DNS 活动调查
通过 Sysmon Event ID 22 识别出的 DNS 查询活动。调查显示了域名解析请求以及负责生成 DNS 查询的源进程。

# 调查 4:网络连接分析
## 相关检测
检测场景 2:网络连接监控
## 目标
使用 Sysmon Event ID 3 调查出站网络连接,并关联目标 IP 地址、端口和发起进程。
## 检测查询
```
source="WinEventLog:Microsoft-Windows-Sysmon/Operational"
EventID=3
```
## 调查分析
使用 Sysmon Event ID 3 成功收集了网络连接事件并将其索引到 Splunk 中。
调查识别了:
- 源 IP 地址
- 目标 IP 地址
- 目标主机名
- 目标端口
- 关联的进程
- 用户上下文
对 Event ID 3 遥测数据的分析提供了对终端上发生的出站网络活动的可见性。
调查确认了 Discord.exe 通过目标端口 53 向 DNS.Google (8.8.8.8) 发起了网络连接,展示了 Sysmon 如何记录进程级别的网络通信。
这种可见性可以帮助分析师识别可疑的出站连接、命令与控制 (C2) 活动以及未授权的网络通信。
## MITRE ATT&CK 映射
| 技术 | ID |
|------------|------------|
| 应用层协议 | T1071 |
| 网络服务发现 | T1046 |
## 截图
### 网络连接调查
通过 Sysmon Event ID 3 识别出的出站网络活动。调查显示 Discord.exe 通过目标端口 53 与 dns.google (8.8.8.8) 进行通信,提供了对进程级网络连接和相关用户上下文的可见性。

### 高级调查
# 调查 5:账户删除分析
## 相关检测
检测场景 8:账户生命周期监控
## 目标
使用 Windows 安全 Event ID 4726 调查用户账户删除活动。
## 检测查询
```
source="WinEventLog:Security"
EventCode=4726
```
## 调查分析
用户账户删除事件已成功收集并索引到 Splunk 中。
调查识别了:
- 被删除的用户账户
- 执行删除操作的用户
- 安全标识符 (SID)
- 计算机名
- 审核成功状态
对 Event ID 4726 遥测数据的分析提供了对终端上发生的账户生命周期活动的可见性。
调查确认了由用户 **milad** 执行了对本地账户 **labuser** 的删除操作。这展示了 Windows 安全审核如何记录账户移除事件以及相关的用户上下文。
这种可见性可以帮助分析师识别未授权的账户修改、持久化移除尝试以及可疑的管理活动。
## MITRE ATT&CK 映射
| 技术 | ID |
|------------|------------|
| 创建账户 | T1136 |
| 本地账户 | T1136.001 |
## 截图
### 账户删除调查
通过 Windows 安全 Event ID 4726 识别出的用户账户删除活动。调查显示本地账户 **labuser** 正在被移除,包括负责执行此操作的账户以及相关的审核详情。

标签:AI合规, Conpot, Sysmon, Windows安全, 安全实验室