buggsjr0/Threat-Hunting-Scenario---Port_of_Azuki

GitHub: buggsjr0/Threat-Hunting-Scenario---Port_of_Azuki

一份基于 Microsoft Defender for Endpoint 日志的威胁狩猎教学报告,通过 20 个 Flag 逐步还原从外部 RDP 入侵到数据外泄的完整攻击链,并提供对应 KQL 检测查询与 MITRE ATT&CK 映射分析。

Stars: 0 | Forks: 0

image # 🕵️‍♀️ 威胁狩猎报告:**Port of Entry** 事件简报 - Azuki Import/Export - 梓貿易株式会社
情况:竞争对手以恰好低 3% 的价格抢走了我们 6 年的航运合同。我们的供应商合同和定价数据出现在地下论坛上。
公司:Azuki Import/Export Trading Co. - 23 名员工,从事日本/东南亚航运物流
可用证据:Microsoft Defender for Endpoint 日志
分析师:Jr Buggs
完成日期:04/22/2026
调查环境: 通过 Microsoft Defender 获取的 Azure 日志
时间范围:11/20/2025
## 🧠 场景概述 竞争对手以恰好低 3% 的价格抢走了我们 6 年的航运合同。我们的供应商合同和定价数据出现在地下论坛上。 ## 入侵按时间顺序时间线 所有事件均发生在主机 **azuki-sl** 上,时间为 **2025 年 11 月 20 日**(时间戳如日志所示,约为 UTC/本地时间;主要活动发生在 ~01:37 AM 至 ~02:11 AM 之间)。 | **时间(约)** | **Flag** | **观察到的操作** | **关键证据** | |--------------------------|----------|----------------------------------------------|----------------------------------------------------------------------------------| | 2025-11-20 01:37 AM | Flag 18 | 执行 - 恶意脚本 | 执行 PowerShell 脚本 wupdate.ps1 以发起攻击链 | | 2025-11-20 01:37 AM | Flag 10 | 命令与控制 - 初始信标 | 从恶意进程 (svchost.exe) 到 C2 IP 78.141.196.6 端口 443 的出站连接 | | 2025-11-20 ~02:05 AM | Flag 4 | 防御规避 - 恶意软件暂存目录 | 创建隐藏目录 C:\ProgramData\WindowsCache | | 2025-11-20 02:06 AM | Flag 7 | 防御规避 - 滥用下载工具 | certutil.exe 被用于下载恶意载荷 | | 2025-11-20 02:07 AM | Flag 12 | 凭证访问 - 凭证窃取工具 | 下载并暂存重命名的 Mimikatz 可执行文件 mm.exe | | 2025-11-20 02:07 AM | Flag 8 | 持久化 - 创建计划任务 | 创建了计划任务 "Windows Update Check" | | 2025-11-20 02:07 AM | Flag 9 | 持久化 - 计划任务目标 | 任务被配置为执行 C:\ProgramData\WindowsCache\svchost.exe | | 2025-11-20 02:08 AM | Flag 13 | 凭证访问 - 内存提取 | mm.exe 执行了 "privilege::debug sekurlsa::logonpasswords exit" | | 2025-11-20 ~02:08 AM | Flag 14 | 收集 - 数据暂存存档 | 在暂存目录中创建 export-data.zip(以及其他 .zip 文件,如 VMAgentLogs.zip) | | 2025-11-20 02:09 AM | Flag 15 | 渗透 - 渗透通道 | curl.exe 被用于通过 HTTPS 将 export-data.zip 上传至 Discord | | 2025-11-20 02:10 AM | Flag 19 | 横向移动 - 次要目标 | 尝试向内部 IP 10.1.0.188 发起 RDP 连接 | | 2025-11-20 02:10 AM | Flag 20 | 横向移动 - 远程访问工具 | 启动 mstsc.exe 以对 10.1.0.188 进行远程桌面连接 | | 2025-11-20 02:11 AM | Flag 16 | 反取证 - 日志篡改 | wevtutil.exe 被用于清除安全日志(可能还包括其他日志) | | 2025-11-20 (活动结束后)| Flag 17 | 影响 - 持久化账户 | 创建隐藏的本地管理员账户 "support" 并将其添加到管理员组 | | 2025-11-18 至 2025-11-21 | Flag 1 | 初始访问 - 远程访问来源 | 来自外部 IP 88.97.178.12 的 RDP 连接 | | 2025-11-18 至 2025-11-21 | Flag 2 | 初始访问 - 受损用户账户 | 使用账户 kenji.sato 成功登录 | | 2025-11-19 至 2025-11-21 | Flag 3 | 发现 - 网络侦察 | 执行 arp -a 以枚举本地网络 | | 2025-11-19 至 2025-11-21 | Flag 5 | 防御规避 - 文件扩展名排除 | 向 Windows Defender 排除项添加了 3 个文件扩展名 | | 2025-11-19 至 2025-11-21 | Flag 6 | 防御规避 - 临时文件夹排除 | 为 Temp 文件夹添加了排除项 | | 2025-11-19 至 2025-11-21 | Flag 11 | 命令与控制 - C2 通信端口 | 通过端口 443 的持久化 C2 流量 | ### 起点 – DeviceProcessEvents | where DeviceName == "azuki-sl" | where Timestamp between (datetime(2025-11-19) .. datetime(2025-11-20)) **已识别系统:** azuki-sl ### 🪪 Flag 1 – 初始访问 - 远程访问来源 **目标:** 远程桌面协议连接会留下网络痕迹,可用于识别未经授权的访问来源。确定来源有助于进行威胁行为者归因并阻断正在进行的攻击。 **狩猎内容:** 查询事件时间范围内来自外部来源的交互式会话的登录事件。 **已识别活动:** 88.97.178.12 是远程桌面协议连接的源 IP 地址 **重要性:** IP 88.97.178.12 是攻击者用来通过远程桌面协议 (RDP) 进行连接的外部地址。查明此来源为防御者提供了明确的起点:他们可以在防火墙处阻止该 IP,查看威胁情报以确认其是否与已知行为者或代理服务相关,并将其与其他事件相关联。了解确切的入口向量可加快遏制速度,并有助于回答“谁可能在幕后策划?”(MITRE ATT&CK T1133 – 外部远程服务)。 **使用的 KQL 查询:** ``` DeviceLogonEvents | where DeviceName == "azuki-sl" | where Timestamp between (datetime(2025-11-18) .. datetime(2025-11-21)) | where RemoteIP contains "." | where ActionType == "LogonSuccess" | project Timestamp, ActionType, AccountName, RemoteIP, RemoteIPType, RemoteDeviceName | order by Timestamp asc ``` image ### 🛰️ Flag 2 – 初始访问 - 受损用户账户 **目标:** 识别哪些凭证遭到破坏决定了未经授权访问的范围,并指导补救工作,包括密码重置和权限审查。 **狩猎内容:** 重点关注在可疑远程访问会话期间进行身份验证的账户。将登录事件时间戳与外部 IP 连接进行交叉比对。 **已识别的用户账户:** kenji.sato **重要性:** 账户 kenji.sato 是攻击者用来成功登录的有效凭证。这暴露了最初的立足点:防御者可以立即禁用或重置该账户,调查密码是如何获取的(网络钓鱼、违规中的密码重用等),并检查整个组织是否存在类似的入侵。使用合法账户让攻击者得以混入其中,使其成为凭证泄露的关键指标(MITRE ATT&CK T1078 – 有效账户)。 **使用的 KQL 查询** ``` DeviceLogonEvents | where DeviceName == "azuki-sl" | where Timestamp between (datetime(2025-11-18) .. datetime(2025-11-21)) | where RemoteIP contains "." | where ActionType == "LogonSuccess" | project Timestamp, ActionType, AccountName, RemoteIP, RemoteIPType, RemoteDeviceName | order by Timestamp asc ``` image ### 📄 Flag 3 – 发现 - 网络侦察 **目标:** 寻找能揭示本地网络设备及其硬件地址的命令。 **狩猎内容:** 查找涉及 board、financial 或 crypto 等关键字的文件访问——尤其是在用户文件夹中。检查 DeviceProcessEvents 以获取初始访问后执行的网络枚举实用程序。 **已识别的命令:** "ARP.EXE" -a **重要性:** 运行 arp -a 可以映射出本地网络上附近的设备,让攻击者了解潜在的下一个目标。发现这种早期侦察表明攻击者正在积极探测环境并规划横向移动,允许防御者在发生更深层次的访问之前预测并监控这些系统(MITRE ATT&CK T1018 – 远程系统发现)。 **使用的 KQL 查询:** ``` DeviceProcessEvents | where DeviceName == "azuki-sl" | where Timestamp between (startofday(datetime(2025-11-19)) .. endofday(datetime(2025-11-21))) | project Timestamp, DeviceName, ProcessCommandLine, FolderPath, AccountName, IsProcessRemoteSession ``` image ### ⏱️ Flag 4 – 防御规避 - 恶意软件暂存目录 **目标:** 攻击者建立暂存位置以组织工具和窃取的数据。识别这些目录可以揭示入侵范围并帮助定位其他恶意工件。 **狩猎内容:** 搜索随后被隐藏在正常视野之外的系统文件夹中新创建的目录。查找 mkdir 或 New-Item 命令,其后跟随用于修改文件夹属性的 attrib 命令。 **找到的主要暂存目录:** C:\ProgramData\WindowsCache 2025 年 11 月 20 日 2:05:30 AM **重要性:** 将 C:\ProgramData\WindowsCache 创建为隐藏的暂存文件夹,允许攻击者将工具存储在一个看起来半合法且不常被检查的位置。识别这些非标准目录可以揭示有效载荷的隐藏位置,并有助于针对系统路径中的异常文件夹创建构建检测规则(MITRE ATT&CK T1564 – 隐藏工件)。 **使用的 KQL 查询:** ``` DeviceFileEvents | where Timestamp between (startofday(datetime(2025-11-19)) .. endofday(datetime(2025-11-21))) | where DeviceName == "azuki-sl" | where InitiatingProcessFileName contains "powershell" ``` image ### ⚙️ Flag 5 – 防御规避 - 文件扩展名排除 **目标:** 攻击者向 Windows Defender 添加文件夹路径排除项,以防止扫描用于下载和执行恶意工具的目录。这些排除项允许恶意软件在未被发现的情况下运行。 **狩猎内容:** 搜索 DeviceRegistryEvents 中对 Windows Defender 排除设置的注册表修改。查找包含 file extension 的 RegistryValueName 字段。计算在攻击时间线内添加到“Exclusions\Extensions”注册表项的唯一文件扩展名数量。 **已识别的排除文件扩展名:** 3 powershell.exe -ExecutionPolicy AllSigned -NoProfile -NonInteractive -Command "& {$OutputEncoding = [Console]::OutputEncoding =[System.Text.Encoding]::UTF8;$scriptFileStream = [System.IO.File]::Open('C:\ProgramData\Microsoft\Windows Defender Advanced Threat Protection\DataCollection\8809.14144035.0.14144035-462fc402c4ea5c03148fd915012f3d7aee74f9d4\05f2c576-9ed5-41eb-9b1e-1b653eebfdff.ps1', [System.IO.FileMode]::Open, [System.IO.FileAccess]::Read, [System.IO.FileShare]::Read);$calculatedHash = Microsoft.PowerShell.Utility\Get-FileHash 'C:\ProgramData\Microsoft\Windows Defender Advanced Threat Protection\DataCollection\8809.14144035.0.14144035-462fc402c4ea5c03148fd915012f3d7aee74f9d4\05f2c576-9ed5-41eb-9b1e-1b653eebfdff.ps1' -Algorithm SHA256;if (!($calculatedHash.Hash -eq '25fda4c27044455e664e8c26cdd2911117493a9122c002cd9462a9ce9c677f22')) { exit 323;}; . 'C:\ProgramData\Microsoft\Windows Defender Advanced Threat Protection\DataCollection\8809.14144035.0.14144035-462fc402c4ea5c03148fd915012f3d7aee74f9d4\05f2c576-9ed5-41eb-9b1e-1b653eebfdff.ps1' }" **重要性:** 向 Windows Defender 排除项添加特定扩展名会停止对这些文件类型的扫描,为下载的恶意软件提供了一个安全的着陆区。这种更改直接削弱了端点保护,并突显了为何监控 Defender 配置修改对于捕获正在进行的规避操作至关重要(MITRE ATT&CK T1562.001 – 损害防御:禁用或修改工具)。 **使用的 KQL 查询:** ``` DeviceFileEvents | where Timestamp between (startofday(datetime(2025-11-19)) .. endofday(datetime(2025-11-21))) | where DeviceName == "azuki-sl" | where InitiatingProcessParentFileName contains "sense" ``` image image ### 💾 Flag 6: 防御规避 - 临时文件夹排除 **目标:** 攻击者向 Windows Defender 添加文件夹路径排除项,以防止扫描用于下载和执行恶意工具的目录。这些排除项允许恶意软件在未被发现的情况下运行。 **狩猎内容:** 搜索 DeviceRegistryEvents 中添加到 Windows Defender 配置的文件夹路径排除项。重点关注 RegistryValueName 字段查找在攻击时间线内添加到排除列表的临时文件夹路径。完全按照其出现在 RegistryValueName 字段中的形式复制路径。注册表项在 Windows Defender 配置下包含“Exclusions\Paths”。 **已识别的临时文件夹:** C:\Users\KENJI~1.SAT\AppData\Local\Temp **重要性:** 将 Temp 文件夹排除在扫描之外,允许恶意的临时文件在不受干扰的情况下执行。这种常见的策略降低了短生命周期有效载荷的检测风险,并表明需要对排除项更改发出警报,尤其是针对高写入频率的位置(MITRE ATT&CK T1562.001 – 损害防御)。 **使用的 KQL 查询:** ``` DeviceRegistryEvents | where Timestamp between (startofday(datetime(2025-11-19)) .. endofday(datetime(2025-11-21))) | where DeviceName == "azuki-sl" ``` image ### 📎 Flag 7 – 防御规避 - 滥用下载工具 **目标:** 合法的系统实用程序通常被武器化以在规避检测的同时下载恶意软件。识别这些技术有助于改进防御控制。 **狩猎内容:** 寻找在攻击期间被使用的、具有网络下载功能的内置 Windows 工具。在 DeviceProcessEvents 中搜索命令行中包含 URL 和输出文件路径的进程。 **已识别的命令** certutil.exe 2025 年 11 月 20 日 2:06:58 AM **重要性:** 使用 certutil.exe(一种内置的 Windows 工具)下载有效载荷可以避免触发由第三方下载器引起的警报。这种就地取材的方法使活动看起来像管理操作,强调了为什么对原生实用程序进行行为监控是关键(MITRE ATT&CK T1105 – 入站工具传输)。 使用的 KQL 查询: ``` DeviceProcessEvents | where DeviceName == "azuki-sl" | where Timestamp between (startofday(datetime(2025-11-19)) .. endofday(datetime(2025-11-21))) | where ProcessCommandLine contains "//" | project Timestamp, DeviceName, InitiatingProcessFileName, ProcessCommandLine, InitiatingProcessCommandLine, FolderPath, AccountName, IsProcessRemoteSession ``` image ### 🗂️ Flag 8 – 计划任务名称 **目标:** 计划任务提供了跨系统重启的可靠持久性。任务名称通常试图与合法的 Windows 维护例程混淆。 **狩猎内容:** 搜索在攻击时间线内执行的计划任务创建命令。在 DeviceProcessEvents 中查找带有 /create 参数的 schtasks.exe。 **已识别的计划任务:** Windows Update Check 2025 年 11 月 20 日 2:07:46 AM **重要性:** 虚假任务“Windows Update Check”确保恶意软件在重启或登录后再次运行。将其命名为模仿合法更新有助于其逃避审查;检测这些伪装的任务可以让防御者快速移除持久性,并改进对新计划任务的监控(MITRE ATT&CK T1053.005 – 计划任务)。 **使用的 KQL 查询:** ``` DeviceProcessEvents | where DeviceName == "azuki-sl" | where Timestamp between (startofday(datetime(2025-11-19)) .. endofday(datetime(2025-11-21))) | where ProcessCommandLine contains "schtasks" | project Timestamp, DeviceName, InitiatingProcessFileName, ProcessCommandLine, InitiatingProcessCommandLine, FolderPath, AccountName, IsProcessRemoteSession ``` image ### 🗝️ Flag 9 – 持久化 - 计划任务目标 **目标:** 计划任务操作定义了在运行时执行的内容。这揭示了确切的持久化机制和恶意软件的位置。 **狩猎内容:** 从计划任务创建命令行中提取任务操作。在 schtasks 命令中查找 /tr 参数值。 **已识别的计划任务中的可执行路径:** C:\ProgramData\WindowsCache\svchost.exe 2025 年 11 月 20 日 2:07:46 AM **重要性:** 这揭示了任务启动的确切恶意可执行文件(位于非标准路径中的 svchost.exe)。了解有效载荷的位置可以在整个环境中实现精确清理并搜寻类似的异常二进制文件(MITRE ATT&CK T1053.005 – 计划任务)。 **使用的 KQL 查询:** ``` DeviceProcessEvents | where DeviceName == "azuki-sl" | where Timestamp between (startofday(datetime(2025-11-19)) .. endofday(datetime(2025-11-21))) | where ProcessCommandLine contains "schtasks" | project Timestamp, DeviceName, InitiatingProcessFileName, ProcessCommandLine, InitiatingProcessCommandLine, FolderPath, AccountName, IsProcessRemoteSession ``` image ### ⏰ Flag 10 – 命令与控制 - C2 服务器地址 **目标:** 命令与控制基础设施允许攻击者远程控制受损系统。识别 C2 服务器可以进行网络封锁和基础设施跟踪。 **狩猎内容:** 分析可疑可执行文件在下载后不久发起的网络连接。使用 DeviceNetworkEvents 查找从恶意进程到外部 IP 地址的出站连接。 **已识别的服务器 IP:** 78.141.196.6 2025 年 11 月 20 日 1:37:26 AM **重要性:** 端口 443 上到 78.141.196.6 的出站连接是恶意软件向攻击者服务器签入。阻止此 IP/域会中断命令流并防止进一步的指令或数据窃取,使其成为网络级遏制的高优先级指标(MITRE ATT&CK T1071 – 应用层协议)。 **使用的 KQL 查询:** ``` DeviceNetworkEvents | where Timestamp between (startofday(datetime(2025-11-19)) .. endofday(datetime(2025-11-21))) | where DeviceName == "azuki-sl" ``` image ### 🧭 Flag 11 – 命令与控制 - C2 通信端口 **目标:** C2 通信端口可以指示所使用的框架或协议。此信息支持网络检测规则和威胁情报关联。 **狩猎内容:** 检查恶意可执行文件的出站连接的目标端口。检查 DeviceNetworkEvents 中与 C2 流量相关联的 RemotePort 字段。 **已识别的目标端口:** 443 **重要性:** 通过端口 443 的流量将恶意 C2 与正常的 HTTPS 混合,绕过了基于端口的封锁。认识到这种模式促使防御措施转向 TLS 检查和行为异常检测,而不是仅仅依赖防火墙(MITRE ATT&CK T1571 – 非标准端口 / HTTPS 混合)。 **使用的 KQL 查询:** ``` DeviceNetworkEvents | where Timestamp between (startofday(datetime(2025-11-19)) .. endofday(datetime(2025-11-21))) | where DeviceName == "azuki-sl" ``` image ### ⏱️ Flag 12 – 凭证访问 - 凭证窃取工具 **目标:** 凭证转储工具从系统内存中提取身份验证机密。这些工具通常会被重命名以避免基于签名的检测。 **狩猎内容:** 寻找下载到暂存目录且文件名非常短的可执行文件。搜索在 LSASS 内存访问事件之前不久创建的文件。 **已识别的可执行文件:** mm.exe 2025 年 11 月 20 日 2:07:22 AM **重要性:** 下载重命名的 Mimikatz (mm.exe) 表明了从内存中转储凭证的意图。尽早捕获传输可缩小密码窃取的时间窗口,并促使主动进行凭证轮换(MITRE ATT&CK T1003 – 操作系统凭证转储)。 **使用的 KQL 查询:** ``` DeviceFileEvents | where Timestamp between (startofday(datetime(2025-11-19)) .. endofday(datetime(2025-11-21))) | where DeviceName == "azuki-sl" | where FolderPath contains "cache" ``` image ### 📂 Flag 13 – 凭证访问 - 内存提取模块 **目标:** 揭示攻击者在第二台主机上针对的是哪个特定文档。 **狩猎内容:** 检查传递给凭证转储工具的命令行参数。在进程命令行中查找 module::command 语法或输出重定向。 **已识别的权限:** "mm.exe" privilege::debug sekurlsa::logonpasswords exit 2025 年 11 月 20 日 2:08:26 AM **重要性:** 特定的 Mimikatz 参数 (sekurlsa::logonpasswords) 证实了从 LSASS 成功提取了明文凭证。此证据推动了立即进行全企业范围内的密码重置以及对 Credential Guard 等保护措施的评估(MITRE ATT&CK T1003.001 – LSASS 内存)。 **使用的 KQL 查询:** ``` DeviceProcessEvents | where DeviceName == "azuki-sl" | where Timestamp between (startofday(datetime(2025-11-19)) .. endofday(datetime(2025-11-21))) | where FileName contains "mm.exe" | project Timestamp, FileName, DeviceName, InitiatingProcessFileName, ProcessCommandLine, InitiatingProcessCommandLine, FolderPath, AccountName, IsProcessRemoteSession ``` image ### ☁️ Flag 14 – 收集 - 数据暂存存档 **目标:** 攻击者压缩窃取的数据以便高效渗透。存档文件名通常包含日期或为攻击者组织提供的描述性名称。 **狩猎内容:** 在收集阶段搜索暂存目录中 ZIP 文件的创建。查找 Compress-Archive 命令或检查在渗透活动之前创建的文件。 **用于数据渗透的压缩存档:** export-data.zip **重要性:** 创建 zip 存档(例如 export-data.zip)可以组织窃取的文件以便高效渗透。识别这些暂存文件可以确切揭示哪些数据成为了目标,并有助于评估业务影响或监管风险(MITRE ATT&CK T1560 – 收集数据存档)。 **使用的 KQL 查询:** ``` DeviceFileEvents | where Timestamp between (startofday(datetime(2025-11-19)) .. endofday(datetime(2025-11-21))) | where DeviceName == "azuki-sl" | where FileName contains ".zip" ``` image ### 🌐 Flag 15 – 渗透 - 渗透通道 **目标:** 具有上传功能的云服务经常被滥用于数据窃取。识别该服务有助于确定事件范围并促进潜在的数据恢复。 **狩猎内容:** 在渗透阶段分析出站的 HTTPS 连接和文件上传操作。检查 DeviceNetworkEvents 中是否有连接到常见文件共享或通信平台的情况。 **云服务:** discord 2025 年 11 月 20 日 2:09:21 AM **重要性:** 通过 Discord 上传数据滥用了受信任的消费者服务,从而在未被发现的情况下将窃取的文件转移出去。这突显了在允许的平台上检测渗透所面临的日益严峻的挑战,以及云协作工具上 DLP 控制的价值(MITRE ATT&CK T1567 – 通过 Web 服务渗透)。 **使用的 KQL 查询:** ``` DeviceNetworkEvents | where Timestamp between (startofday(datetime(2025-11-19)) .. endofday(datetime(2025-11-21))) | where DeviceName == "azuki-sl" ``` image ### 🧬 Flag 16 – 反取证 - 日志篡改 **目标:** 清除事件日志会破坏取证证据并阻碍调查工作。清除日志的顺序可以表明攻击者的优先级和复杂程度。 **狩猎内容:** 在攻击时间线接近尾声时搜索事件日志清除命令。查找 wevtutil.exe 的执行,并确定首先清除了哪个日志。 **已清除的 Windows 事件日志:** Security 2025 年 11 月 20 日 2:11:39 AM **重要性:** 首先清除 Security 日志会移除身份验证和权限使用的证据。这种复杂的掩盖手法强调了实时将日志转发到受中央保护的 SIEM 的必要性(MITRE ATT&CK T1070.001 – 清除 Windows 事件日志)。 **使用的 KQL 查询:** ``` DeviceProcessEvents | where DeviceName == "azuki-sl" | where Timestamp between (startofday(datetime(2025-11-19)) .. endofday(datetime(2025-11-21))) | where ProcessCommandLine contains "wev" | project Timestamp, FileName, DeviceName, InitiatingProcessFileName, ProcessCommandLine, InitiatingProcessCommandLine, FolderPath, AccountName, IsProcessRemoteSession ``` image image ### 🧹 Flag 17 – 影响 - 持久化账户 **目标:** 隐藏的管理员账户为未来的操作提供了替代访问途径。这些账户通常被配置为避免出现在正常的用户界面中。 **狩猎内容:** 搜索在影响阶段执行账户创建的命令。查找带有 /add 参数的命令,随后伴随添加到管理员组的操作。 **隐藏的用户名:** support **重要性:** 添加隐藏的本地管理员账户(“support”)创建了一个长期的后门。发现这些植入的账户可以立即将其移除,并加强围绕本地账户创建和监控的控制(MITRE ATT&CK T1098 – 账户操纵)。 **使用的 KQL 查询:** ``` DeviceProcessEvents | where DeviceName == "azuki-sl" | where Timestamp between (startofday(datetime(2025-11-19)) .. endofday(datetime(2025-11-21))) | where ProcessCommandLine contains "add" | project Timestamp, FileName, DeviceName, InitiatingProcessFileName, ProcessCommandLine, InitiatingProcessCommandLine, FolderPath, AccountName, IsProcessRemoteSession ``` image ### 🧹 Flag 18 – 执行 - 恶意脚本 **目标:** 攻击者经常使用脚本语言来自动化其攻击链。识别初始攻击脚本可以揭示入侵中使用的切入点和自动化方法。 **狩猎内容:** 在初始入侵阶段,搜索 DeviceFileEvents 以查找在临时目录中创建的脚本文件。寻找在初始访问后不久从外部源下载的 PowerShell 或批处理脚本文件。 **找到的用于启动攻击链的 PowerShell 脚本:** 2025 年 11 月 20 日 1:37:40 AM wupdate.ps1 **重要性:** PowerShell 脚本 wupdate.ps1 从一开始就自动化了大部分攻击链。分析它可以揭示攻击者的完整剧本和工具,有助于威胁情报和未来的检测签名(MITRE ATT&CK T1059.001 – PowerShell)。 **使用的 KQL 查询:** ``` DeviceProcessEvents | where DeviceName == "azuki-sl" | where Timestamp between (startofday(datetime(2025-11-19)) .. endofday(datetime(2025-11-21))) | where ProcessCommandLine contains "add" | project Timestamp, FileName, DeviceName, InitiatingProcessFileName, ProcessCommandLine, InitiatingProcessCommandLine, FolderPath, AccountName, IsProcessRemoteSession ``` image ### 🧹 Flag 19 – 横向移动 - 次要目标 **目标:** 横向移动目标是根据其对敏感数据的访问权限或网络特权来选择的。识别这些目标可以揭示攻击者的目的。 **狩猎内容:** 检查横向移动期间在远程访问命令中指定的目标系统。查找在攻击时间线接近尾声时与 cmdkey 或 mstsc 命令一起使用的 IP 地址。 **IP 地址目标:** 10.1.0.188 2025 年 11 月 20 日 2:10:41 AM **重要性:** 将目标对准 IP 10.1.0.188 显示了攻击者的下一个目标——可能是一个拥有更高权限或敏感数据的系统。绘制预期的移动路径有助于防御者优先考虑关键资产的保护和隔离(MITRE ATT&CK T1021 – 远程服务)。 **使用的 KQL 查询:** ``` DeviceProcessEvents | where DeviceName == "azuki-sl" | where Timestamp between (startofday(datetime(2025-11-19)) .. endofday(datetime(2025-11-21))) | where ProcessCommandLine contains "mstsc" | project Timestamp, FileName, DeviceName, InitiatingProcessFileName, ProcessCommandLine, InitiatingProcessCommandLine, FolderPath, AccountName, IsProcessRemoteSession ``` image ### 🧹 Flag 20 – 横向移动 - 远程访问工具 **目标:** 内置的远程访问工具因其能与合法的管理活动混淆而成为横向移动的首选。这种技术比自定义工具更难被检测到。 **狩猎内容:** 搜索在攻击时间线接近尾声时执行的远程桌面连接实用程序。查找以远程系统名称或 IP 地址作为参数启动的进程。 **远程访问工具:** mstsc.exe 2025 年 11 月 20 日 2:10:41 AM **重要性:** 使用原生的 mstsc.exe 对下一个目标进行 RDP 使得该活动看起来像合法的管理操作。这种混入行为就是为什么限制和记录内部 RDP 使用以及网络分段是关键防御措施的原因(MITRE ATT&CK T1021.001 – 远程桌面协议)。 **使用的 KQL 查询:** ``` DeviceProcessEvents | where DeviceName == "azuki-sl" | where Timestamp between (startofday(datetime(2025-11-19)) .. endofday(datetime(2025-11-21))) | where ProcessCommandLine contains "mstsc" | project Timestamp, FileName, DeviceName, InitiatingProcessFileName, ProcessCommandLine, InitiatingProcessCommandLine, FolderPath, AccountName, IsProcessRemoteSession ``` image ### 入侵叙事链 0 ➝ 1 🚩:初始访问通常从暴露在上的远程服务开始。**是否使用了来自外部源的 RDP 进行进入?** *(是的 —— 成功的 RDP 连接源于外部 IP 88.97.178.12,建立了最初的立足点。)* 1 ➝ 2 🚩:一旦远程连接,攻击者便依赖有效凭证进行身份验证。**是否有一个合法的用户账户被攻陷以完成登录?** *(是的 —— 账户 kenji.sato 被用于身份验证,允许攻击者以合法用户的身份进行操作。)* 2 ➝ 3 🚩:在确保了访问权限后,早期的发现集中于映射本地网络。**攻击者是否枚举了附近的系统以识别潜在目标?** *(是的 —— 执行了 arp -a 以发现本地网段上的设备,揭示了网络布局。)* 3 ➝ 4 🚩:为了避免被检测到,攻击者为其工具创建了不明显的存放位置。**是否建立了一个隐藏的暂存目录用于存放恶意软件和有效载荷?** *(是的 —— C:\ProgramData\WindowsCache 被创建为用于存储恶意文件的隐藏目录。)* 4 ➝ 5 🚝:削弱端点保护提高了生存几率。**是否有特定的文件扩展名被排除在 Windows Defender 扫描之外?** *(是的 —— 三个扩展名被添加到了 Defender 排除项中,阻止了对攻击者选择的文件类型的扫描。)* 5 ➝ 6 🚩:进一步的规避涉及保护高活跃度的文件夹。**临时文件夹是否被排除在实时保护之外?** *(是的 —— Temp 文件夹路径被添加到了排除项中,为短暂的载荷创造了一个安全空间。)* 6 ➝ 7 🚩:攻击者经常滥用内置实用程序来下拉额外的工具。**是否使用了 certutil 来下载恶意载荷?** *(是的 —— 利用 certutil.exe 获取外部文件,同时看起来像管理操作。)* 7 ➝ 8 🚩:持久化确保了访问在重启后依然存活。**是否在具有欺骗性的名称下创建了计划任务?** *(是的 —— 注册了一个名为“Windows Update Check”的任务以维持访问权限。)* 8 ➝ 9 🚩:任务需要一个执行目标。**计划任务是否指向了暂存目录中的恶意二进制文件?** *(是的 —— 该任务被配置为从隐藏的 WindowsCache 文件夹运行 svchost.exe。)* 9 ➝ 10 🚩:在潜伏之后,植入程序通常会对攻击者的基础设施进行回调。**恶意软件是否向命令与控制服务器发送了初始信标?** *(是的 —— 建立了到 78.141.196.6 端口 443 的出站连接,确认了 C2 通信。)* 10 ➝ 11 🚩:将 C2 流量与合法协议混合可规避网络过滤器。**是否使用端口 443 来掩盖命令与控制活动?** *(是的 —— 所有 C2 流量都通过端口 443 上的 HTTPS 传输,在端口级别上与正常的 Web 流量无法区分。)* 11 ➝ 12 🚩:有了立足点和 C2,攻击者转向凭证窃取。**是否有一个已知的凭证转储工具被传输到了主机上?** *(是的 —— 下载并暂存了一个重命名的 Mimikatz 二进制文件 mm.exe。)* 12 ➝ 13 🚩:该工具只有在执行特定模块时才有用。**是否运行了 LSASS 内存提取命令以窃取凭证?** *(是的 —— mm.exe 执行了 privilege::debug 和 sekurlsa::logonpasswords,成功转储了凭证。)* 13 ➝ 14 🚩:窃取的数据在渗透之前必须进行整理。**收集到的信息是否被压缩到了存档中以便于传输?** *(是的 —— 在暂存目录中创建了 export-data.zip 和类似的存档,其中包含侦察输出。)* 14 ➝ 15 🚩:攻击者越来越多地滥用受信任的平台进行数据窃取。**是否使用了消费级云服务作为渗透通道?** *(是的 —— curl.exe 将存档上传到了 Discord,利用合法服务将数据转移出去。)* 15 ➝ 16 🚩:在离开之前,掩盖踪迹是首要任务。**是否清除了关键的事件日志以移除取证证据?** *(是的 —— wevtutil.exe 首先清除了 Security 日志,擦除了身份验证和权限使用的记录。)* 16 ➝ 17 🚩:长期访问需要备用的选项。**是否创建了一个隐藏的本地管理员账户以备将来使用?** *(是的 —— 一个名为“support”的新账户作为持久化后门被添加到了本地管理员组中。)* 17 ➝ 18 🚩:自动化提高了入侵后活动的效率。**是否使用 PowerShell 脚本来编排攻击链?** *(是的 —— wupdate.ps1 作为主要的执行载荷,自动化了观察到的大部分操作。)* 18 ➝ 19 🚩:掌握了凭证和数据之后,攻击者向更深处转移。**攻击者是否将特定的内部系统作为横向移动的目标?** *(是的 —— 发起了指向内部 IP 10.1.0.188 的 RDP 连接,表明这是下一个高价值目标。)* 19 ➝ 20 🚩:原生工具有助于横向移动与管理活动混淆。**是否使用了内置的远程桌面客户端来尝试转移?** *(是的 —— 启动了 mstsc.exe 并带有指向次要目标的参数,使用合法的 RDP 进行移动。)*
标签:Azuki Import/Export, Azure, C2通信, Cloudflare, Defender for Endpoint, Defense Evasion, Incident Response, IoC, IPv6, IP 地址批量处理, Microsoft Defender, MITRE ATT&CK, PE 加载器, PowerShell, Threat Hunting, 企业安全, 凭证访问, 协议分析, 命令与控制, 妥协指标, 安全情报, 安全运营, 恶意脚本, 扫描框架, 攻击溯源, 数字取证, 数据窃取, 日本物流, 权限提升, 梓貿易株式会社, 横向移动, 编程规范, 网络安全, 网络资产管理, 自动化脚本, 防守规避, 隐私保护