IanImranHuhn/Threat-Hunting-Port-Of-Entry
GitHub: IanImranHuhn/Threat-Hunting-Port-Of-Entry
一份完整的威胁狩猎与事件响应报告模板,展示如何使用KQL查询语言调查Windows环境下的入侵事件并映射到MITRE ATT&CK框架。
Stars: 0 | Forks: 0
# 威胁狩猎:Port of Entry
## 目录:
1. [摘要](#summary-of-findings)
2. [何人、何事、何时、何地、何因、如何](#who-what-when-where-why-how)
3. [影响评估](#impact-assessment)
4. [建议](#recommendations)
5. [失陷指标](#a-indicators-of-compromise)
6. [MITRE ATT&CK 映射](#b-mitre-attck-mapping)
7. [调查时间线](#c-investigation-timeline)
8. [调查查询](#d-investigation-queries)
## 事件响应报告
**报告日期:** 2026-01-18
**严重等级:** 严重
**报告状态:** 已控制
**上报给:** Security Operations Team
**事件 ID:** IR-2025-001
**分析师:** SOC Analyst
**受影响设备:** azuki-sl
**事件时间范围:** 2025-11-19 至 2025-11-20
## 调查结果摘要
* 来自外部 IP 地址 88.97.178.12 对用户账户 kenji.sato 的未授权远程桌面协议 (RDP) 访问
* 攻击者通过计划任务 "Windows Update Check" 建立持久性,执行来自 C:\ProgramData\WindowsCache\svchost.exe 的恶意 payload
* 使用重命名的 mimikatz (mm.exe) 执行 sekurlsa::logonpasswords 模块进行凭据转储,以从 LSASS 内存中提取密码
* 使用看似合法的 svchost.exe 进程与 78.141.196.6:443 建立 命令与控制 (C2) 通信
* 将压缩存档 文件通过 Discord 云服务外泄
* 尝试使用 mstsc.exe 横向移动到内部系统 10.1.0.188,并创建后门账户 "support" 以备将来访问
* 通过注册表修改禁用 Windows Defender 防护,排除了 3 个文件扩展名和临时文件夹路径
* 采用了反取证技术,包括清除安全事件日志和使用 living-off-the-land 二进制文件
## 何人、何事、何时、何地、何因、如何
### 何人
**攻击者:**
* 源 IP:88.97.178.12
* C2 基础设施:78.141.196.6:443
**受害者:**
* 账户:kenji.sato
* 系统:azuki-sl
* 创建的后门账户:support
### 何事
1. 来自 88.97.178.12 的初始 RDP 访问,使用了 kenji.sato 的受损凭据
2. 使用 ARP.EXE -a 进行网络侦察以枚举网络邻居
3. 使用 attrib 命令创建隐藏的暂存目录 C:\ProgramData\WindowsCache
4. 通过添加 3 个文件扩展名排除项并排除 C:\Users\KENJI~1.SAT\AppData\Local\Temp 路径来禁用 Windows Defender
5. 使用 certutil.exe 下载恶意 PowerShell 脚本 和工具
6. 通过计划任务 "Windows Update Check" 建立持久性,执行 C:\ProgramData\WindowsCache\svchost.exe
7. 部署凭据转储工具 使用 sekurlsa::logonpasswords 提取登录密码
8. 在端口 443 上建立与 78.141.196.6 的 C2 通信
9. 将窃取的数据压缩到 export-data.zip 存档中
10. 通过 Discord 云服务外泄数据
11. 创建后门管理员账户 "support"
12. 使用 wevtutil.exe 清除安全事件日志
13. 尝试使用 mstsc.exe 横向移动到 10.1.0.188
### 何时
| 日期/时间 (UTC) | 事件 |
|-----------------|-------|
| 2025-11-19 | 来自 88.97.178.12 的初始 RDP 访问 |
| 2025-11-19 | 使用 ARP 枚举进行网络侦察 |
| 2025-11-19 | 创建暂存目录并添加 Windows Defender 排除项 |
| 2025-11-19 | 使用 certutil.exe 下载恶意工具 |
| 2025-11-19 | 建立计划任务持久性 |
| 2025-11-19 | 使用 mm.exe 执行凭据转储 |
| 2025-11-19 | 建立到 78.141.196.6:443 的 C2 连接 |
| 2025-11-19 | 数据收集与压缩 |
| 2025-11-19 | 数据外泄至 Discord |
| 2025-11-19 | 创建后门账户 "support" |
| 2025-11-19 | 清除安全日志 |
| 2025-11-19 至 2025-11-20 | 尝试向 10.1.0.188 进行横向移动 |
### 何地
**被入侵系统:** azuki-sl
**基础设施:**
* 攻击者源 IP:88.97.178.12
* C2 服务器:78.141.196.6:443
* 外泄服务:Discord (HTTPS)
**恶意软件位置:**
* C:\ProgramData\WindowsCache\ (主要暂存目录)
* C:\ProgramData\WindowsCache\svchost.exe (恶意持久化 payload)
* C:\Users\KENJI~1.SAT\AppData\Local\Temp\ (已从扫描中排除)
* C:\ProgramData\WindowsCache\mm.exe (凭据转储工具)
* C:\ProgramData\WindowsCache\export-data.zip (用于外泄的压缩数据)
* wupdate.ps1 (初始 PowerShell 攻击脚本)
### 何因
**根本原因:**
* 用户 kenji.sato 的 RDP 凭据受损,允许直接的外部访问
* 网络分段不足,导致 RDP 暴露在公共互联网上
* 远程访问缺乏多因素认证 (MFA)
**攻击者目标:**
* 窃取凭据和数据外泄
* 建立持久访问以进行后续操作
* 向其他内部系统进行横向移动
### 如何
1. **初始访问:** 攻击者使用 kenji.sato 账户的受损凭据,通过来自 88.97.178.12 的 RDP 进行身份验证
2. **发现:** 执行 ARP.EXE -a 以枚举网络拓扑并识别横向移动目标
3. **防御规避:** 创建隐藏暂存目录 C:\ProgramData\WindowsCache 并修改 Windows Defender 设置以排除 3 个文件扩展名和临时文件夹路径
4. **执行:** 使用 certutil.exe 下载恶意 PowerShell 脚本 wupdate.ps1 以自动化攻击链
5. **持久性:** 创建计划任务 "Windows Update Check" 以在系统启动时执行 C:\ProgramData\WindowsCache\svchost.exe
6. **凭据访问:** 部署重命名的 mimikatz (mm.exe) 并执行 sekurlsa::logonpasswords 从 LSASS 内存转储凭据
7. **命令与控制:** 使用恶意 svchost.exe 进程建立到 78.141.196.6:443 的出站 HTTPS 连接
8. **收集:** 将窃取的数据压缩到 export-data.zip 存档中
9. **外泄:** 通过 HTTPS 将 export-data.zip 上传到 Discord 云服务
10. **影响:** 创建后门管理员账户 "support" 作为备用访问途径
11. **反取证:** 使用 wevtutil.exe 清除安全事件日志以销毁证据
12. **横向移动:** 尝试使用 mstsc.exe (远程桌面) 横向移动到 10.1.0.188
## 影响评估
**实际影响:**
* kenji.sato 账户凭据受损,且通过 mimikatz 捕获的其他账户也可能受损
* 通过 Discord 外泄的数据范围未知 (export-data.zip 的内容)
* 通过计划任务和 "support" 账户建立的持久后门访问
* 由于清除安全日志导致取证证据丢失
* 针对 10.1.0.188 展现出的横向移动能力
* 受损系统上的 Windows Defender 防护已被禁用
**风险等级:** 严重
## 建议
### 立即执行
* 隔离 azuki-sl 并进行完整的取证镜像
* 在边界防火墙阻止外部 IP 88.97.178.12 和 C2 服务器 78.141.196.6
* 禁用并删除所有系统上的后门账户 "support"
* 强制重置 kenji.sato 及 azuki-sl 上所有账户的密码
* 删除计划任务 "Windows Update Check" 及 C:\ProgramData\WindowsCache 目录
* 将 Windows Defender 排除项恢复为默认配置
* 检查并从备份中恢复安全事件日志 (如果可用)
* 监控 Discord 流量以发现持续的外泄尝试
* 扫描网络以查找其他系统上的失陷指标
### 短期 (1-7 天)
* 向 azuki-sl 和所有关键系统部署端点检测与响应 (EDR) 解决方案
* 实施网络分段以限制来自互联网的 RDP 访问
* 为所有远程访问服务启用多因素认证 (MFA)
* 进行凭据审计并强制重置所有特权账户的密码
* 审查并加强计划任务权限以防止未经授权的创建
* 实施应用程序白名单以阻止未授权的可执行文件
* 启用 PowerShell 日志记录和脚本块日志记录
* 部署网络监控以检测 ARP 扫描和侦察活动
* 审查防火墙规则以阻止到云服务的未授权出站连接
* 对 10.1.0.188 及横向移动路径中的其他系统进行受损评估
### 长期
* 实施要求所有身份验证均需 MFA 的条件访问策略
* 部署特权访问管理 (PAM) 解决方案
* 建立 Windows Defender 配置的安全基线,并监控未经授权的更改
* 部署安全信息和事件管理 (SIEM),并对 mimikatz 指标设置告警
* 开展侧重于凭据保护的安全意识培训
* 实施注册表监控以检测防御规避技术
* 建立威胁狩猎计划以主动识别类似的入侵
* 根据经验教训审查并更新事件响应程序
* 实施数据丢失防护 (DLP) 控制以监控云服务上传
* 建立合法 certutil.exe 使用行为的基线并对异常情况告警
## 附录
### A. 失陷指标
| 类别 | 指标 | 描述 |
|----------|-----------|-------------|
| 攻击者 IP | 88.97.178.12 | 初始 RDP 访问来源 |
| C2 服务器 | 78.141.196.6:443 | 命令与控制基础设施 |
| 恶意文件 | C:\ProgramData\WindowsCache\svchost.exe | 持久化 payload |
| 恶意文件 | C:\ProgramData\WindowsCache\mm.exe | 凭据转储工具 |
| 恶意文件 | wupdate.ps1 | PowerShell 攻击自动化脚本 |
| 恶意文件 | C:\ProgramData\WindowsCache\export-data.zip | 压缩的窃取数据 |
| 恶意目录 | C:\ProgramData\WindowsCache | 主要暂存目录 (隐藏) |
| 计划任务 | Windows Update Check | 持久化机制 |
| 账户 | kenji.sato | 受损用户账户 |
| 账户 | support | 后门管理员账户 |
| 外泄服务 | Discord | 用于数据窃取的云服务 |
### B. MITRE ATT&CK 映射
| 战术 | 技术 | ID | 证据 |
|--------|-----------|-----|----------|
| 初始访问 | 远程服务:远程桌面协议 | T1021.001 | 从 88.97.178.12 到 kenji.sato 账户的 RDP 连接 |
| 执行 | 命令和脚本解释器:PowerShell | T1059.001 | wupdate.ps1 脚本执行 |
| 持久性 | 计划任务/作业:计划任务 | T1053.005 | "Windows Update Check" 任务执行 svchost.exe |
| 持久性 | 创建账户:本地账户 | T1136.001 | 创建后门账户 "support" |
| 防御规避 | 损害防御:禁用或修改工具 | T1562.001 | 添加 Windows Defender 排除项 (3 个扩展名 + 临时文件夹) |
| 防御规避 | 隐藏痕迹:隐藏文件和目录 | T1564.001 | 通过 attrib 命令隐藏 C:\ProgramData\WindowsCache |
| 防御规避 | 指标移除:清除 Windows 事件日志 | T1070.001 | 使用 wevtutil.exe 清除安全日志 |
| 防御规避 | 系统二进制代理执行 | T1218 | 滥用 certutil.exe 进行文件下载 |
| 凭据访问 | 操作系统据转储:LSASS 内存 | T1003.001 | mm.exe (mimikatz) 使用 sekurlsa::logonpasswords |
| 发现 | 系统网络配置发现 | T1016 | 执行 ARP.EXE -a 进行网络枚举 |
| 横向移动 | 远程服务:远程桌面协议 | T1021.001 | mstsc.exe 针对 10.1.0.188 |
| 横向移动 | 使用备用认证材料 | T1550 | 用于横向移动的 Cmdkey 凭据缓存 |
| 收集 | 归档收集的数据:通过实用程序归档 | T1560.001 | 创建 export-data.zip |
| 命令与控制 | 应用层协议:Web 协议 | T1071.001 | 到 78.141.196.6:443 的 HTTPS C2 |
| 外泄 | 通过 Web 服务外泄 | T1567 | 使用 Discord 进行数据上传 |
### C. 调查时间线
| 时间 (UTC) | 事件 | 详情 |
|------------|-------|---------|
| 2025-11-19 | RDP 登录成功 | 外部 IP 88.97.178.12 以 kenji.sato 身份验证 |
| 2025-11-19 | 网络发现 | 执行 ARP.EXE -a 枚举网络邻居 |
| 2025-11-19 | 创建暂存目录 | 创建并隐藏 C:\ProgramData\WindowsCache |
| 2025-11-19 | 添加 Defender 排除项 | 3 个文件扩展名和临时文件夹被排除在扫描之外 |
| 2025-11-19 | 工具下载 | certutil.exe 用于下载 wupdate.ps1 和其他工具 |
| 2025-11-19 | 创建计划任务 | "Windows Update Check" 任务配置为运行 svchost.exe |
| 2025-11-19 | 凭据转储 | 执行 mm.exe 使用 sekurlsa::logonpasswords |
| 2025-11-19 | C2 连接 | 建立到 78.141.196.6:443 的出站连接 |
| 2025-11-19 | 数据压缩 | 创建 export-data.zip 存档 |
| 2025-11-19 | 数据外泄 | 通过 HTTPS 上传到 Discord |
| 2025-11-19 | 后门账户 | 创建 "support" 账户并加入管理员组 |
| 2025-11-19 | 清除日志 | 首先使用 wevtutil.exe 清除安全事件日志 |
| 2025-11-19 - 2025-11-20 | 横向移动 | 使用 mstsc.exe 和 cmdkey 针对 10.1.0.188 |
### D. 调查查询
**查询 1:初始访问 - 远程连接分析**
```
DeviceLogonEvents
| where DeviceName == "azuki-sl"
| where ActionType == "LogonSuccess"
| where isnotempty(RemoteIP)
| where RemoteIPType == "Public"
| where TimeGenerated between (datetime(2025-11-19) .. datetime(2025-11-20))
| project RemoteIP, AccountName
```
**结果:** 发现来自 88.97.178.12 的外部远程访问
**查询 2:初始访问 - 受损用户账户**
```
DeviceLogonEvents
| where DeviceName == "azuki-sl"
| where ActionType == "LogonSuccess"
| where isnotempty(RemoteIP)
| where RemoteIPType == "Public"
| where TimeGenerated between (datetime(2025-11-19) .. datetime(2025-11-20))
| project RemoteIP, AccountName
```
**结果:** 确认涉事用户账户为 kenji.sato
**查询 3:发现 - 网络侦察**
```
DeviceProcessEvents
| where AccountName == "kenji.sato"
| where ProcessCommandLine contains "arp"
| where TimeGenerated between (datetime(2025-11-19) .. datetime(2025-11-20))
| project ProcessCommandLine, TimeGenerated
| sort by TimeGenerated asc
| summarize count() by ProcessCommandLine
```
**结果:** 执行 ARP.EXE -a 命令进行网络邻居枚举
**查询 4:防御规避 - 创建暂存目录**
```
DeviceProcessEvents
| where DeviceName == "azuki-sl"
| where ProcessCommandLine contains "attrib"
| where TimeGenerated between (datetime(2025-11-19) .. datetime(2025-11-20))
| project ProcessCommandLine
| summarize by ProcessCommandLine
```
**结果:** 创建 C:\ProgramData\WindowsCache 并使用 attrib 命令隐藏
**查询 5:防御规避 - Defender 扩展名排除**
```
DeviceRegistryEvents
| where DeviceName == "azuki-sl"
| where TimeGenerated between (datetime(2025-11-19) .. datetime(2025-11-20))
| where RegistryKey has_all ("Exclusions", "Extensions")
```
**结果:** 3 个文件扩展名被添加到 Windows Defender 排除项
**查询 6:防御规避 - Defender 路径排除**
```
DeviceRegistryEvents
| where DeviceName == "azuki-sl"
| where RegistryKey contains "Exclusions" and RegistryKey contains "Paths"
| where PreviousRegistryValueName contains "temp"
| where TimeGenerated between (datetime(2025-11-19) .. datetime(2025-11-20))
| project PreviousRegistryValueName
```
**结果:** C:\Users\KENJI~1.SAT\AppData\Local\Temp 被排除在扫描之外
**查询 7:防御规避 - Living Off The Land 二进制文件滥用**
```
DeviceProcessEvents
| where AccountName == "kenji.sato"
| where ProcessCommandLine contains "url"
| where TimeGenerated between (datetime(2025-11-19) .. datetime(2025-11-20))
| summarize count() by FileName
```
**结果:** certutil.exe 被滥用于下载恶意文件
**查询 8:持久性 - 创建计划任务**
```
DeviceProcessEvents
| where AccountName == "kenji.sato"
| where FileName has "schtasks.exe"
| where ProcessCommandLine contains "/create"
| where TimeGenerated between (datetime(2025-11-19) .. datetime(2025-11-20))
| project ProcessCommandLine
```
**结果:** 为持久性创建了计划任务 "Windows Update Check"
**查询 9:持久性 - 计划任务目标**
```
DeviceProcessEvents
| where AccountName == "kenji.sato"
| where FileName has "schtasks.exe"
| where ProcessCommandLine contains "/tr"
| where TimeGenerated between (datetime(2025-11-19) .. datetime(2025-11-20))
| project ProcessCommandLine
```
**结果:** 任务配置为执行 C:\ProgramData\WindowsCache\svchost.exe
**查询 10:命令与控制 - C2 服务器识别**
```
DeviceNetworkEvents
| where DeviceName == "azuki-sl"
| where InitiatingProcessCommandLine contains "url"
| where RemoteIPType == "Public"
| where TimeGenerated between (datetime(2025-11-19) .. datetime(2025-11-20))
| project InitiatingProcessCommandLine, RemoteIP
```
**结果:** 识别到到 78.141.196.6 的 C2 连接
**查询 11:命令与控制 - C2 端口分析**
```
DeviceNetworkEvents
| where DeviceName == "azuki-sl"
| where RemoteIP == "78.141.196.6" and InitiatingProcessFileName == "svchost.exe"
| where TimeGenerated between (datetime(2025-11-19) .. datetime(2025-11-20))
| summarize count() by RemotePort
```
**结果:** 端口 443 (HTTPS) 上的 C2 通信
**查询 12:凭据访问 - 凭据转储工具**
```
DeviceProcessEvents
| where AccountName == "kenji.sato"
| where TimeGenerated between (datetime(2025-11-19) .. datetime(2025-11-20))
| where ProcessCommandLine contains "dump"
| project ProcessCommandLine
```
**结果:** 识别到 mm.exe (重命名的 mimikatz)
**查询 13:凭据访问 - 内存提取模块**
```
DeviceProcessEvents
| where AccountName == "kenji.sato"
| where TimeGenerated between (datetime(2025-11-19) .. datetime(2025-11-20))
| where ProcessCommandLine contains ">>" or ProcessCommandLine contains "::"
| project ProcessCommandLine
```
**结果:** 使用 sekurlsa::logonpasswords 模块提取凭据
**查询 14:收集 - 数据归档创建**
```
DeviceProcessEvents
| where AccountName == "kenji.sato"
| where TimeGenerated between (datetime(2025-11-19) .. datetime(2025-11-20))
| where ProcessCommandLine contains ".zip"
| project ProcessCommandLine
```
**结果:** 创建 export-data.zip 用于外泄
**查询 15:外泄 - 云服务识别**
```
DeviceNetworkEvents
| where DeviceName == "azuki-sl"
| where TimeGenerated between (datetime(2025-11-19) .. datetime(2025-11-20))
| where RemoteIPType == "Public"
| where InitiatingProcessCommandLine contains "https"
| project RemoteUrl, InitiatingProcessCommandLine
```
**结果:** Discord 被识别为外泄通道
**查询 16:反取证 - 事件日志清除**
```
DeviceProcessEvents
| where AccountName == "kenji.sato"
| where TimeGenerated between (datetime(2025-11-19) .. datetime(2025-11-20))
| where ProcessCommandLine contains "wevtutil.exe"
| project ProcessCommandLine, AccountDomain, TimeGenerated
| sort by TimeGenerated asc
```
**结果:** 首先使用 wevtutil.exe 清除安全日志
**查询 17:影响 - 后门账户创建**
```
DeviceProcessEvents
| where AccountName == "kenji.sato"
| where TimeGenerated between (datetime(2025-11-19) .. datetime(2025-11-20))
| where ProcessCommandLine contains "/add" and ProcessCommandLine contains "admin"
| project ProcessCommandLine, TimeGenerated
```
**结果:** 创建了具有管理员权限的后门账户 "support"
**查询 18:执行 - 恶意脚本识别**
```
DeviceFileEvents
| where DeviceName == "azuki-sl"
| where TimeGenerated between (datetime(2025-11-19) .. datetime(2025-11-20))
| where InitiatingProcessCommandLine contains ".ps1" or InitiatingProcessCommandLine contains ".bat"
| where FolderPath contains "temp"
| where InitiatingProcessCommandLine contains "http"
| project InitiatingProcessCommandLine, TimeGenerated
| sort by TimeGenerated asc
```
**结果:** 下载 wupdate.ps1 PowerShell 脚本以自动化攻击链
**查询 19:横向移动 - 目标识别**
```
DeviceProcessEvents
| where AccountName == "kenji.sato"
| where TimeGenerated between (datetime(2025-11-19) .. datetime(2025-11-20))
| where ProcessCommandLine contains "cmdkey" or ProcessCommandLine contains "mstsc"
| project ProcessCommandLine
```
**结果:** 10.1.0.188 被定为横向移动目标
**查询 20:横向移动 - 远程访问工具**
```
DeviceProcessEvents
| where AccountName == "kenji.sato"
| where TimeGenerated between (datetime(2025-11-19) .. datetime(2025-11-20))
| where ProcessCommandLine contains "10.1.0.188"
| project ProcessCommandLine, FileName
```
**结果:** mstsc.exe (远程桌面) 被用于横向移动
**查询 4:防御规避 - 创建暂存目录**
```
DeviceProcessEvents
| where DeviceName == "azuki-sl"
| where ProcessCommandLine contains "attrib"
| where TimeGenerated between (datetime(2025-11-19) .. datetime(2025-11-20))
| project ProcessCommandLine
| summarize by ProcessCommandLine
```
**结果:** 创建 C:\ProgramData\WindowsCache 并使用 attrib 命令隐藏
**查询 5:防御规避 - Defender 扩展名排除**
```
DeviceRegistryEvents
| where DeviceName == "azuki-sl"
| where TimeGenerated between (datetime(2025-11-19) .. datetime(2025-11-20))
| where RegistryKey has_all ("Exclusions", "Extensions")
```
**结果:** 3 个文件扩展名被添加到 Windows Defender 排除项
**查询 6:防御规避 - Defender 路径排除**
```
DeviceRegistryEvents
| where DeviceName == "azuki-sl"
| where RegistryKey contains "Exclusions" and RegistryKey contains "Paths"
| where PreviousRegistryValueName contains "temp"
| where TimeGenerated between (datetime(2025-11-19) .. datetime(2025-11-20))
| project PreviousRegistryValueName
```
**结果:** C:\Users\KENJI~1.SAT\AppData\Local\Temp 被排除在扫描之外
**查询 7:防御规避 - Living Off The Land 二进制文件滥用**
```
DeviceProcessEvents
| where AccountName == "kenji.sato"
| where ProcessCommandLine contains "url"
| where TimeGenerated between (datetime(2025-11-19) .. datetime(2025-11-20))
| summarize count() by FileName
```
**结果:** certutil.exe 被滥用于下载恶意文件
**查询 8:持久性 - 创建计划任务**
```
DeviceProcessEvents
| where AccountName == "kenji.sato"
| where FileName has "schtasks.exe"
| where ProcessCommandLine contains "/create"
| where TimeGenerated between (datetime(2025-11-19) .. datetime(2025-11-20))
| project ProcessCommandLine
```
**结果:** 为持久性创建了计划任务 "Windows Update Check"
**查询 9:持久性 - 计划任务目标**
```
DeviceProcessEvents
| where AccountName == "kenji.sato"
| where FileName has "schtasks.exe"
| where ProcessCommandLine contains "/tr"
| where TimeGenerated between (datetime(2025-11-19) .. datetime(2025-11-20))
| project ProcessCommandLine
```
**结果:** 任务配置为执行 C:\ProgramData\WindowsCache\svchost.exe
**查询 10:命令与控制 - C2 服务器识别**
```
DeviceNetworkEvents
| where DeviceName == "azuki-sl"
| where InitiatingProcessCommandLine contains "url"
| where RemoteIPType == "Public"
| where TimeGenerated between (datetime(2025-11-19) .. datetime(2025-11-20))
| project InitiatingProcessCommandLine, RemoteIP
```
**结果:** 识别到到 78.141.196.6 的 C2 连接
**查询 11:命令与控制 - C2 端口分析**
```
DeviceNetworkEvents
| where DeviceName == "azuki-sl"
| where RemoteIP == "78.141.196.6" and InitiatingProcessFileName == "svchost.exe"
| where TimeGenerated between (datetime(2025-11-19) .. datetime(2025-11-20))
| summarize count() by RemotePort
```
**结果:** 端口 443 (HTTPS) 上的 C2 通信
**查询 12:凭据访问 - 凭据转储工具**
```
DeviceProcessEvents
| where AccountName == "kenji.sato"
| where TimeGenerated between (datetime(2025-11-19) .. datetime(2025-11-20))
| where ProcessCommandLine contains "dump"
| project ProcessCommandLine
```
**结果:** 识别到 mm.exe (重命名的 mimikatz)
**查询 13:凭据访问 - 内存提取模块**
```
DeviceProcessEvents
| where AccountName == "kenji.sato"
| where TimeGenerated between (datetime(2025-11-19) .. datetime(2025-11-20))
| where ProcessCommandLine contains ">>" or ProcessCommandLine contains "::"
| project ProcessCommandLine
```
**结果:** 使用 sekurlsa::logonpasswords 模块提取凭据
**查询 14:收集 - 数据归档创建**
```
DeviceProcessEvents
| where AccountName == "kenji.sato"
| where TimeGenerated between (datetime(2025-11-19) .. datetime(2025-11-20))
| where ProcessCommandLine contains ".zip"
| project ProcessCommandLine
```
**结果:** 创建 export-data.zip 用于外泄
**查询 15:外泄 - 云服务识别**
```
DeviceNetworkEvents
| where DeviceName == "azuki-sl"
| where TimeGenerated between (datetime(2025-11-19) .. datetime(2025-11-20))
| where RemoteIPType == "Public"
| where InitiatingProcessCommandLine contains "https"
| project RemoteUrl, InitiatingProcessCommandLine
```
**结果:** Discord 被识别为外泄通道
**查询 16:反取证 - 事件日志清除**
```
DeviceProcessEvents
| where AccountName == "kenji.sato"
| where TimeGenerated between (datetime(2025-11-19) .. datetime(2025-11-20))
| where ProcessCommandLine contains "wevtutil.exe"
| project ProcessCommandLine, AccountDomain, TimeGenerated
| sort by TimeGenerated asc
```
**结果:** 首先使用 wevtutil.exe 清除安全日志
**查询 17:影响 - 后门账户创建**
```
DeviceProcessEvents
| where AccountName == "kenji.sato"
| where TimeGenerated between (datetime(2025-11-19) .. datetime(2025-11-20))
| where ProcessCommandLine contains "/add" and ProcessCommandLine contains "admin"
| project ProcessCommandLine, TimeGenerated
```
**结果:** 创建了具有管理员权限的后门账户 "support"
**查询 18:执行 - 恶意脚本识别**
```
DeviceFileEvents
| where DeviceName == "azuki-sl"
| where TimeGenerated between (datetime(2025-11-19) .. datetime(2025-11-20))
| where InitiatingProcessCommandLine contains ".ps1" or InitiatingProcessCommandLine contains ".bat"
| where FolderPath contains "temp"
| where InitiatingProcessCommandLine contains "http"
| project InitiatingProcessCommandLine, TimeGenerated
| sort by TimeGenerated asc
```
**结果:** 下载 wupdate.ps1 PowerShell 脚本以自动化攻击链
**查询 19:横向移动 - 目标识别**
```
DeviceProcessEvents
| where AccountName == "kenji.sato"
| where TimeGenerated between (datetime(2025-11-19) .. datetime(2025-11-20))
| where ProcessCommandLine contains "cmdkey" or ProcessCommandLine contains "mstsc"
| project ProcessCommandLine
```
**结果:** 10.1.0.188 被定为横向移动目标
**查询 20:横向移动 - 远程访问工具**
```
DeviceProcessEvents
| where AccountName == "kenji.sato"
| where TimeGenerated between (datetime(2025-11-19) .. datetime(2025-11-20))
| where ProcessCommandLine contains "10.1.0.188"
| project ProcessCommandLine, FileName
```
**结果:** mstsc.exe (远程桌面) 被用于横向移动
标签:AMSI绕过, C2通信, Cloudflare, Conpot, DAST, Discord C2, Living off the Land, Mimikatz, MITRE ATT&CK, RDP爆破, SOC分析, Windows安全, 事件响应报告, 凭据转储, 后门账户, 嗅探欺骗, 威胁检测, 安全运营, 库, 应急响应, 恶意软件分析, 扫描框架, 持久化攻击, 数字取证, 数据渗出, 权限维持, 横向移动, 清除日志, 私有化部署, 编程规范, 网络信息收集, 自动化脚本, 计划任务, 防御规避