nicholas-net/Threat-Hunting-Scenario-Source-Leak
GitHub: nicholas-net/Threat-Hunting-Scenario-Source-Leak
这是一个基于 Microsoft Sentinel 和 KQL 的威胁搜寻场景,详细复现并分析了游戏工作室源代码泄露事件的完整攻击链。
Stars: 0 | Forks: 0
# 威胁搜寻报告:EmberForge 源代码泄露
**日期:** 2026年4月6日
## 🎯 场景
触发条件:EmberForge Studios 即将推出的游戏 "Neon Shadows" 的未发布源代码出现在地下论坛上。泄露的材料包括专有的游戏引擎组件和未发布的资产。外部监控在泄露出现后 48 小时内标记了该事件。
指令:调查完整的攻击链。确定攻击者如何获得访问权限、窃取了什么、如何在环境中移动,以及留下了什么持久化机制。优先确定损害范围,以便进行法律和违规通知。
## 平台和语言
• Windows 11 虚拟机
• Microsoft Sentinel SIEM
• Kusto 查询语言 (KQL)
## Flag 1 – 环境访问
**目标**:包含调查数据的自定义日志表的名称是什么?
**发现**:
- **日志表**:`EmberForgeX_CL`
## Flag 2 – 目标目录
**目标**:攻击者在窃取之前需要打包数据。压缩命令准确地揭示了他们的目标。被窃取数据的源目录是什么?
**发现**:
- **目标**:`C:\GameDev`
**KQL 查询**:
```
EmberForgeX_CL
| where todatetime(UtcTime_s) between (datetime(2026-01-30 21:00) .. datetime(2026-01-31 00:00))
| project TimeGenerated, Computer, CommandLine_s
| where CommandLine_s has ".zip"
```

