nadeznamorris/Threat-Hunting-Scenario-Port-Of-Entry
GitHub: nadeznamorris/Threat-Hunting-Scenario-Port-Of-Entry
一个基于 Microsoft Defender XDR 平台的威胁狩猎实战场景项目,通过 Azuki 企业入侵事件演练 KQL 查询与攻击链分析能力。
Stars: 0 | Forks: 0
# 威胁狩猎场景-入口点:Azuki 入侵事件
**报告 ID:** INC-2025-2211
**分析师:** Nadezna Morris
**日期:** 2025年11月22日
**事件日期:** 2025年11月19日
## 执行摘要
Azuki Import/Export Trading Co. 遭遇了一次针对性的企业间谍入侵,导致确认有敏感的供应商合同和定价数据被窃取。攻击始于使用泄露的 IT 管理员凭证(`kenji.sato`)通过外部 IP `88.97.178.12` 进行的未经授权的远程桌面协议 (RDP) 访问。威胁行为者展示了高级的后漏洞利用技术——部署了一个重命名的 Mimikatz 二进制文件进行凭证收集,滥用原生 Windows 实用程序以规避防御,并通过计划任务和隐藏的后门账户建立了持久访问。被窃取的数据被集中打包成一个 ZIP 存档,并通过 Discord 渗透出去,绕过了传统的数据防泄漏控制。攻击者随后清除了安全事件日志以阻碍取证调查。受损范围超出了 `AZUKI-SL`,已确认横向移动到了内部主机 `10.1.0.188`。此次入侵与从事竞争性情报窃取的出于经济动机的攻击者行为一致。
## 1. 调查发现
### 关键失陷指标
| 指标 | 描述 |
| --------------------------------------- | ----------------------------------|
| 88.97.178.12 | RDP 初始访问源 |
| 78.141.196.6 | C2 服务器 |
| 10.1.0.188 | 横向移动目标 |
| kenji.sato | 被攻陷的 IT 管理员 |
| support | 攻击者创建的后门账户 |
| C:\ProgramData\WindowsCache\ | 恶意暂存目录 |
| C:\ProgramData\WindowsCache\svchost.exe | 持久化恶意载荷 |
| mm.exe | 重命名的 Mimikatz 二进制文件 |
| wupdate.ps1 | 初始攻击引导脚本 |
| export-data.zip | 被窃取的数据存档 |
| Windows Update Check | 持久化机制 |
| sekurlsa::logonpasswords | Mimikatz 凭证转储模块 |
| certutil.exe | 用于远程工具下载 |
| mstsc.exe | 用于通过 RDP 进行横向移动 |
| Discord | 渗透通道 |
***FLAG 1 - 初始访问 - 远程访问源***
**目标:** 远程桌面协议连接留下的网络痕迹可用于识别未经授权访问的来源。确定来源有助于进行威胁行为者归因并阻断正在进行的攻击。
**Flag 值:** `88.97.178.12`
```
DeviceLogonEvents
| where DeviceName == "azuki-sl"
| where Timestamp between (datetime(2025-11-19) .. datetime(2025-11-20))
| project Timestamp, DeviceName, AccountName, ActionType, RemoteDeviceName, RemoteIP
| order by Timestamp asc
```
***FLAG 2 - 初始访问 - 被攻陷的用户账户***
**目标:** 识别哪些凭证被窃取,可确定未经授权访问的范围,并指导包括密码重置和权限审查在内的修复工作。
**Flag 值:** `kenji.sato`
```
DeviceLogonEvents
| where DeviceName == "azuki-sl"
| where Timestamp between (datetime(2025-11-19) .. datetime(2025-11-20))
| project Timestamp, DeviceName, AccountName, ActionType, RemoteDeviceName, RemoteIP
| order by Timestamp asc
```
***FLAG 3: 发现 - 网络侦察***
**目标:** 攻击者枚举网络拓扑以识别横向移动的机会和高价值目标。这种侦察活动是高级持续性威胁的关键指标。
**Flag 值:** `"ARP.EXE" -a`
```
DeviceProcessEvents
| where DeviceName == "azuki-sl"
| where Timestamp between (datetime(2025-11-19) .. datetime(2025-11-20))
| where ProcessCommandLine has_any ("arp", "ipconfig", "nbtstat")
| project Timestamp, DeviceName, FileName, ProcessCommandLine, FolderPath, AccountName
| order by Timestamp asc
```
***FLAG 4: 防御规避 - 恶意暂存目录***
**目标:** 攻击者建立暂存位置以组织工具和窃取的数据。识别这些目录能揭示入侵范围,并帮助定位其他恶意工件。
**Flag 值:** `C:\ProgramData\WindowsCache`
```
DeviceProcessEvents
| where DeviceName == "azuki-sl"
| where Timestamp between (datetime(2025-11-19) .. datetime(2025-11-20))
| where ProcessCommandLine has "attrib"
| project Timestamp, DeviceName, ActionType, FileName, ProcessCommandLine
| order by Timestamp asc
```
***FLAG 5: 防御规避 - 文件扩展名排除***
**目标:** 攻击者向 Windows Defender 添加文件扩展名排除项,以防止恶意文件被扫描。统计这些排除项能揭示攻击者防御规避策略的广度。
**Flag 值:** `3`
```
DeviceRegistryEvents
| where DeviceName == "azuki-sl"
| where Timestamp between (datetime(2025-11-19) .. datetime(2025-11-20))
| where RegistryKey has_any ("\\Exclusions\\Extensions")
| project Timestamp, DeviceName, ActionType, RegistryValueName, RegistryKey
| order by Timestamp asc
```
***FLAG 6: 防御规避 - 临时文件夹排除***
**目标:** 攻击者向 Windows Defender 添加文件夹路径排除项,以防止用于下载和执行恶意工具的目录被扫描。这些排除项使得恶意软件能够不被察觉地运行。
**Flag 值:** `C:\Users\KENJI~1.SAT\AppData\Local\Temp`
```
DeviceRegistryEvents
| where DeviceName == "azuki-sl"
| where Timestamp between (datetime(2025-11-19) .. datetime(2025-11-20))
| where RegistryKey has_any ("Paths")
| project Timestamp, DeviceName, ActionType, RegistryValueName, RegistryKey, InitiatingProcessFolderPath
| order by Timestamp asc
```
***FLAG 7: 防御规避 - 滥用下载实用程序***
**目标:** 合法的系统实用程序常被武器化以在逃避检测的同时下载恶意软件。识别这些技术有助于改进防御控制。
**Flag 值:** `certutil.exe`
```
DeviceProcessEvents
| where DeviceName == "azuki-sl"
| where Timestamp between (datetime(2025-11-19) .. datetime(2025-11-20))
| where ProcessCommandLine has_any ("appinstaller.exe", "bitsadmin.exe", "certoc.exe", "certreq.exe", "certutil.exe", "cmd.exe")
| project Timestamp, DeviceName, ActionType, FileName, ProcessCommandLine
| order by Timestamp asc
```
***FLAG 8: 持久化 - 计划任务名称***
**目标:** 计划任务在系统重启后提供可靠的持久性。任务名称通常试图伪装成合法的 Windows 维护例程。
**Flag 值:** `Windows Update Check`
```
DeviceProcessEvents
| where DeviceName == "azuki-sl"
| where Timestamp between (datetime(2025-11-19) .. datetime(2025-11-20))
| where ProcessCommandLine has_any ("schtasks")
| project Timestamp, DeviceName, ActionType, FileName, ProcessCommandLine
| order by Timestamp asc
```
***FLAG 9: 持久化 - 计划任务目标***
**目标:** 计划任务在系统重启后提供可靠的持久性。任务名称通常试图伪装成合法的 Windows 维护例程。
**Flag 值:** `C:\ProgramData\WindowsCache\svchost.exe`
```
DeviceProcessEvents
| where DeviceName == "azuki-sl"
| where Timestamp between (datetime(2025-11-19) .. datetime(2025-11-20))
| where ProcessCommandLine has_any ("schtasks")
| project Timestamp, DeviceName, FileName, ProcessCommandLine
| order by Timestamp asc
```
***FLAG 10: 命令与控制 (C2) - C2 服务器地址***
**目标:** 命令与控制基础设施允许攻击者远程控制受损系统。识别 C2 服务器可支持网络阻断和基础设施追踪。
**Flag 值:** `78.141.196.6`
```
DeviceNetworkEvents
| where DeviceName == "azuki-sl"
| where Timestamp between (datetime(2025-11-19) .. datetime(2025-11-20))
| where InitiatingProcessFileName in~ ("powershell.exe", "cmd.exe", "curl.exe", "wget.exe", "bitsadmin.exe")
| project Timestamp, DeviceName, InitiatingProcessFileName, InitiatingProcessCommandLine, RemoteUrl, RemoteIP
| order by Timestamp asc
```
***FLAG 11: 命令与控制 (C2) - C2 通信端口***
**目标:** C2 通信端口可指示所使用的框架或协议。此信息支持网络检测规则和威胁情报关联。
**Flag 值:** `443`
```
DeviceNetworkEvents
| where DeviceName == "azuki-sl"
| where Timestamp between (datetime(2025-11-19) .. datetime(2025-11-20))
| where InitiatingProcessFileName in~ ("powershell.exe", "cmd.exe", "curl.exe", "wget.exe", "bitsadmin.exe")
| project Timestamp, DeviceName, InitiatingProcessFileName, InitiatingProcessCommandLine, RemoteUrl, RemoteIP, RemotePort
| order by Timestamp asc
```
***FLAG 12: 凭证访问 - 凭证窃取工具***
**目标:** 凭证转储工具从系统内存中提取身份验证机密。这些工具通常会被重命名以避免基于签名的检测。
**Flag 值:** `mm.exe`
```
DeviceProcessEvents
| where DeviceName == "azuki-sl"
| where Timestamp between (datetime(2025-11-19) .. datetime(2025-11-20))
| where ProcessCommandLine has_any (".exe")
| where ProcessVersionInfoProductName has_any ("Mimikatz", "LaZagne", "lsassy", "nanodump", "ProcDump")
| project Timestamp, DeviceName, FileName, ProcessVersionInfoProductName, ProcessCommandLine
| order by Timestamp asc
```
***FLAG 13: 凭证访问 - 内存提取模块***
**目标:** 凭证转储工具使用特定模块从安全子系统提取密码。记录所使用的确切技术有助于检测工程。
**Flag 值:** `sekurlsa::logonpasswords`
```
DeviceProcessEvents
| where DeviceName == "azuki-sl"
| where Timestamp between (datetime(2025-11-19) .. datetime(2025-11-20))
| where ProcessCommandLine has_any (".exe")
| where ProcessVersionInfoProductName has_any ("Mimikatz", "LaZagne", "lsassy", "nanodump", "ProcDump")
| project Timestamp, DeviceName, FileName, ProcessVersionInfoProductName, ProcessCommandLine
| order by Timestamp asc
```
***FLAG 14: 收集 - 数据暂存存档***
**目标:** 攻击者压缩窃取的数据以便高效地渗透。存档文件名通常包含日期或攻击者组织的描述性名称。
**Flag 值:** `export-data.zip`
```
DeviceProcessEvents
| where DeviceName == "azuki-sl"
| where Timestamp between (datetime(2025-11-19) .. datetime(2025-11-20))
| where ProcessCommandLine has_any (".zip")
| project Timestamp, DeviceName, FileName, ProcessCommandLine
| order by Timestamp asc
```
***FLAG 15: 渗透 - 渗透通道***
**目标:** 具有上传功能的云服务经常被滥用于数据窃取。识别该服务有助于确定事件范围和潜在的数据恢复。
**Flag 值:** `discord`
```
DeviceNetworkEvents
| where DeviceName == "azuki-sl"
| where Timestamp between (datetime(2025-11-19) .. datetime(2025-11-20))
| where InitiatingProcessAccountName == "kenji.sato"
| where RemotePort == "443"
| project Timestamp, DeviceName, InitiatingProcessCommandLine, RemoteUrl, RemoteIP, RemotePort
| order by Timestamp asc
```
***FLAG 16: 反取证 - 日志篡改***
**目标:** 清除事件日志会破坏取证证据并阻碍调查工作。日志清除的顺序可以反映攻击者的优先级和复杂程度。
**Flag 值:** `Security`
```
DeviceProcessEvents
| where DeviceName == "azuki-sl"
| where Timestamp between (datetime(2025-11-19) .. datetime(2025-11-20))
| where FileName == "wevtutil.exe"
| project Timestamp, DeviceName, FileName, ActionType, ProcessCommandLine
| order by Timestamp asc
```
***FLAG 17: 影响 - 持久化账户***
**目标:** 隐藏的管理员账户为未来的操作提供备用访问权限。这些账户通常被配置为避免出现在正常的用户界面中。
**Flag 值:** `support`
```
DeviceProcessEvents
| where DeviceName == "azuki-sl"
| where Timestamp between (datetime(2025-11-19) .. datetime(2025-11-20))
| where ProcessCommandLine has_any ("add")
| project Timestamp, DeviceName, FileName, ActionType, ProcessCommandLine
| order by Timestamp asc
```
***FLAG 18: 执行 - 恶意脚本***
**目标:** 攻击者经常使用脚本语言来自动化其攻击链。识别初始攻击脚本能揭示入侵的入口点和所使用的自动化方法。
**Flag 值:** `wupdate.ps1`
```
DeviceFileEvents
| where DeviceName == "azuki-sl"
| where Timestamp between (datetime(2025-11-19) .. datetime(2025-11-20))
| where FolderPath has_any ("temp", "Temp")
| where FileName !startswith "__PSScriptPolicyTest"
| where FileName has_any (".ps1")
| project Timestamp, DeviceName, ActionType, FileName, FolderPath, InitiatingProcessCommandLine
| order by Timestamp asc
```
***FLAG 19: 横向移动 - 次要目标***
**目标:** 横向移动目标的选择是基于其对敏感数据或网络权限的访问能力。识别这些目标能揭示攻击者的意图。
**Flag 值:** `10.1.0.188`
```
DeviceNetworkEvents
| where DeviceName == "azuki-sl"
| where Timestamp between (datetime(2025-11-19) .. datetime(2025-11-20))
| where InitiatingProcessCommandLine has_any ("cmdkey", "mstsc")
| project Timestamp, DeviceName, ActionType, InitiatingProcessCommandLine
| order by Timestamp desc
```
***FLAG 20: 横向移动 - 远程访问工具***
**目标:** 内置的远程访问工具是进行横向移动的首选,因为它们能与合法的管理活动混淆。这种技术比自定义工具更难被检测到。
**Flag 值:** `mstsc.exe`
```
DeviceNetworkEvents
| where DeviceName == "azuki-sl"
| where Timestamp between (datetime(2025-11-19) .. datetime(2025-11-20))
| where InitiatingProcessCommandLine has_any ("cmdkey", "mstsc")
| project Timestamp, DeviceName, ActionType, InitiatingProcessCommandLine
| order by Timestamp asc
```
## 2. 调查摘要
威胁行为者通过源于 `88.97.178.12` 的未经授权的 RDP 连接,使用账户 `kenji.sato` 被窃取的 IT 管理员凭证,获得了对 `AZUKI-SL` 的初始访问权限。获得访问权限后,执行了 PowerShell 脚本 `wupdate.ps1` 以引导攻击链,随后攻击者在 `C:\ProgramData\WindowsCache` 创建了一个暂存目录,并通过向 Windows Defender 添加三个文件扩展名排除项以及对 `C:\Users\KENJI~1.SAT\AppData\Local\Temp` 的文件夹排除项,修改了 Defender 以实现不被检测的工具执行。接着,原生 Windows 二进制文件 `certutil.exe` 被滥用于从远程源下载重命名的 Mimikatz 二进制文件(`mm.exe`),该文件随后使用 `sekurlsa::logonpasswords` 模块执行,以从 LSASS 内存中转储明文凭证。随后建立了两种持久化机制——一个名为 `"Windows Update Check"` 并指向 `C:\ProgramData\WindowsCache\svchost.exe` 的计划任务,以及一个为长期重新进入而创建的隐藏本地管理员账户 `support`。建立了一个通过端口 `443` 指向 `78.141.196.6` 的 C2 beacon,以使其与合法的 HTTPS 流量混淆。利用收集到的凭证,攻击者使用 `ARP.EXE -a` 执行网络侦察以枚举局域网主机,随后使用原生 RDP 客户端 `mstsc.exe` 横向移动到 10.1.0.188。收集的数据被压缩进 `export-data.zip` 并通过 Discord 渗透出去,绕过了传统的 DLP 控制。最后,Windows 安全事件日志被清除,以销毁取证证据并阻碍调查。
## 3. MITRE ATT&CK 映射
| 战术 | 技术 | 证据 |
| -------------------- | ----------------------------------------------------------- | ---------------------------------------------------------------- |
| Initial Access | T1133 — External Remote Services | 来自 88.97.178.12 的未经授权的 RDP |
| Initial Access | T1078 — Valid Accounts | 被攻陷的 kenji.sato IT 管理员账户 |
| Execution | T1059.001 — PowerShell | 使用 wupdate.ps1 引导攻击 |
| Persistence | T1053.005 - Scheduled Task/Job: Scheduled Task | "Windows Update Check" → C:\ProgramData\WindowsCache\svchost.exe |
| Persistence | T1136.001 - Create Account: Local Account | 创建了隐藏的管理员账户 support |
| Privilege Escalation | T1078 - Valid Accounts | 转储后重用管理员级别的凭证 |
| Defence Evasion | T1562.001 - Impair Defences: Disable or Modify Tools | 添加了 3 个 Defender 扩展名排除项 + 临时文件夹排除项 |
| Defence Evasion | T1070.001 - Indicator Removal: Clear Windows Event Logs | 清除了 Windows 安全日志 |
| Defence Evasion | T1036.005 - Masquerading: Match Legitimate Name or Location | 载荷名为 svchost.exe;Mimikatz 重命名为 mm.exe |
| Defence Evasion | T1218.003 - System Binary Proxy Execution: CMSTP | 滥用 certutil.exe 下载工具 (LOLBin) |
| Credential Access | T1003.001 - OS Credential Dumping: LSASS Memory | mm.exe (sekurlsa::logonpasswords) 转储了 LSASS |
| Discovery | T1018 - Remote System Discovery | ARP.EXE -a 枚举了局域网主机 |
| Lateral Movement | T1021.001 - Remote Services: Remote Desktop Protocol | mstsc.exe 移动到 10.1.0.188 |
| Collection | T1560.001 - Archive Collected Data: Archive via Utility | 数据被压缩进 export-data.zip |
| Command & Control | T1071.001 - Application Layer Protocol: Web Protocols | 通过端口 443 连接 78.141.196.6 的 C2 流量 |
| Command & Control | T1105 - Ingress Tool Transfer | certutil.exe 从远程源拉取了恶意工具 |
| Exfiltration | T1567 - Exfiltration Over Web Service | export-data.zip 通过 Discord 渗透 |
## 4. 建议
### 立即行动
- 将 AZUKI-SL 和 10.1.0.188 从网络隔离,等待完整的取证镜像。
- 禁用被攻陷的账户 kenji.sato,并重置所有与其共享系统的用户的凭证。
- 删除隐藏账户 support,并审计整个环境中的所有本地管理员账户。
- 在边界防火墙阻断威胁行为者的 IP:88.97.178.12 和 78.141.196.6。
- 删除恶意计划任务 "Windows Update Check" 并删除 C:\ProgramData\WindowsCache。
- 撤销攻击者添加的所有 Windows Defender 排除项,并运行完整的 AV 扫描。
### 短期修复
- 在所有 RDP 和远程访问点上强制实施 MFA——单因素凭证访问是导致此次违规的根本原因。
- 将 RDP 访问限制在 VPN 或跳板机内;在边界阻断直接面向互联网的 RDP (TCP/3389)。
- 在 Windows 工作站上启用 Credential Guard,以防止 LSASS 内存转储。
- 通过 AppLocker 或 Windows Defender Application Control (WDAC) 阻止或审计 certutil.exe 的使用——标记任何涉及下载操作的使用。
- 在代理/防火墙级别阻断 Discord 和非业务云服务;针对已知被滥用于渗透的域实施 DNS 过滤。
- 启用 Windows 事件日志转发至集中式 SIEM,以确保独立于本地主机状态的日志完整性。
### 长期加固
- 实施 Privileged Access Workstation (PAW) 模型——IT 管理员账户应限于专用、已加固的机器,而非通用工作站。
- 部署具有 LSASS 保护、PowerShell 脚本块日志记录和 LOLBin 监控功能的 EDR 解决方案。
- 强制执行 PowerShell Constrained Language Mode 并要求脚本签名,以防止滥用 .ps1 执行。
- 实施数据防泄漏 (DLP) 解决方案,以检测并阻止批量文件压缩和上传至个人云/消息服务。
- 进行定期威胁狩猎,重点关注计划任务创建、新的本地账户和 Defender 排除项修改——这些都是可靠的敌对行为。
- 网络分段——一家拥有扁平局域网拓扑的 23 人公司允许通过 mstsc.exe 进行简单的横向移动。将文件服务器和敏感数据主机置于具有访问控制的单独 VLAN 中。
- 开展涵盖网络钓鱼和凭证管理的员工安全意识培训,特别关注行政管理人员。
**报告状态:** 已完成
**下次审查:** 2025年11月29日
**分发:** Cyber Range
***FLAG 2 - 初始访问 - 被攻陷的用户账户***
**目标:** 识别哪些凭证被窃取,可确定未经授权访问的范围,并指导包括密码重置和权限审查在内的修复工作。
**Flag 值:** `kenji.sato`
```
DeviceLogonEvents
| where DeviceName == "azuki-sl"
| where Timestamp between (datetime(2025-11-19) .. datetime(2025-11-20))
| project Timestamp, DeviceName, AccountName, ActionType, RemoteDeviceName, RemoteIP
| order by Timestamp asc
```
***FLAG 3: 发现 - 网络侦察***
**目标:** 攻击者枚举网络拓扑以识别横向移动的机会和高价值目标。这种侦察活动是高级持续性威胁的关键指标。
**Flag 值:** `"ARP.EXE" -a`
```
DeviceProcessEvents
| where DeviceName == "azuki-sl"
| where Timestamp between (datetime(2025-11-19) .. datetime(2025-11-20))
| where ProcessCommandLine has_any ("arp", "ipconfig", "nbtstat")
| project Timestamp, DeviceName, FileName, ProcessCommandLine, FolderPath, AccountName
| order by Timestamp asc
```
***FLAG 4: 防御规避 - 恶意暂存目录***
**目标:** 攻击者建立暂存位置以组织工具和窃取的数据。识别这些目录能揭示入侵范围,并帮助定位其他恶意工件。
**Flag 值:** `C:\ProgramData\WindowsCache`
```
DeviceProcessEvents
| where DeviceName == "azuki-sl"
| where Timestamp between (datetime(2025-11-19) .. datetime(2025-11-20))
| where ProcessCommandLine has "attrib"
| project Timestamp, DeviceName, ActionType, FileName, ProcessCommandLine
| order by Timestamp asc
```
***FLAG 5: 防御规避 - 文件扩展名排除***
**目标:** 攻击者向 Windows Defender 添加文件扩展名排除项,以防止恶意文件被扫描。统计这些排除项能揭示攻击者防御规避策略的广度。
**Flag 值:** `3`
```
DeviceRegistryEvents
| where DeviceName == "azuki-sl"
| where Timestamp between (datetime(2025-11-19) .. datetime(2025-11-20))
| where RegistryKey has_any ("\\Exclusions\\Extensions")
| project Timestamp, DeviceName, ActionType, RegistryValueName, RegistryKey
| order by Timestamp asc
```
***FLAG 6: 防御规避 - 临时文件夹排除***
**目标:** 攻击者向 Windows Defender 添加文件夹路径排除项,以防止用于下载和执行恶意工具的目录被扫描。这些排除项使得恶意软件能够不被察觉地运行。
**Flag 值:** `C:\Users\KENJI~1.SAT\AppData\Local\Temp`
```
DeviceRegistryEvents
| where DeviceName == "azuki-sl"
| where Timestamp between (datetime(2025-11-19) .. datetime(2025-11-20))
| where RegistryKey has_any ("Paths")
| project Timestamp, DeviceName, ActionType, RegistryValueName, RegistryKey, InitiatingProcessFolderPath
| order by Timestamp asc
```
***FLAG 7: 防御规避 - 滥用下载实用程序***
**目标:** 合法的系统实用程序常被武器化以在逃避检测的同时下载恶意软件。识别这些技术有助于改进防御控制。
**Flag 值:** `certutil.exe`
```
DeviceProcessEvents
| where DeviceName == "azuki-sl"
| where Timestamp between (datetime(2025-11-19) .. datetime(2025-11-20))
| where ProcessCommandLine has_any ("appinstaller.exe", "bitsadmin.exe", "certoc.exe", "certreq.exe", "certutil.exe", "cmd.exe")
| project Timestamp, DeviceName, ActionType, FileName, ProcessCommandLine
| order by Timestamp asc
```
***FLAG 8: 持久化 - 计划任务名称***
**目标:** 计划任务在系统重启后提供可靠的持久性。任务名称通常试图伪装成合法的 Windows 维护例程。
**Flag 值:** `Windows Update Check`
```
DeviceProcessEvents
| where DeviceName == "azuki-sl"
| where Timestamp between (datetime(2025-11-19) .. datetime(2025-11-20))
| where ProcessCommandLine has_any ("schtasks")
| project Timestamp, DeviceName, ActionType, FileName, ProcessCommandLine
| order by Timestamp asc
```
***FLAG 9: 持久化 - 计划任务目标***
**目标:** 计划任务在系统重启后提供可靠的持久性。任务名称通常试图伪装成合法的 Windows 维护例程。
**Flag 值:** `C:\ProgramData\WindowsCache\svchost.exe`
```
DeviceProcessEvents
| where DeviceName == "azuki-sl"
| where Timestamp between (datetime(2025-11-19) .. datetime(2025-11-20))
| where ProcessCommandLine has_any ("schtasks")
| project Timestamp, DeviceName, FileName, ProcessCommandLine
| order by Timestamp asc
```
***FLAG 10: 命令与控制 (C2) - C2 服务器地址***
**目标:** 命令与控制基础设施允许攻击者远程控制受损系统。识别 C2 服务器可支持网络阻断和基础设施追踪。
**Flag 值:** `78.141.196.6`
```
DeviceNetworkEvents
| where DeviceName == "azuki-sl"
| where Timestamp between (datetime(2025-11-19) .. datetime(2025-11-20))
| where InitiatingProcessFileName in~ ("powershell.exe", "cmd.exe", "curl.exe", "wget.exe", "bitsadmin.exe")
| project Timestamp, DeviceName, InitiatingProcessFileName, InitiatingProcessCommandLine, RemoteUrl, RemoteIP
| order by Timestamp asc
```
***FLAG 11: 命令与控制 (C2) - C2 通信端口***
**目标:** C2 通信端口可指示所使用的框架或协议。此信息支持网络检测规则和威胁情报关联。
**Flag 值:** `443`
```
DeviceNetworkEvents
| where DeviceName == "azuki-sl"
| where Timestamp between (datetime(2025-11-19) .. datetime(2025-11-20))
| where InitiatingProcessFileName in~ ("powershell.exe", "cmd.exe", "curl.exe", "wget.exe", "bitsadmin.exe")
| project Timestamp, DeviceName, InitiatingProcessFileName, InitiatingProcessCommandLine, RemoteUrl, RemoteIP, RemotePort
| order by Timestamp asc
```
***FLAG 12: 凭证访问 - 凭证窃取工具***
**目标:** 凭证转储工具从系统内存中提取身份验证机密。这些工具通常会被重命名以避免基于签名的检测。
**Flag 值:** `mm.exe`
```
DeviceProcessEvents
| where DeviceName == "azuki-sl"
| where Timestamp between (datetime(2025-11-19) .. datetime(2025-11-20))
| where ProcessCommandLine has_any (".exe")
| where ProcessVersionInfoProductName has_any ("Mimikatz", "LaZagne", "lsassy", "nanodump", "ProcDump")
| project Timestamp, DeviceName, FileName, ProcessVersionInfoProductName, ProcessCommandLine
| order by Timestamp asc
```
***FLAG 13: 凭证访问 - 内存提取模块***
**目标:** 凭证转储工具使用特定模块从安全子系统提取密码。记录所使用的确切技术有助于检测工程。
**Flag 值:** `sekurlsa::logonpasswords`
```
DeviceProcessEvents
| where DeviceName == "azuki-sl"
| where Timestamp between (datetime(2025-11-19) .. datetime(2025-11-20))
| where ProcessCommandLine has_any (".exe")
| where ProcessVersionInfoProductName has_any ("Mimikatz", "LaZagne", "lsassy", "nanodump", "ProcDump")
| project Timestamp, DeviceName, FileName, ProcessVersionInfoProductName, ProcessCommandLine
| order by Timestamp asc
```
***FLAG 14: 收集 - 数据暂存存档***
**目标:** 攻击者压缩窃取的数据以便高效地渗透。存档文件名通常包含日期或攻击者组织的描述性名称。
**Flag 值:** `export-data.zip`
```
DeviceProcessEvents
| where DeviceName == "azuki-sl"
| where Timestamp between (datetime(2025-11-19) .. datetime(2025-11-20))
| where ProcessCommandLine has_any (".zip")
| project Timestamp, DeviceName, FileName, ProcessCommandLine
| order by Timestamp asc
```
***FLAG 15: 渗透 - 渗透通道***
**目标:** 具有上传功能的云服务经常被滥用于数据窃取。识别该服务有助于确定事件范围和潜在的数据恢复。
**Flag 值:** `discord`
```
DeviceNetworkEvents
| where DeviceName == "azuki-sl"
| where Timestamp between (datetime(2025-11-19) .. datetime(2025-11-20))
| where InitiatingProcessAccountName == "kenji.sato"
| where RemotePort == "443"
| project Timestamp, DeviceName, InitiatingProcessCommandLine, RemoteUrl, RemoteIP, RemotePort
| order by Timestamp asc
```
***FLAG 16: 反取证 - 日志篡改***
**目标:** 清除事件日志会破坏取证证据并阻碍调查工作。日志清除的顺序可以反映攻击者的优先级和复杂程度。
**Flag 值:** `Security`
```
DeviceProcessEvents
| where DeviceName == "azuki-sl"
| where Timestamp between (datetime(2025-11-19) .. datetime(2025-11-20))
| where FileName == "wevtutil.exe"
| project Timestamp, DeviceName, FileName, ActionType, ProcessCommandLine
| order by Timestamp asc
```
***FLAG 17: 影响 - 持久化账户***
**目标:** 隐藏的管理员账户为未来的操作提供备用访问权限。这些账户通常被配置为避免出现在正常的用户界面中。
**Flag 值:** `support`
```
DeviceProcessEvents
| where DeviceName == "azuki-sl"
| where Timestamp between (datetime(2025-11-19) .. datetime(2025-11-20))
| where ProcessCommandLine has_any ("add")
| project Timestamp, DeviceName, FileName, ActionType, ProcessCommandLine
| order by Timestamp asc
```
***FLAG 18: 执行 - 恶意脚本***
**目标:** 攻击者经常使用脚本语言来自动化其攻击链。识别初始攻击脚本能揭示入侵的入口点和所使用的自动化方法。
**Flag 值:** `wupdate.ps1`
```
DeviceFileEvents
| where DeviceName == "azuki-sl"
| where Timestamp between (datetime(2025-11-19) .. datetime(2025-11-20))
| where FolderPath has_any ("temp", "Temp")
| where FileName !startswith "__PSScriptPolicyTest"
| where FileName has_any (".ps1")
| project Timestamp, DeviceName, ActionType, FileName, FolderPath, InitiatingProcessCommandLine
| order by Timestamp asc
```
***FLAG 19: 横向移动 - 次要目标***
**目标:** 横向移动目标的选择是基于其对敏感数据或网络权限的访问能力。识别这些目标能揭示攻击者的意图。
**Flag 值:** `10.1.0.188`
```
DeviceNetworkEvents
| where DeviceName == "azuki-sl"
| where Timestamp between (datetime(2025-11-19) .. datetime(2025-11-20))
| where InitiatingProcessCommandLine has_any ("cmdkey", "mstsc")
| project Timestamp, DeviceName, ActionType, InitiatingProcessCommandLine
| order by Timestamp desc
```
***FLAG 20: 横向移动 - 远程访问工具***
**目标:** 内置的远程访问工具是进行横向移动的首选,因为它们能与合法的管理活动混淆。这种技术比自定义工具更难被检测到。
**Flag 值:** `mstsc.exe`
```
DeviceNetworkEvents
| where DeviceName == "azuki-sl"
| where Timestamp between (datetime(2025-11-19) .. datetime(2025-11-20))
| where InitiatingProcessCommandLine has_any ("cmdkey", "mstsc")
| project Timestamp, DeviceName, ActionType, InitiatingProcessCommandLine
| order by Timestamp asc
```
## 2. 调查摘要
威胁行为者通过源于 `88.97.178.12` 的未经授权的 RDP 连接,使用账户 `kenji.sato` 被窃取的 IT 管理员凭证,获得了对 `AZUKI-SL` 的初始访问权限。获得访问权限后,执行了 PowerShell 脚本 `wupdate.ps1` 以引导攻击链,随后攻击者在 `C:\ProgramData\WindowsCache` 创建了一个暂存目录,并通过向 Windows Defender 添加三个文件扩展名排除项以及对 `C:\Users\KENJI~1.SAT\AppData\Local\Temp` 的文件夹排除项,修改了 Defender 以实现不被检测的工具执行。接着,原生 Windows 二进制文件 `certutil.exe` 被滥用于从远程源下载重命名的 Mimikatz 二进制文件(`mm.exe`),该文件随后使用 `sekurlsa::logonpasswords` 模块执行,以从 LSASS 内存中转储明文凭证。随后建立了两种持久化机制——一个名为 `"Windows Update Check"` 并指向 `C:\ProgramData\WindowsCache\svchost.exe` 的计划任务,以及一个为长期重新进入而创建的隐藏本地管理员账户 `support`。建立了一个通过端口 `443` 指向 `78.141.196.6` 的 C2 beacon,以使其与合法的 HTTPS 流量混淆。利用收集到的凭证,攻击者使用 `ARP.EXE -a` 执行网络侦察以枚举局域网主机,随后使用原生 RDP 客户端 `mstsc.exe` 横向移动到 10.1.0.188。收集的数据被压缩进 `export-data.zip` 并通过 Discord 渗透出去,绕过了传统的 DLP 控制。最后,Windows 安全事件日志被清除,以销毁取证证据并阻碍调查。
## 3. MITRE ATT&CK 映射
| 战术 | 技术 | 证据 |
| -------------------- | ----------------------------------------------------------- | ---------------------------------------------------------------- |
| Initial Access | T1133 — External Remote Services | 来自 88.97.178.12 的未经授权的 RDP |
| Initial Access | T1078 — Valid Accounts | 被攻陷的 kenji.sato IT 管理员账户 |
| Execution | T1059.001 — PowerShell | 使用 wupdate.ps1 引导攻击 |
| Persistence | T1053.005 - Scheduled Task/Job: Scheduled Task | "Windows Update Check" → C:\ProgramData\WindowsCache\svchost.exe |
| Persistence | T1136.001 - Create Account: Local Account | 创建了隐藏的管理员账户 support |
| Privilege Escalation | T1078 - Valid Accounts | 转储后重用管理员级别的凭证 |
| Defence Evasion | T1562.001 - Impair Defences: Disable or Modify Tools | 添加了 3 个 Defender 扩展名排除项 + 临时文件夹排除项 |
| Defence Evasion | T1070.001 - Indicator Removal: Clear Windows Event Logs | 清除了 Windows 安全日志 |
| Defence Evasion | T1036.005 - Masquerading: Match Legitimate Name or Location | 载荷名为 svchost.exe;Mimikatz 重命名为 mm.exe |
| Defence Evasion | T1218.003 - System Binary Proxy Execution: CMSTP | 滥用 certutil.exe 下载工具 (LOLBin) |
| Credential Access | T1003.001 - OS Credential Dumping: LSASS Memory | mm.exe (sekurlsa::logonpasswords) 转储了 LSASS |
| Discovery | T1018 - Remote System Discovery | ARP.EXE -a 枚举了局域网主机 |
| Lateral Movement | T1021.001 - Remote Services: Remote Desktop Protocol | mstsc.exe 移动到 10.1.0.188 |
| Collection | T1560.001 - Archive Collected Data: Archive via Utility | 数据被压缩进 export-data.zip |
| Command & Control | T1071.001 - Application Layer Protocol: Web Protocols | 通过端口 443 连接 78.141.196.6 的 C2 流量 |
| Command & Control | T1105 - Ingress Tool Transfer | certutil.exe 从远程源拉取了恶意工具 |
| Exfiltration | T1567 - Exfiltration Over Web Service | export-data.zip 通过 Discord 渗透 |
## 4. 建议
### 立即行动
- 将 AZUKI-SL 和 10.1.0.188 从网络隔离,等待完整的取证镜像。
- 禁用被攻陷的账户 kenji.sato,并重置所有与其共享系统的用户的凭证。
- 删除隐藏账户 support,并审计整个环境中的所有本地管理员账户。
- 在边界防火墙阻断威胁行为者的 IP:88.97.178.12 和 78.141.196.6。
- 删除恶意计划任务 "Windows Update Check" 并删除 C:\ProgramData\WindowsCache。
- 撤销攻击者添加的所有 Windows Defender 排除项,并运行完整的 AV 扫描。
### 短期修复
- 在所有 RDP 和远程访问点上强制实施 MFA——单因素凭证访问是导致此次违规的根本原因。
- 将 RDP 访问限制在 VPN 或跳板机内;在边界阻断直接面向互联网的 RDP (TCP/3389)。
- 在 Windows 工作站上启用 Credential Guard,以防止 LSASS 内存转储。
- 通过 AppLocker 或 Windows Defender Application Control (WDAC) 阻止或审计 certutil.exe 的使用——标记任何涉及下载操作的使用。
- 在代理/防火墙级别阻断 Discord 和非业务云服务;针对已知被滥用于渗透的域实施 DNS 过滤。
- 启用 Windows 事件日志转发至集中式 SIEM,以确保独立于本地主机状态的日志完整性。
### 长期加固
- 实施 Privileged Access Workstation (PAW) 模型——IT 管理员账户应限于专用、已加固的机器,而非通用工作站。
- 部署具有 LSASS 保护、PowerShell 脚本块日志记录和 LOLBin 监控功能的 EDR 解决方案。
- 强制执行 PowerShell Constrained Language Mode 并要求脚本签名,以防止滥用 .ps1 执行。
- 实施数据防泄漏 (DLP) 解决方案,以检测并阻止批量文件压缩和上传至个人云/消息服务。
- 进行定期威胁狩猎,重点关注计划任务创建、新的本地账户和 Defender 排除项修改——这些都是可靠的敌对行为。
- 网络分段——一家拥有扁平局域网拓扑的 23 人公司允许通过 mstsc.exe 进行简单的横向移动。将文件服务器和敏感数据主机置于具有访问控制的单独 VLAN 中。
- 开展涵盖网络钓鱼和凭证管理的员工安全意识培训,特别关注行政管理人员。
**报告状态:** 已完成
**下次审查:** 2025年11月29日
**分发:** Cyber Range标签:PE 加载器, 入侵分析, 子域名变形, 安全事件响应, 攻击复现报告, 数字取证, 自动化脚本