**备注:** 为了窃取源代码,攻击者将数据打包成压缩存档。第一步是确定收集数据的目录。我筛选了攻击者可能创建的任何 .zip 文件。
## Flag 3 – 渗透目的地
**目标**:被窃取的数据被上传到了云存储服务。渗透工具的命令行包含服务名称和身份验证详细信息。哪家云提供商接收了数据?
**发现**:
- **云存储**:`MEGA`
**KQL 查询**:
```
EmberForgeX_CL
| where todatetime(UtcTime_s) between (datetime(2026-01-30 21:00) .. datetime(2026-01-31 00:00))
| project TimeGenerated, Computer, CommandLine_s
| where CommandLine_s has "gamedev.zip"
```
**备注:** 该命令显示压缩存档是使用命令行工具进行渗透的。mega: 目的地表示数据已上传到云存储服务 `MEGA`,这在工具配置中被定义为远程目标。
## Flag 4 – 攻击者归属
**目标**:攻击者会犯 OPSEC(行动安全)错误。渗透工具配置的凭据在命令行中可见。使用什么电子邮件账户对云服务进行了身份验证?
**发现**:
- **凭据**:`jwilson.vhr@proton.me`
- **主机名**:`EC2AMAZ-16V3AU4`
**KQL 查询**:
```
EmberForgeX_CL
| where todatetime(UtcTime_s) between (datetime(2026-01-30 21:00) .. datetime(2026-01-31 00:00))
| where Computer == "EC2AMAZ-16V3AU4.emberforge.local"
| project TimeGenerated, Computer, CommandLine_s
| where CommandLine_s has "@"
```
**备注:** 命令行显示渗透工具运行时包含了凭据。`--mega-user` 标志包含用于对云服务进行身份验证的电子邮件。使用的账户是 `jwilson.vhr@proton.me`。
## Flag 5 – 域控制权受损证据
**目标**:这不仅仅是一个工作站的受损。域控制器上的证据显示攻击者使用了卷快照技术来访问锁定的系统文件。该文件包含域中的所有凭据。它是什么?
**发现**:
- **域控制器**:`EC2AMAZ-EEU3IA2`
- **数据库文件**:`ntds.dit`
- **临时文件**:`nyMdRNSp.tmp`
**KQL 查询**:
```
EmberForgeX_CL
| where Computer == "EC2AMAZ-EEU3IA2.emberforge.local"
| where todatetime(UtcTime_s) between (datetime(2026-01-30 23:30) .. datetime(2026-01-30 23:40))
| where CommandLine_s has "copy"
| project UtcTime_s, Computer, CommandLine_s
```
- **
**备注:** 通过域控制器,攻击者创建了一个 AD 使用的核心数据库文件的卷影副本。该文件作为目录信息层次结构,包含所有 AD 数据,例如凭据、密码哈希、组成员身份和安全策略。攻击者将数据复制到一个临时文件 `nyMdRNSp.tmp` 中。
## 数据是如何泄露的?
## Flag 6 – 渗透工具
**目标**:使用了一个云同步工具将数据上传到外部。该工具是威胁行为者经常滥用的合法软件。它被执行了多次,但并非都成功。
**发现**:
- **云同步工具**:`rclone.exe`
**KQL 查询**:
```
EmberForgeX_CL
| where todatetime(UtcTime_s) between (datetime(2026-01-30 23:30) .. datetime(2026-01-30 23:40))
| where CommandLine_s has "copy" or CommandLine_s has "gamedev.zip"
| project UtcTime_s, Computer, CommandLine_s
```
**备注:** 通过域控制器,攻击者创建了一个 AD 使用的核心数据库文件的卷影副本。该文件作为目录信息层次结构,包含所有 AD 数据,例如凭据、密码哈希、组成员身份和安全策略。攻击者将数据复制到一个临时文件 `nyMdRNSp.tmp` 中。
## 数据是如何泄露的?
## Flag 6 – 渗透工具
**目标**:使用了一个云同步工具将数据上传到外部。该工具是威胁行为者经常滥用的合法软件。它被执行了多次,但并非都成功。
**发现**:
- **云同步工具**:`rclone.exe`
**KQL 查询**:
```
EmberForgeX_CL
| where todatetime(UtcTime_s) between (datetime(2026-01-30 23:30) .. datetime(2026-01-30 23:40))
| where CommandLine_s has "copy" or CommandLine_s has "gamedev.zip"
| project UtcTime_s, Computer, CommandLine_s
```
**备注:** `rclone.exe` 是正在使用的云同步工具,用于将 `gamedev.zip` 复制到远程云提供商 `mega`。
## Flag 7 – 渗透目的地 IP
**目标**:渗透工具在上传期间建立了出站网络连接。将工具的进程与其网络活动 (EventCode 3) 关联。哪个 IP 地址接收了被窃取的数据?
**发现**:
- **IP**:`66.203.125.15`
**KQL 查询**:
```
EmberForgeX_CL
| where todatetime(UtcTime_s) between (datetime(2026-01-30 23:11:28) .. datetime(2026-01-31 00:00))
| project UtcTime_s, Computer, CommandLine_s, process_name_s, EventCode_s, DestinationIp_s
| where process_name_s == "rclone.exe" and EventCode_s == "3"
```
**备注:** 渗透工具的进程与网络事件的关联显示 `rclone.exe` 将被窃取的数据发送到了 IP 地址 `66.203.125.15`。
## Flag 8 – 攻击者凭据泄露
**目标**:当攻击者排查身份验证问题时,渗透工具被执行了多次。一种执行方法比其他方法更鲁莽地暴露了凭据。比较所有执行情况并找到明文密码。
**发现**:
- **电子邮件**:`jwilson.vhr@proton.me`
- **密码**:`Summer2024!`
**KQL 查询**:
```
EmberForgeX_CL
| where todatetime(UtcTime_s) between (datetime(2026-01-30 23:00) .. datetime(2026-01-31 00:00))
| project-reorder UtcTime_s desc
| project-away TimeGenerated
| where CommandLine_s has "rclone"
| project UtcTime_s, CommandLine_s
```
**备注:**:攻击者鲁莽地将 `MEGA` 的密码留在了命令行中,同时也暴露了他们的电子邮件。
## Flag 9 – 存档方法
**目标**:在渗透之前,被窃取的数据被压缩成一个存档。攻击者使用的是内置的 OS 功能,而不是第三方工具。这是一种“Living Off The Land”(利用现成工具)技术。是什么 cmdlet 创建了该存档?
**发现**:
- **cmdlet**:`Compress-Archive`
**KQL 查询**:
```
EmberForgeX_CL
| where todatetime(UtcTime_s) between (datetime(2026-01-30 23:30) .. datetime(2026-01-30 23:40))
| where CommandLine_s has "copy" or CommandLine_s has "gamedev.zip"
| project UtcTime_s, Computer, CommandLine_s
```
**备注:**:看来攻击者使用了 Powershell 的内置 cmdlet `Compress-Archive` 将数据压缩到一个存档文件夹中。
## Flag 10 – 中转服务器
**目标**:攻击者没有手动携带工具。他们从其控制的外部基础设施下载了实用程序。环境中引用同一中转服务器的多个命令。
**发现**:
- **服务器名称**:`sync.cloud-endpoint.ne`
**KQL 查询**:
```
EmberForgeX_CL
| where todatetime(UtcTime_s) between (datetime(2026-01-30 21:00) .. datetime(2026-01-31 00:00))
| project-reorder UtcTime_s desc
| project-away TimeGenerated
| project UtcTime_s, CommandLine_s
| where CommandLine_s has_any ("https", "http", "curl")
```
**备注:**:对命令行活动的分析显示,攻击者使用内置实用程序从外部中转服务器下载了工具。多个命令引用了同一台服务器,表明用于工具交付的受控基础设施。确定的中转服务器是 `sync.cloud-endpoint.net`。
这一切是从哪里开始的?
## Flag 11 – 恶意文件
**目标**:事件始于 Lisa 从桌面打开某些东西。在工作站上找到最早的恶意进程创建事件。使用了一个 Windows 实用程序来加载一个不属于正常用户工作流的文件。
**发现**:
- **初始进程时间**:`9:27:03 PM`
- **工作站**:`EC2AMAZ-B9GHHO6.emberforge.local`
- **二进制文件**:`rundll32.exe`
- **DLL 文件**:`review.dll`
**KQL 查询**:
```
EmberForgeX_CL
| where todatetime(UtcTime_s) between (datetime(2026-01-30 21:00) .. datetime(2026-01-31 00:00))
| where CommandLine_s has ".exe"
| sort by UtcTime_s asc
| project-away TimeGenerated
| project-reorder TimeCreated_t
| project TimeCreated_t, CommandLine_s, Computer, EventCode_s
```
**备注:** 进一步分析显示,初始恶意进程始于 `9:27:03 PM`,在此处工作站 `EC2AMAZ-B9GHHO6.emberforge.local` 加载了一个文件,该文件使用受信任的二进制文件来掩盖其恶意性。攻击者使用 `rundll32.exe` 运行了一个 DLL 文件 `review.dll`,这是包含恶意代码的负载。
## Flag 12 – 投递载体
**目标**:查看恶意文件的完整路径。驱动器号很重要。如果文件不在 C: 上,请考虑它是如何到达那里的。挂载的磁盘映像(ISO、IMG、VHD)显示为虚拟驱动器,并绕过某些 Windows 安全保护。
**发现**:
- **恶意文件**:`review.dll`
**KQL 查询**:
```
EmberForgeX_CL
| where todatetime(UtcTime_s) between (datetime(2026-01-30 21:00) .. datetime(2026-01-31 00:00))
| where CommandLine_s has ".exe"
| sort by UtcTime_s asc
| project-away TimeGenerated
| project-reorder TimeCreated_t
| project TimeCreated_t, CommandLine_s, Computer, EventCode_s
```
**备注:** 恶意文件 `review.dll` 是从 `D:` 驱动器而不是系统的主 `C:` 驱动器执行的。这表明该文件源自挂载的虚拟驱动器,例如 ISO 或磁盘映像。这将允许攻击者更容易地投递和执行恶意内容,因为它绕过了某些安全控制。
## Flag 13 – 受损用户
**目标**:进程创建事件中的用户字段告诉您哪个账户执行了负载。这就是零号病人。
**发现**:
- **零号病人用户名**:`lmartin`
**KQL 查询**:
```
EmberForgeX_CL
| where todatetime(UtcTime_s) between (datetime(2026-01-30 21:27) .. datetime(2026-01-31 00:00))
| where CommandLine_s has ".exe"
| sort by UtcTime_s asc
| project-away TimeGenerated
| project-reorder TimeCreated_t
| project TimeCreated_t, CommandLine_s, Computer, user_s
```
**备注:** 'review.dll' 是使用用户配置文件 'lmartin' 执行的负载文件。
## Flag 14 – 执行链
**目标**:每个进程都有一个父进程,而该父进程也有一个父进程。追踪从用户操作到加载恶意文件的完整执行链。
**发现**:
- **进程**:`explorer.exe > rundll32.exe > review.dll`
**KQL 查询**:
```
EmberForgeX_CL
| where todatetime(UtcTime_s) between (datetime(2026-01-30 21:27) .. datetime(2026-01-31 00:00))
| where CommandLine_s has ".exe"
| sort by UtcTime_s asc
| project-away TimeGenerated
| project-reorder TimeCreated_t
| project TimeCreated_t, CommandLine_s, Computer
```
**备注:** 通过 Windows 机器上的文件资源管理器系统,负载是使用受信任的 `runll32.exe` 二进制文件执行的。
## Flag 15 – 投递解包
**目标**:在加载恶意 DLL 之前,用户打开了一个下载的存档。压缩工具将其内容提取到用户配置文件中的文件夹。此提取步骤在 DLL 执行之前进行。
**发现**:
- **ISO:** `EmberForge_Review`
- **压缩存档路径:** `C:\Users\lmartin.EMBERFORGE\Downloads\EmberForge_Review\`
**KQL 查询**:
```
EmberForgeX_CL
| where todatetime(UtcTime_s) between (datetime(2026-01-30 00:00) .. datetime(2026-01-30 21:27))
| where CommandLine_s has "7-Zip"
| sort by UtcTime_s asc
| project-away TimeGenerated
| project-reorder TimeCreated_t
| project TimeCreated_t, CommandLine_s, Computer, process_name_s, process_path_s,
```
**备注:** 在执行恶意负载之前,Lisa 不知不觉地打开了一个压缩文件夹,其内容伪装成 EmberForge 项目审查文件,但实际上是一个内部包含 `review.dll` 的 ISO。
工作站上运行了什么?
## Flag 16 – 释放的负载
**目标**:在初始 DLL 执行后不久,一个新的可执行文件出现在工作站上的一个可写目录中。这成为了攻击者其余操作的主要工具。
**发现**:
- **可执行文件路径:** `C:\Users\Public\update.exe`
**KQL 查询**:
```
EmberForgeX_CL
| where todatetime(UtcTime_s) between (datetime(2026-01-30 21:24:04) .. datetime(2026-01-31 00:00))
| where CommandLine_s has_any ("Temp", "Public", "ProgramData")
| sort by UtcTime_s asc
| project-away TimeGenerated
| project-reorder TimeCreated_t
| project TimeCreated_t, CommandLine_s
```
**备注:** 在负载于 `9:37:16` 执行后不久,创建了一个任务,显示为 `WindowsUpdate`,并计划在系统启动时使用系统权限触发。这非常可疑,因为它允许该特定文件在机器在线时保持持久性。
## Flag 17 – C2 域
**目标**:恶意软件需要与攻击者通信。Sysmon EventCode 22 捕获进程发出的每个 DNS 查询。该域名看起来设计为与合法的云流量混合。
**发现**:
- **域名:** `cdn.cloud-endpoint.net`
**KQL 查询**:
```
EmberForgeX_CL
| where todatetime(UtcTime_s) between (datetime(2026-01-30 21:24:04) .. datetime(2026-01-31 00:00))
| where EventCode_s == "22" and process_exec_s has_any ("update.exe", "rundll32.exe")
| sort by UtcTime_s asc
| project-away TimeGenerated
| project-reorder TimeCreated_t
| project TimeCreated_t, QueryName_s
```
## Flag 18 – 主要 C2 IP
**目标**:DNS 查询将域名解析为 IP 地址。EventCode 22 原始 XML 中的 QueryResults 字段包含解析的 IP。
**发现**:
- **IP:** `104.21.30.237`
**KQL 查询**:
```
EmberForgeX_CL
| where todatetime(UtcTime_s) between (datetime(2026-01-30 21:24:04) .. datetime(2026-01-31 00:00))
| where EventCode_s == "22" and process_exec_s has_any ("update.exe", "rundll32.exe")
| sort by UtcTime_s asc
| project-away TimeGenerated
| project-reorder TimeCreated_t
| project TimeCreated_t, QueryName_s, QueryResults_s
```
## Flag 19 – 注入链
**目标**:攻击者将代码从一个进程注入到另一个进程以进行隐藏。Sysmon EventCode 8 (CreateRemoteThread) 捕获了这一点。追踪注入链。
**发现**:
- **链:** rundll32.exe > notepad.exe
**KQL 查询**:
```
EmberForgeX_CL
| where todatetime(UtcTime_s) between (datetime(2026-01-30 21:24:04) .. datetime(2026-01-31 00:00))
| where EventCode_s == "8"
| sort by UtcTime_s asc
| project-away TimeGenerated
| project-reorder TimeCreated_t
| project TimeCreated_t, SourceImage_s, SourceUser_s, TargetImage_s, TargetUser_s
```
**备注:** 攻击者将代码从 `rundll32.exe` 注入到 `notepad.exe` 中,以在合法进程中隐藏恶意活动。
他们是如何提权的?
## Flag 20 – UAC 绕过二进制文件
**目标**:某些 Windows 可执行文件受信任,可以在没有 UAC 提示的情况下自动提升权限。攻击者通过注册表修改劫持这些二进制文件执行的内容。查找注册表更改 (EventCode 13),随后紧接着受信任二进制文件的执行。
**KQL 查询**:
```
EmberForgeX_CL
| where todatetime(UtcTime_s) between (datetime(2026-01-30 21:24:04) .. datetime(2026-01-31 00:00))
| where EventCode_s == "13"
| sort by UtcTime_s asc
| project-away TimeGenerated
| project-reorder TimeCreated_t
| project TimeCreated_t, EventType_s, TargetObject_s, object_path_s, registry_hive_s, registry_path_s, registry_key_name_s, Details_s, file_name_s
EmberForgeX_CL
| where TimeCreated_t between (datetime(2026-01-30 21:38:00) .. datetime(2026-01-30 21:40:00))
| where EventCode_s == "1" // Look for Process Creation
| project TimeCreated_t, CommandLine_s, ParentImage_s
```
**备注:** 在 `9:38 PM`,您可以在第一张截图中看到注册表更改,随后不久 `rundll32.exe` 被执行。注册表修改后是受信任的 Windows 二进制文件的执行,表明使用 UAC 绕过技术在无需用户的情况下获得了提升的权限。
## Flag 21 – 注册表绕过启用器
**目标**:UAC 绕过通过创建特定的注册表值来重定向执行。连续进行了两次修改。一次设置了负载路径。另一次启用了劫持。该值名称是什么?
**发现**:
- **值:** DelegateExecute
**KQL 查询**:
```
EmberForgeX_CL
| where TimeCreated_t between (datetime(2026-01-30 21:38:00) .. datetime(2026-01-30 21:40:00))
| where EventCode_s == "1" // Look for Process Creation
| project TimeCreated_t, CommandLine_s, ParentImage_s
```
**备注:** DelegateExecute 注册表值用于劫持执行流程,从而启用 UAC 绕过。
## Flag 22 – 稳定注入链
**目标**:UAC 绕过后,提升的信标执行了第二次注入以获得长期稳定性。源进程与第一次注入不同,并且目标在完全不同的安全上下文中运行。
**发现**:
- **进程**:`update.exe > spoolsv.exe (NT AUTHORITY\SYSTEM)`
**KQL 查询**:
```
EmberForgeX_CL
| where todatetime(UtcTime_s) between (datetime(2026-01-30 21:24:04) .. datetime(2026-01-31 00:00))
| where EventCode_s == "8"
| sort by UtcTime_s asc
| project-away TimeGenerated
| project-reorder TimeCreated_t
| project TimeCreated_t, SourceImage_s, SourceUser_s, TargetImage_s, TargetUser_s
```
**备注:** 攻击者将其代码从 `C:\Users\Public\update.exe` 第二次注入到 `NT AUTHORITY\SYSTEM`,这是 Windows 操作系统使用的高权限账户。
## Flag 23 – 凭据转储进程
**目标**:LSASS 保存每个登录用户的凭据。攻击者将其内存转储到磁盘。转储工具使用直接系统调用绕过 API 监控。您将找不到 LSASS 的 ProcessAccess 事件 (EventCode 10)。什么进程创建了转储文件?
**KQL 查询**:
```
EmberForgeX_CL
| where todatetime(UtcTime_s) between (datetime(2026-01-30 21:24:04) .. datetime(2026-01-31 00:00))
| where EventCode_s == "8"
| sort by UtcTime_s asc
| project-away TimeGenerated
| project-reorder TimeCreated_t
| project TimeCreated_t, SourceImage_s, SourceUser_s, TargetImage_s, TargetUser_s
```
**备注:**
## Flag 24 – 转储位置
**目标**:您已识别出该进程。现在查找它写入输出的位置。文件创建事件 (EventCode 11) 跟踪写入磁盘的每个文件。凭据转储写入到哪里?
**发现**:
- **路径**:`C:\Windows\System32\lsass.dmp`
**KQL 查询**:
```
EmberForgeX_CL
| where TimeCreated_t between (datetime(2026-01-30 21:00:00) .. datetime(2026-01-31 00:00))
| where EventCode_s == "11" and process_exec_s has "update.exe"
| where TargetFilename_s has_any (".dmp", ".DMP")
| sort by TimeCreated_t asc
| project-away TimeGenerated
| project-reorder TimeCreated_t
| project TimeCreated_t, TargetFilename_s, User_s, process_exec_s
```
**备注:** 攻击者使用 `update.exe` 执行了内存转储,该转储的输出已被识别为写入路径 `C:\Windows\System32\lsass.dmp`。
他们枚举了什么?
## Flag 25 – 用户枚举
**目标**:发现序列中的第一个命令查询域中的所有用户账户。
**发现**:
- **命令**:`net user /domain`
**KQL 查询**:
```
EmberForgeX_CL
| where TimeCreated_t between (datetime(2026-01-30 21:00:00) .. datetime(2026-01-31 00:00))
| where CommandLine_s has_any("net", "user")
| sort by TimeCreated_t asc
| project-away TimeGenerated
| project-reorder TimeCreated_t
| project TimeCreated_t, CommandLine_s, Computer
```
**备注:** 攻击者使用 `net` 命令快速获取域上的用户账户列表。
## Flag 26 – 权限枚举
**目标**:在列出用户后,攻击者立即查询特定组以识别谁拥有最高级别的访问权限。
**发现**:
- **命令**:`net group "Domain Groups" /domain`
**KQL 查询**:
```
EmberForgeX_CL
| where TimeCreated_t between (datetime(2026-01-30 21:00:00) .. datetime(2026-01-31 00:00))
| where CommandLine_s has_any("net", "group")
| sort by TimeCreated_t asc
| project-away TimeGenerated
| project-reorder TimeCreated_t
| project TimeCreated_t, CommandLine_s, Computer
```
**备注:** 攻击者使用 `net` 命令获取具有管理员权限的账户列表。
## Flag 27 – 基础设施映射
**目标**:最后一个发现命令定位关键基础设施。攻击者需要知道下一步去哪里。
**发现**:
- **命令**:`nltest /dclist:emberforge.local`
**KQL 查询**:
```
EmberForgeX_CL
| where TimeCreated_t between (datetime(2026-01-30 21:00:00) .. datetime(2026-01-31 00:00))
| where CommandLine_s has_any("net", "group", "nltest")
| sort by TimeCreated_t asc
| project-away TimeGenerated
| project-reorder TimeCreated_t
| project TimeCreated_t, CommandLine_s, Computer
```
**备注:** 攻击者使用 nltest 来识别域控制器并映射关键基础设施。
他们是如何传播的?
## Flag 28 – 工具中转共享
**目标**:在横向移动之前,攻击者将工作站设置为分发点。创建了一个网络共享。
**发现**:
- **命令**:cmd.exe /c "net share tools=C:\Users\Public /grant:everyone,full"
**KQL 查询**:
```
EmberForgeX_CL
| where TimeCreated_t between (datetime(2026-01-30 22:14:42.919) .. datetime(2026-01-31 00:00))
| where CommandLine_s has "share"
| sort by TimeCreated_t asc
| project-away TimeGenerated
| project-reorder TimeCreated_t
| project TimeCreated_t, CommandLine_s, host_s, dest_s
```
**备注:** 创建了一个网络共享,用于跨系统分发工具,为横向移动做准备。
## Flag 29 – 防火墙操作
**目标**:在横向移动之前,攻击者将工作站设置为分发点。创建了一个网络共享。
**发现**:
- **规则**:`netsh advfirewall`
- **名称**:`SMB`
- **端口:**:`445'
**KQL 查询**:
```
EmberForgeX_CL
| where TimeCreated_t between (datetime(2026-01-30 22:14:42.919) .. datetime(2026-01-31 00:00))
| where CommandLine_s has "firewall"
| sort by TimeCreated_t asc
| project-away TimeGenerated
| project-reorder TimeCreated_t
| project TimeCreated_t, CommandLine_s, host_s, dest_s
```
**备注:** 分析显示攻击者修改了系统防火墙以允许横向移动所需的入站连接。使用 `netsh advfirewall` 创建了一个新规则,名称为 `SMB`,以允许通过 `TCP 端口 445` 的流量。
## Flag 30 – 端口提升父进程
**目标**:信标迁移到 SYSTEM 进程后,工作站上所有随后的攻击者命令都作为该进程的子进程执行。查看横向移动命令(共享创建、文件复制、防火墙更改)的父进程。
**发现**:
- **SYSTEM 进程**:`spoolsv.exe`
**KQL 查询**:
```
EmberForgeX_CL
| where TimeCreated_t between (datetime(2026-01-30 22:14:42.919) .. datetime(2026-01-31 00:00))
| where CommandLine_s has_any("netsh", "net", "nltest", "copy")
| where host_s == "EC2AMAZ-B9GHHO6"
| sort by TimeCreated_t asc
| project-away TimeGenerated
| project-reorder TimeCreated_t
| project TimeCreated_t, CommandLine_s, host_s, dest_s, parent_process_name_s
```
**备注:** 分析显示,在最初受损后,攻击者的信标迁移到了 SYSTEM 进程 `spoolsv.exe` 中。随后的横向移动活动(包括共享创建、文件传输和防火墙修改)是作为 `spoolsv.exe` 的子进程执行的,表明攻击者正在使用提升的权限进行操作。
## Flag 31 – 信标分发
**目标**:攻击者通过 Windows 管理共享 (C$) 将其主要工具推送到服务器。完整的命令是什么?
**发现**:
- **完整命令**:`cmd.exe /c copy C:\Users\Public\update.exe\\10.1.57.66\C$\Users\Public\update.exe`
**KQL 查询**:
```
EmberForgeX_CL
| where TimeCreated_t between (datetime(2026-01-30 22:14:42.919) .. datetime(2026-01-31 00:00))
| where CommandLine_s has_any("netsh", "net", "nltest", "copy")
| where host_s == "EC2AMAZ-B9GHHO6"
| sort by TimeCreated_t asc
| project-away TimeGenerated
| project-reorder TimeCreated_t
| project TimeCreated_t, CommandLine_s, host_s, dest_s, parent_process_name_s
```
**备注:** 分析显示攻击者使用 Windows 管理共享 (C$) 将其主要工具传输到远程服务器。
## Flag 32 – LOLBin 工具中转
**目标**:在服务器上,滥用了一个内置的 Windows 实用程序从攻击者的中转基础设施下载工具。使用了什么实用程序,它从中下载的完整 URL 是什么?
**发现**:
- **URL**:`http://sync.cloud-endpoint.net:8080/update.exe`
- **实用程序工具:** certutil.exe
**KQL 查询**:
```
EmberForgeX_CL
| where TimeCreated_t between (datetime(2026-01-30 21:00:00) .. datetime(2026-01-31 00:00))
| where CommandLine_s has "http" and CommandLine_s has "sync.cloud-endpoint.net"
| sort by TimeCreated_t asc
| project-away TimeGenerated
| project-reorder TimeCreated_t
| project TimeCreated_t, CommandLine_s, Computer, User_s, src_ip_s, parent_process_exec_s
```
**备注:** 分析显示攻击者使用 Windows 管理共享 (C$) 将其主要工具传输到远程服务器。
## Flag 33 – 远程执行证据
**目标**:现在查看服务器。攻击者使用了一种远程执行技术,该技术创建具有随机名称的临时 Windows 服务。这些出现在 Raw_s 中的 EventCode 7045 中。
**发现**:
- **ServiceName**:`MzLblBFm
**KQL 查询**:
```
EmberForgeX_CL
| where TimeGenerated between (datetime(2026-01-15) .. now())
| where Computer has "16V3AU4" and EventCode_s == "7045"
| parse Raw_s with * "Data Name='ServiceName'>" ServiceName "" * "Data Name='ImagePath'>" ImagePath "" *
| project ServiceName, ImagePath
```
**备注:** 创建了一个具有随机名称的临时服务,表明通过服务创建进行远程执行。
## Flag 34 – 服务器上的第一条命令
**目标**:远程执行技术将命令输出重定向到临时文件。在任何新受损主机上,攻击者的第一条命令几乎总是相同的。
**发现**:
- **命令**:`whoami`
**KQL 查询**:
```
EmberForgeX_CL
| where TimeCreated_t between (datetime(2026-01-30 21:00:00) .. datetime(2026-01-31 00:00))
| where EventCode_s == "1"
| where CommandLine_s has "Windows\\Temp"
| sort by TimeCreated_t asc
| project-away TimeGenerated
| project-reorder TimeCreated_t
| project TimeCreated_t, CommandLine_s, Computer
```
**备注:** 攻击者运行了 whoami 以确认在新受损服务器上的访问级别。
## Flag 35 – 失败的横向移动
**目标**:攻击者的第一种横向移动方法不可靠。服务器上的身份验证日志显示来自内部主机的反复失败。检查 EventCode 4625。
**发现**:
- **身份验证包名称**:`NTLM`
- **IP**:10.1.173.145
**KQL 查询**:
```
EmberForgeX_CL
| where TimeGenerated between (datetime(2026-01-15) .. now())
| where Computer has "16V3AU4" and EventCode_s == "4625"
| parse Raw_s with * "Data Name='AuthenticationPackageName'>" AuthenticationPackageName "" * "Data Name='IpAddress'>" IpAddress "" *
| project AuthenticationPackageName, IpAddress
```
**备注:** 多次失败的 NTLM 身份验证尝试表明攻击者最初在横向移动方面遇到了困难。
他们控制了域吗?
## Flag 36 – DC 到达和凭据提取
**目标**:攻击者到达了域控制器并立即开始针对 AD 数据库工作。追踪第一条命令和提取工具。
**发现**:
- **提取工具**:`vssadmin`
- **第一条命令**:`whoami`
**KQL 查询**:
```
EmberForgeX_CL
| where TimeGenerated between (datetime(2026-01-15) .. now())
| where Computer has "16V3AU4" and EventCode_s == "4625"
| parse Raw_s with * "Data Name='AuthenticationPackageName'>" AuthenticationPackageName "" * "Data Name='IpAddress'>" IpAddress "" *
| project AuthenticationPackageName, IpAddress
```
**备注:** 到达域控制器后,攻击者使用卷影复制技术访问并提取了 Active Directory 数据库 `ntds.dit`。
## Flag 37 – 后门账户
**目标**:提取数据库后,攻击者创建了一个新账户,旨在与合法的服务账户混合。
**发现**:
- **账户**:`svc_backup`
**KQL 查询**:
```
EmberForgeX_CL
| where TimeGenerated between (datetime(2026-01-15) .. now())
| where CommandLine_s has "net user"
| project TimeCreated_t, CommandLine_s, Computer
```
**备注:** 攻击者创建了一个新账户 `svc_backup` 以维持访问权限,同时与合法的服务账户混合。
## Flag 38 – 后门凭据
**目标**:账户创建命令将密码作为命令行参数包含在内。糟糕的 OPSEC,但永久捕获在您的日志中。
**发现**:
- **密码**:`P@ssw0rd123!`
**KQL 查询**:
```
EmberForgeX_CL
| where TimeGenerated between (datetime(2026-01-15) .. now())
| where CommandLine_s has "net user"
| project TimeCreated_t, CommandLine_s, Computer
```
**备注:** 账户密码以明文形式在命令行中暴露,表明操作安全性很差。
## Flag 39 – 权限分配
**目标**:仅创建账户是不够的。攻击者运行了第二条命令以赋予其提升的权限。
**发现**:
- **命令**:`Domain Admins`
**KQL 查询**:
```
EmberForgeX_CL
| where TimeCreated_t between (datetime(2026-01-30 22:14:42.919) .. datetime(2026-01-31 00:00))
| where CommandLine_s has "net group"
| sort by TimeCreated_t asc
| project-away TimeGenerated
| project-reorder TimeCreated_t
| project TimeCreated_t, CommandLine_s, host_s, dest_s
```
**备注:** 攻击者将后门账户添加到 `Domain Admins` 组,以获得对域的完全控制。
## Flag 40 – 暴露的凭据
**目标**:攻击者需要在 DC 上映射网络驱动器以访问工具。驱动器映射命令包含明文形式的身份验证凭据。
**发现**:
- **密码**:`EmberForge2024!`
**KQL 查询**:
```
EmberForgeX_CL
| where TimeCreated_t > todatetime('2026-01-30T23:38:11.7874159Z')
| where CommandLine_s has "net use"
| project TimeCreated_t, CommandLine_s, Computer
```
他们能回来吗?
## Flag 41 – 计划任务
**目标**:攻击者创建了一个计划任务,以确保其负载在重新启动后仍然存在。该名称被选择为看起来合法。
**发现**:
- **任务名称:** `WindowsUpdate`
**KQL 查询**:
```
EmberForgeX_CL
| where TimeCreated_t > todatetime('2026-01-30T23:38:11.7874159Z')
| where CommandLine_s has "onstart /ru"
| project TimeCreated_t, CommandLine_s, Computer
```
**备注:** 命令行包含攻击者在机器上编写的任务,以便在机器重启后负载继续运行。
## Flag 42 – 远程访问工具
**目标**:为了无人值守访问,静默安装了一个合法的远程管理应用程序。
**发现**:
- **任务名称:** `AnyDesk`
**KQL 查询**:
```
EmberForgeX_CL
| where TimeGenerated between (datetime(2026-01-15) .. now())
| where CommandLine_s has "--silent"
| project TimeCreated_t, CommandLine_s, Computer
```
**备注:** silent 参数将在后台安装该应用程序。
## Flag 43 – 远程访问配置
**目标**:攻击者读取并修改了远程访问工具的配置文件。命令揭示了其完整路径。
**发现**:
- **路径:** `C:\ProgramData\AnyDesk\system.conf`
**KQL 查询**:
```
EmberForgeX_CL
| where TimeGenerated between (datetime(2026-01-15) .. now())
| where CommandLine_s has "AnyDesk"
| project TimeCreated_t, CommandLine_s, Computer
```
**备注:** 攻击者访问并修改了 `AnyDesk` 配置文件以维持控制。
## Flag 44 – 反取证工具
**目标**:攻击者读取并修改了远程访问工具的配置文件。命令揭示了其完整路径。
**发现**:
- **命令:** `wevtutil`
**KQL 查询**:
```
EmberForgeX_CL
| where TimeGenerated between (datetime(2026-01-15) .. now())
| where CommandLine_s has "wevtutil"
| project TimeCreated_t, CommandLine_s, Computer
```
**备注:** 攻击者使用 `wevtutil` 操作或清除 Windows 事件日志并隐藏活动。
## Flag 45 – 清除的日志
**目标**:攻击者清除了不止一个事件日志。每个清除命令都按名称针对特定的日志。清除了哪两个日志?
**发现**:
- **日志名称:** `System, Security`
**KQL 查询**:
```
EmberForgeX_CL
| where TimeGenerated between (datetime(2026-01-15) .. now())
| where CommandLine_s has "wevtutil"
| project TimeCreated_t, CommandLine_s, Computer
```
**备注:** 攻击者清除了 `System` 和 `Security` 日志,以删除其操作的证据。
标签:Burp Suite 替代, BurpSuite集成, CIDR输入, EmberForge, KQL, Kusto, Microsoft Sentinel, Neon Shadows, Windows 11, Writeup, 云存储, 企业安全, 压缩归档, 攻击链分析, 数字取证, 数据外泄, 横向移动, 游戏安全, 源代码泄露, 编程规范, 网络安全审计, 网络资产管理, 自动化脚本