nadeznamorris/Threat-Hunting-Scenario-The-Buyer
GitHub: nadeznamorris/Threat-Hunting-Scenario-The-Buyer
一份基于 Akira 勒索软件 RDP 入侵事件的威胁狩猎实战报告,提供完整的 KQL 查询语句和分阶段调查方法。
Stars: 0 | Forks: 0
# 威胁狩猎场景:买家
## RDP 沦陷事件
**报告 ID:** INC-2026-1403
**分析师:** Nadezna Morris
**日期:** 2026年3月14日
**事件日期:** 2026年1月27日
## 执行摘要
继 ***The Broker*** 中记录的初始入侵之后,一个勒索软件附属成员利用预先植入的持久访问权限重新进入 Ashford Sterling 环境并部署了 Akira 勒索软件。威胁行为者目的明确:访问权限在之前的入侵期间已被植入,并在本次活动中被重新激活。
攻击者禁用了安全工具,从 LSASS 中窃取了凭证,执行了内部网络侦察,渗出了敏感数据,并最终加密了两个系统(AS-SRV 和 AS-PC2)上的文件,然后投递了勒索信并对环境进行了自清理。加密始于 **22:18:33**。通过 TOR 托管的 Akira 谈判门户发出了 **£65,000** 的勒索赎金要求。
## 1. 调查结果
### **关键入侵指标 (IOC):**
| 指标 | 描述 |
| -------------------------------------------------------------- | ------------------------------------------ |
| 88.97.164.155 | 攻击者外部 IP 地址 |
| david.mitchell | 被入侵的域用户 — 攻击者的主要据点 |
| as.srv.administrator | 用于访问 AS-SRV 的横向移动账户 |
| kill.bat | 安全控制终止脚本 |
| updater.exe | Akira 勒索软件二进制文件(伪装) |
| sync.cloud-endpoint.net | 工具下载中转服务器 |
| cdn.cloud-endpoint.net | C2 信标通信 |
| akiral2iz6a7qgd3ayp3l6yub7xx2uep76idk3u2kollpj5z3z636bad.onion | Akira 谈判门户 |
### **使用的 KQL 查询:**
***第 1 部分:勒索信分析***
**目标:** 通过勒索信识别勒索软件组织。 **Flag:** `Akira` **目标:** 勒索信提供了联系方式。 **Flag:** `akiral2iz6a7qgd3ayp3l6yub7xx2uep76idk3u2kollpj5z3z636bad.onion` **目标:** 每个受害者都会收到用于谈判的唯一标识符。 **Flag:** `813R-QWJM-XKIJ` **目标:** 每个受害者都会收到用于谈判的唯一标识符。 **Flag:** `.akira` ***第 2 部分:基础设施*** **目标:** 每个受害者都会收到用于谈判的唯一标识符。 **Flag:** `sync.cloud-endpoint.net` ``` DeviceNetworkEvents | where DeviceName has_any ("as-") | where TimeGenerated between (datetime(2026-01-27) .. datetime(2026-02-28)) | where ActionType == "ConnectionSuccess" | where RemoteUrl != "" | project TimeGenerated, DeviceName, InitiatingProcessFileName, InitiatingProcessCommandLine, RemoteUrl, RemoteIP, RemotePort | order by TimeGenerated asc ```
**目标:** Payload 建立了出站连接。 **Flag:** `cdn.cloud-endpoint.net` ``` DeviceNetworkEvents | where DeviceName == ("as-srv") | where TimeGenerated between (datetime(2026-01-27) .. datetime(2026-02-28)) | where ActionType == "ConnectionSuccess" | where RemoteIPType == "Public" | where RemoteUrl != "" | project TimeGenerated, DeviceName, InitiatingProcessFileName, InitiatingProcessCommandLine, RemoteUrl, RemoteIP, RemotePort | order by TimeGenerated asc ```
**目标:** C2 基础设施解析为多个 IP。 **Flag:** `104.21.30.237, 172.67.174.46` ``` DeviceNetworkEvents | where DeviceName =="as-srv" | where TimeGenerated between (datetime(2026-01-27) .. datetime(2026-02-28)) | where RemoteUrl has_any ("sync.cloud-endpoint.net", "cdn.cloud-endpoint.net") | distinct DeviceName, RemoteIP ```
**目标:** 远程工具通过中继服务器进行路由。 **Flag:** `relay-0b975d23.net.anydesk.com` ``` DeviceNetworkEvents | where DeviceName == "as-srv" | where TimeGenerated between (datetime(2026-01-27) .. datetime(2026-02-28)) | where RemoteUrl has_any ("relay", "tunnel", "proxy", "gateway", "remote", "connect", "access") | project TimeGenerated, DeviceName, InitiatingProcessFileName, RemoteUrl, RemoteIP, RemotePort | sort by TimeGenerated desc ```
***第 3 部分:防御规避***
**目标:** 脚本被用于禁用安全控制。
**Flag:** `kill.bat`
```
DeviceFileEvents
| where DeviceName has_any ("as-")
| where TimeGenerated between (datetime(2026-01-27) .. datetime(2026-02-28))
| where FileName has_any (".ps1", ".bat", ".cmd")
| where FileName !startswith "__PSScriptPolicyTest_"
| project TimeGenerated, DeviceName, InitiatingProcessAccountName, FileName, FolderPath, InitiatingProcessCommandLine
| order by TimeGenerated desc
```
**目标:** 识别规避脚本的哈希值。 **Flag:** `0e7da57d92eaa6bda9d0bbc24b5f0827250aa42f295fd056ded50c6e3c3fb96c` ``` DeviceFileEvents | where DeviceName == "as-pc2" | where TimeGenerated between (datetime(2026-01-27) .. datetime(2026-02-28)) | where FileName has_any (".ps1", ".bat", ".cmd") | where FileName !startswith "__PSScriptPolicyTest_" | project TimeGenerated, DeviceName, InitiatingProcessAccountName, FileName, InitiatingProcessCommandLine, SHA256 | order by TimeGenerated desc ```
**目标:** 通过修改注册表禁用了 Windows Defender。 **Flag:** `DisableAntiSpyware` ``` DeviceRegistryEvents | where DeviceName == "as-pc2" | where TimeGenerated between (datetime(2026-01-27) .. datetime(2026-02-28)) | where RegistryKey has "Windows Defender" | project TimeGenerated, DeviceName, InitiatingProcessFileName, RegistryKey, RegistryValueName, RegistryValueData | sort by TimeGenerated desc ```
**目标:** 确定注册表被修改的时间。 **Flag:** `21:03:42` ``` DeviceRegistryEvents | where DeviceName == "as-pc2" | where TimeGenerated between (datetime(2026-01-27) .. datetime(2026-02-28)) | where RegistryKey has "Windows Defender" | project TimeGenerated, DeviceName, InitiatingProcessFileName, RegistryKey, RegistryValueName, RegistryValueData | sort by TimeGenerated desc ```
***第 4 部分:凭证访问***
**目标:** 攻击者枚举了正在运行的进程,以定位凭证窃取的目标。
**Flag:** `tasklist | findstr lsass`
```
DeviceProcessEvents
| where DeviceName == "as-pc2"
| where TimeGenerated between (datetime(2026-01-27) .. datetime(2026-02-28))
| where ProcessCommandLine has_any ("tasklist","Get-Process","wmic process","ps")
| project TimeGenerated, DeviceName, AccountName, FileName, ProcessCommandLine
| order by TimeGenerated asc
```
**目标:** 在凭证窃取活动期间访问了一个命名管道。 **Flag:** `\Device\NamedPipe\lsass` ``` DeviceEvents | where DeviceName == "as-pc2" | where TimeGenerated between (datetime(2026-01-27) .. datetime(2026-02-28)) | where ActionType == "NamedPipeEvent" | extend PipeName = tostring(parse_json(AdditionalFields).PipeName) | project TimeGenerated, DeviceName, InitiatingProcessFileName, PipeName | sort by TimeGenerated asc ```
***第 5 部分:初始访问*** **目标:** 先前攻击中预先植入的远程访问工具。 **Flag:** `Anydesk.exe` ``` DeviceProcessEvents | where DeviceName == "as-pc1" | where TimeGenerated between (datetime(2026-01-27) .. datetime(2026-02-28)) | where FileName has_any ("anydesk.exe", "teamviewer.exe", "ngrok.exe", "cloudflared.exe", "rutserv.exe", "radmin.exe") | project TimeGenerated, DeviceName, FileName, ProcessCommandLine, FolderPath | sort by TimeGenerated asc ```
**目标:** 远程访问工具在 AS-PC2 上的异常位置运行。 **Flag:** `C:\Users\Public\` ``` DeviceProcessEvents | where DeviceName == "as-pc2" | where TimeGenerated between (datetime(2026-01-27) .. datetime(2026-02-28)) | where FileName has_any ("anydesk.exe", "teamviewer.exe", "ngrok.exe", "cloudflared.exe", "rutserv.exe", "radmin.exe") | project TimeGenerated, DeviceName, FileName, ProcessCommandLine, FolderPath | sort by TimeGenerated asc ```
**目标:** 识别攻击者的外部 IP 地址。 **Flag:** `88.97.164.155` ``` DeviceNetworkEvents | where DeviceName == "as-pc2" | where TimeGenerated between (datetime(2026-01-27) .. datetime(2026-02-28)) | where RemoteIPType == "Public" | where InitiatingProcessCommandLine has_any ("Anydesk") | project TimeGenerated, DeviceName, InitiatingProcessCommandLine, RemoteIP, RemotePort | sort by TimeGenerated asc ```
**目标:** 识别被入侵的用户账户。 **Flag:** `david.mitchell` ``` DeviceNetworkEvents | where DeviceName == "as-pc2" | where TimeGenerated between (datetime(2026-01-27) .. datetime(2026-02-28)) | where RemoteIPType == "Public" | where InitiatingProcessCommandLine has_any ("Anydesk") | where RemotePort == 7070 | project TimeGenerated, DeviceName, InitiatingProcessAccountName, InitiatingProcessCommandLine, RemoteIP, RemotePort | sort by TimeGenerated asc ```
***第 6 部分:命令与控制 (C2)***
**目标:** 来自 The Broker 的预植入信标未能维持稳定的通信。部署了一个新的信标。
**Flag:** `wsync.exe`
```
DeviceProcessEvents
| where DeviceName has_any ("as-")
| where TimeGenerated between (datetime(2026-01-27) .. datetime(2026-02-28))
| where InitiatingProcessFileName has_any ("wsync.exe", "powershell.exe", "cmd.exe")
| project TimeGenerated, DeviceName, FileName, ProcessCommandLine, FolderPath
| sort by TimeGenerated asc
```
**目标:** 识别信标部署的位置。 **Flag:** `c:\programdata\` ``` DeviceProcessEvents | where DeviceName == "as-pc2" | where TimeGenerated between (datetime(2026-01-27) .. datetime(2026-02-28)) | where FileName == "wsync.exe" | project TimeGenerated, DeviceName, FileName, ProcessCommandLine, FolderPath | sort by TimeGenerated asc ```
**目标:** 识别 C2 信标的哈希值。 **Flag:** `66b876c52946f4aed47dd696d790972ff265b6f4451dab54245bc4ef1206d90b` ``` DeviceProcessEvents | where DeviceName == "as-pc2" | where TimeGenerated between (datetime(2026-01-27) .. datetime(2026-02-28)) | where FileName == "wsync.exe" | project TimeGenerated, DeviceName, FileName, FolderPath, SHA256, ProcessCommandLine | order by TimeGenerated asc ```
**目标:** 部署了新的信标以替换失败的信标。 **Flag:** `0072ca0d0adc9a1b2e1625db4409f57fc32b5a09c414786bf08c4d8e6a073654` ``` DeviceProcessEvents | where DeviceName == "as-pc2" | where TimeGenerated between (datetime(2026-01-27) .. datetime(2026-02-28)) | where FileName == "wsync.exe" | project TimeGenerated, DeviceName, FileName, ProcessCommandLine, SHA256 | order by TimeGenerated asc ```
***第 7 部分:侦察***
**目标:** 部署了网络扫描器。
**Flag:** `"scan.exe"`
```
DeviceProcessEvents
| where DeviceName == "as-pc2"
| where TimeGenerated between (datetime(2026-01-27) .. datetime(2026-02-28))
| where FileName has_any ("scan")
| project TimeGenerated, DeviceName, FileName, FolderPath, ProcessCommandLine
| order by TimeGenerated asc
```
**目标:** 识别扫描器的哈希值。 **Flag:** `26d5748ffe6bd95e3fee6ce184d388a1a681006dc23a0f08d53c083c593c193b` ``` DeviceProcessEvents | where DeviceName == "as-pc2" | where TimeGenerated between (datetime(2026-01-27) .. datetime(2026-02-28)) | where FileName has_any ("scan") | project TimeGenerated, DeviceName, FileName, FolderPath, ProcessCommandLine, SHA256 | order by TimeGenerated asc ```
**目标:** 网络扫描器在执行时使用了特定参数,暴露了攻击者的意图。 **Flag:** `/portable "C:/Users/david.mitchell/Downloads/" /lng en_us` ``` DeviceProcessEvents | where DeviceName has_any ("as-") | where TimeGenerated between (datetime(2026-01-27) .. datetime(2026-02-28)) | where AccountName == "david.mitchell" | project TimeGenerated, DeviceName, FileName, ProcessCommandLine, AccountName, InitiatingProcessFileName | order by TimeGenerated desc ```
**目标:** 攻击者枚举了特定主机上的网络共享。 **Flag:** `10.1.0.183, 10.1.0.154` ``` DeviceProcessEvents | where DeviceName has_any ("as-") | where TimeGenerated between (datetime(2026-01-27) .. datetime(2026-02-28)) | where FileName in~ ("net.exe", "net1.exe") | where ProcessCommandLine has_any ("view") | project TimeGenerated, DeviceName, AccountName, ProcessCommandLine | order by TimeGenerated desc ```
***第 8 部分:横向移动***
**目标:** 一个账户被用于访问 AS-SRV。
**Flag:** `as.srv.administrator`
```
DeviceLogonEvents
| where DeviceName == "as-srv"
| where TimeGenerated between (datetime(2026-01-27) .. datetime(2026-02-28))
| project TimeGenerated, DeviceName, AccountName, AccountDomain, LogonType
| order by TimeGenerated asc
```
***第 9 部分:工具传输***
**目标:** 首先使用了一个 living-off-the-land 二进制文件,但遇到了问题。
**Flag:** `bitsadmin.exe`
```
DeviceProcessEvents
| where DeviceName has_any ("as-")
| where TimeGenerated between (datetime(2026-01-27) .. datetime(2026-02-28))
| where FileName in~ (
"certutil.exe", "bitsadmin.exe", "powershell.exe",
"mshta.exe", "wscript.exe", "cscript.exe",
"curl.exe", "wget.exe", "regsvr32.exe", "rundll32.exe"
)
| where ProcessCommandLine has_any ("http", "ftp", "download", "urlcache", "transfer")
| project TimeGenerated, DeviceName, FileName, ProcessCommandLine, AccountName
| order by TimeGenerated asc
```
**目标:** 在第一个工具失败后,使用了另一种方法。 **Flag:** `Invoke-WebRequest` ``` DeviceEvents | where DeviceName has_any ("as-") | where TimeGenerated between (datetime(2026-01-27) .. datetime(2026-02-28)) | where ActionType == "PowerShellCommand" | project TimeGenerated, DeviceName, AdditionalFields, AccountName | order by TimeGenerated asc ```
***第 10 部分:数据渗出***
**目标:** 工具被用于压缩数据以便渗出。
**Flag:** `st.exe`
```
DeviceProcessEvents
| where DeviceName == "as-srv"
| where TimeGenerated between (datetime(2026-01-27) .. datetime(2026-02-28))
| where AccountName != "system"
| where ProcessCommandLine has_any ("compress", ".zip", ".rar", ".7z", ".tar", "makecab", ".exe")
| project TimeGenerated, DeviceName, FileName, ProcessCommandLine, AccountName
| order by TimeGenerated asc
```
**目标:** 识别中转工具的哈希值。 **Flag:** `512a1f4ed9f512572608c729a2b89f44ea66a40433073aedcd914bd2d33b15` ``` DeviceProcessEvents | where DeviceName == "as-srv" | where TimeGenerated between (datetime(2026-01-27) .. datetime(2026-02-28)) | where AccountName != "system" | where ProcessCommandLine has_any ("compress", ".zip", ".rar", ".7z", ".tar", "makecab", ".exe") | project TimeGenerated, DeviceName, FileName, ProcessCommandLine, SHA256 | order by TimeGenerated asc ```
***第 11 部分:勒索软件部署*** **目标:** 勒索软件伪装成了合法的进程。 **Flag:** `updater.exe` ``` DeviceProcessEvents | where DeviceName == "as-srv" | where TimeGenerated between (datetime(2026-01-27) .. datetime(2026-02-28)) | where FileName endswith ".exe" | where AccountName != "system" | project TimeGenerated, DeviceName, FileName, FolderPath, ProcessCommandLine, AccountName | order by TimeGenerated asc ```
**目标:** 识别勒索软件的哈希值。 **Flag:** `e609d070ee9f76934d73353be4ef7ff34b3ecc3a2d1e5d052140ed4cb9e4752b` ``` DeviceProcessEvents | where DeviceName == "as-srv" | where TimeGenerated between (datetime(2026-01-27) .. datetime(2026-02-28)) | where FileName endswith ".exe" | where AccountName != "system" | project TimeGenerated, DeviceName, FileName, FolderPath, ProcessCommandLine, SHA256 | order by TimeGenerated asc ```
**目标:** 勒索软件在执行前被投递到了 AS-SRV 上。 **Flag:** `powershell.exe` ``` DeviceFileEvents | where DeviceName == "as-srv" | where TimeGenerated between (datetime(2026-01-27) .. datetime(2026-02-28)) | where FileName =~ "updater.exe" | where ActionType == "FileCreated" | project TimeGenerated, DeviceName, FileName, FolderPath, InitiatingProcessFileName, InitiatingProcessCommandLine | order by TimeGenerated asc ```
**目标:** 攻击者删除了备份副本以防止文件恢复。 **Flag:** `vssadmin delete shadows /all /quiet` ``` DeviceProcessEvents | where DeviceName has_any ("as-") | where TimeGenerated between (datetime(2026-01-27) .. datetime(2026-02-28)) | where ProcessCommandLine has_any ( "vssadmin", "wbadmin", "bcdedit", "shadowcopy", "delete shadows", "resize shadowstorage" ) | project TimeGenerated, DeviceName, FileName, ProcessCommandLine, AccountName | order by TimeGenerated asc ```
**目标:** 加密开始后投递了勒索信。 **Flag:** `updater.exe` ``` DeviceFileEvents | where DeviceName == "as-srv" | where TimeGenerated between (datetime(2026-01-27) .. datetime(2026-02-28)) | where FileName has_any ("readme", "ransom", "decrypt", "restore", "how_to", "recovery", "note") | where ActionType == "FileCreated" | project TimeGenerated, DeviceName, FileName, FolderPath, InitiatingProcessFileName, InitiatingProcessCommandLine, InitiatingProcessAccountName | order by TimeGenerated asc ```
**目标:** 确定加密开始的时间。 **Flag:** `22:18:33` ``` DeviceFileEvents | where DeviceName == "as-srv" | where TimeGenerated between (datetime(2026-01-27) .. datetime(2026-02-28)) | where FileName has_any ("readme", "ransom", "decrypt", "restore", "how_to", "recovery", "note") | where ActionType == "FileCreated" | project TimeGenerated, DeviceName, FileName, FolderPath, InitiatingProcessFileName, InitiatingProcessCommandLine, InitiatingProcessAccountName | order by TimeGenerated asc ```
***第 12 部分:反取证与范围***
**目标:** 勒索软件二进制文件在执行后被删除。
**Flag:** `clean.bat`
```
DeviceFileEvents
| where DeviceName == "as-srv"
| where TimeGenerated between (datetime(2026-01-27) .. datetime(2026-02-28))
| where FileName =~ "updater.exe"
| where ActionType == "FileDeleted"
| project TimeGenerated, DeviceName, FileName, FolderPath, InitiatingProcessCommandLine, InitiatingProcessAccountName
| order by TimeGenerated asc
```
**目标:** 确定入侵的范围。 **Flag:** `as-srv, as-pc2` ``` DeviceFileEvents | where DeviceName has_any ("as-") | where TimeGenerated between (datetime(2026-01-27) .. datetime(2026-02-28)) | where InitiatingProcessFileName =~ "updater.exe" | where ActionType == "FileCreated" | summarize by TimeGenerated, DeviceName ```
## 2. 调查摘要 — Ashford Sterling Recruitment
一名勒索软件附属成员通过重新激活先前入侵期间预植入的访问权限,使用被入侵的用户账户 (david.mitchell) 和植入的 AnyDesk 远程访问工具重新进入了 Ashford Sterling 环境。攻击者通过修改注册表禁用了 Windows Defender,通过访问 LSASS 窃取凭证,并使用在此过程中获取的管理员凭证向 AS-SRV 进行横向移动。在部署 Akira 勒索软件二进制文件(伪装成合法的更新程序进程)之前,敏感公司数据已被压缩并渗出;该文件是通过 PowerShell 部署的。为了消除恢复选项,卷影副本已被删除;加密于 22:18:33 在 AS-SRV 和 AS-PC2 上开始。攻击者在加密后对环境进行了自清理,并通过 TOR 托管的 Akira 谈判门户发出了 £65,000 的勒索赎金要求。
## 3. 攻击叙述
**阶段 1 — 通过预植入访问重新进入**
威胁行为者不需要重新入侵该环境。在 ***The Broker*** 入侵期间植入的 **AnyDesk.exe** 驻留在 AS-PC2 上的 `C:\Users\Public\` 中,这对于远程访问工具而言是一个异常且可疑的路径。被入侵的账户 **david.mitchell** 提供了初始据点,且连接源自攻击者的外部 IP `88.97.164.155`。
预先植入的 C2 信标 (`wsync.exe`) 最初被重新激活,但未能保持稳定的通信。攻击者迅速向 `C:\ProgramData\` 部署了替换信标,并通过 `cdn.cloud-endpoint.net` 重新建立了可靠的 C2 连接,该域名解析为 `104.21.30.237` 和 `172.67.174.46`。AnyDesk 流量通过 `relay-0b975d23.net.anydesk.com` 进行中继。
**阶段 2 — 防御规避**
在进行任何重大活动之前,攻击者首先使环境的防御失效。在 **21:03:42**,Windows 注册表被修改 —— 设置了 `DisableAntiSpyware` 以禁用 Windows Defender。名为 **kill.bat** 的批处理脚本被执行,以终止其他安全进程和控制。在防御工具被瘫痪后,攻击者在操作的其余阶段获得了畅通无阻的路径。
**阶段 3 — 凭证窃取**
攻击者通过 `tasklist | findstr lsass` 枚举正在运行的进程以定位 LSASS 进程,随后访问命名管道 `\Device\NamedPipe\lsass` 以执行凭证窃取。在此处窃取的凭证 —— 很可能是 **as.srv.administrator** 账户 —— 促成了随后向 AS-SRV 的横向移动。
**阶段 4 — 侦察与横向移动**
便携式网络扫描器 **scan.exe** 从 `C:/Users/david.mitchell/Downloads/` 被执行,并使用了 `/portable` 和 `/lng en_us` 标志。攻击者将目标对准了主机 `10.1.0.183` 和 `10.1.0.154`,枚举了可用的网络共享。攻击者使用 **as.srv.administrator** 账户成功访问了 AS-SRV,将其足迹扩展到了服务器。
**阶段 5 — 工具预置与 Payload 下载**
在 AS-SRV 可访问后,攻击者开始为最后阶段预置工具。最初尝试使用 **bitsadmin.exe**(一个 living-off-the-land 二进制文件)下载 Payload 时遇到了问题。攻击者转向使用 **Invoke-WebRequest** (PowerShell) 作为备选方案,成功从 `sync.cloud-endpoint.net` 拉取了工具。
**阶段 6 — 数据渗出**
在加密之前,攻击者使用 **st.exe** 将目标数据压缩到一个名为 **exfil_data.zip** 的归档文件中。此归档文件被向外渗出,为威胁行为者实施双重勒索模式提供了所需的筹码。据称被渗出的数据包括财务记录、员工 PII、客户数据库、合同、内部通信以及专有商业数据。
**阶段 7 — 勒索软件部署与执行**
Akira 勒索软件二进制文件伪装成了 **updater.exe**,并通过 powershell.exe 投递到了 AS-SRV 上。在触发加密之前,攻击者通过以下命令删除了所有卷影副本:
`vssadmin delete shadows /all /quiet`
该命令清除了主要的本机恢复机制。加密于 22:18:33 开始。勒索信由 updater.exe 写入磁盘。执行完毕后,勒索软件二进制文件被使用 clean.bat 删除,清除了磁盘上主要的 Payload 证据。
**阶段 8 — 谈判**
联系是通过 Akira TOR 门户进行的。对于最初 £65,000 的要求,Ashford Sterling 以自己是一家小型招聘公司为由,还价 £11,000。Akira 拒绝了该提议,并下达了 48 小时的最后通牒。
## 4. MITRE ATT&CK 映射
| 战术 | 技术 | 证据 |
| ------------------------- | --------------------------------------------------- | ----------------------------------------------------- |
| 初始访问 | T1078 — 有效账户 | david.mitchell 账户被入侵 |
| 持久化 | T1547 — 预植入访问 | 位于 C:\Users\Public\ 的 AnyDesk.exe |
| 命令与控制 (C2) | T1219 — 远程访问软件 | AnyDesk 通过 relay-0b975d23.net.anydesk.com |
| 命令与控制 (C2) | T1071 — 应用层协议 | 通过 cdn.cloud-endpoint.net 的 C2 信标 |
| 防御规避 | T1562.001 — 削弱防御:禁用或修改工具 | kill.bat;DisableAntiSpyware 注册表键 |
| 防御规避 | T1070 — 指标移除 | clean.bat 在执行后删除勒索软件二进制文件 |
| 凭证访问 | T1003.001 — 操作系统凭证转储:LSASS 内存 | LSASS 命名管道访问 |
| 发现 | T1057 — 进程发现 | tasklist | findstr lsass |
| 发现 | T1135 — 网络共享发现 | scan.exe 目标为 10.1.0.183, 10.1.0.154 |
| 横向移动 | T1078 — 有效账户 | as.srv.administrator 用于访问 AS-SRV |
| 资源开发 | T1608 — 阶段能力 | 从 sync.cloud-endpoint.net 预置的工具 |
| 命令与控制 (C2) | T1197 — BITS Jobs (失败) | 尝试了 bitsadmin.exe |
| 执行 | T1059.001 — PowerShell | Invoke-WebRequest;通过 powershell.exe 投递 Payload |
| 收集 / 渗出 | T1560 — 压缩收集数据 | st.exe 创建 exfil_data.zip |
| 影响 | T1490 — 抑制系统恢复 | vssadmin delete shadows /all /quiet |
| 影响 | T1486 — 数据加密以造成影响 | Akira 勒索软件;.akira 扩展名 |
| 渗出 | T1567 — 通过 Web 服务渗出 | 加密前数据被渗出 |
## 5. 建议
### 立即执行的措施
- 如果尚未执行,请将 AS-SRV 和 AS-PC2 与网络隔离。
- 重置 david.mitchell、as.srv.administrator 以及所有域管理员账户的凭证。
- 在边界防火墙和 DNS 层阻止所有 IOC 域名和 IP。
- 在执行任何修复活动之前,保留所有可用的取证工件。
### 短期修复
- 使用干净的、已验证的镜像重建 AS-SRV 和 AS-PC2 —— 不要信任原位恢复。
- 审查所有用户账户,查找是否存在被入侵或权限提升的迹象。
- 审查整个环境中的 AnyDesk 及任何其他远程访问工具;移除任何未经明确授权的工具。
- 审查所有端点上的 C:\Users\Public\ 和 C:\ProgramData\,查找是否存在可疑的可执行文件。
- 在所有主机上重新启用并验证 Windows Defender;验证注册表的完整性。
- 恢复卷影副本服务并验证备份的完整性。
### 长期强化
- 强制执行应用程序允许列表,以防止执行未签名或可疑的二进制文件。
- 实施特权访问工作站 (PAW) 和分层管理模型,以防止在工作站和服务器之间重用凭证。
- 部署 SIEM,针对 LSASS 访问、卷影副本删除以及对 Defender 键的注册表修改设置警报。
- 在所有远程访问路径(包括任何遗留的远程管理工具)上强制执行 MFA。
- 对初始 The Broker 事件进行全面审查,以识别并关闭此处记录之外的所有残留持久化机制。
- 鉴于已确认员工 PII 和客户数据被渗出,请寻求法律顾问并考虑向 ICO 履行通报义务。
**报告状态:** 已完成
**下次审查:** 2026年3月21日
**分发对象:** Cyber Range
**目标:** 通过勒索信识别勒索软件组织。 **Flag:** `Akira` **目标:** 勒索信提供了联系方式。 **Flag:** `akiral2iz6a7qgd3ayp3l6yub7xx2uep76idk3u2kollpj5z3z636bad.onion` **目标:** 每个受害者都会收到用于谈判的唯一标识符。 **Flag:** `813R-QWJM-XKIJ` **目标:** 每个受害者都会收到用于谈判的唯一标识符。 **Flag:** `.akira` ***第 2 部分:基础设施*** **目标:** 每个受害者都会收到用于谈判的唯一标识符。 **Flag:** `sync.cloud-endpoint.net` ``` DeviceNetworkEvents | where DeviceName has_any ("as-") | where TimeGenerated between (datetime(2026-01-27) .. datetime(2026-02-28)) | where ActionType == "ConnectionSuccess" | where RemoteUrl != "" | project TimeGenerated, DeviceName, InitiatingProcessFileName, InitiatingProcessCommandLine, RemoteUrl, RemoteIP, RemotePort | order by TimeGenerated asc ```
**目标:** Payload 建立了出站连接。 **Flag:** `cdn.cloud-endpoint.net` ``` DeviceNetworkEvents | where DeviceName == ("as-srv") | where TimeGenerated between (datetime(2026-01-27) .. datetime(2026-02-28)) | where ActionType == "ConnectionSuccess" | where RemoteIPType == "Public" | where RemoteUrl != "" | project TimeGenerated, DeviceName, InitiatingProcessFileName, InitiatingProcessCommandLine, RemoteUrl, RemoteIP, RemotePort | order by TimeGenerated asc ```
**目标:** C2 基础设施解析为多个 IP。 **Flag:** `104.21.30.237, 172.67.174.46` ``` DeviceNetworkEvents | where DeviceName =="as-srv" | where TimeGenerated between (datetime(2026-01-27) .. datetime(2026-02-28)) | where RemoteUrl has_any ("sync.cloud-endpoint.net", "cdn.cloud-endpoint.net") | distinct DeviceName, RemoteIP ```
**目标:** 远程工具通过中继服务器进行路由。 **Flag:** `relay-0b975d23.net.anydesk.com` ``` DeviceNetworkEvents | where DeviceName == "as-srv" | where TimeGenerated between (datetime(2026-01-27) .. datetime(2026-02-28)) | where RemoteUrl has_any ("relay", "tunnel", "proxy", "gateway", "remote", "connect", "access") | project TimeGenerated, DeviceName, InitiatingProcessFileName, RemoteUrl, RemoteIP, RemotePort | sort by TimeGenerated desc ```
***第 3 部分:防御规避***
**目标:** 脚本被用于禁用安全控制。
**Flag:** `kill.bat`
```
DeviceFileEvents
| where DeviceName has_any ("as-")
| where TimeGenerated between (datetime(2026-01-27) .. datetime(2026-02-28))
| where FileName has_any (".ps1", ".bat", ".cmd")
| where FileName !startswith "__PSScriptPolicyTest_"
| project TimeGenerated, DeviceName, InitiatingProcessAccountName, FileName, FolderPath, InitiatingProcessCommandLine
| order by TimeGenerated desc
```
**目标:** 识别规避脚本的哈希值。 **Flag:** `0e7da57d92eaa6bda9d0bbc24b5f0827250aa42f295fd056ded50c6e3c3fb96c` ``` DeviceFileEvents | where DeviceName == "as-pc2" | where TimeGenerated between (datetime(2026-01-27) .. datetime(2026-02-28)) | where FileName has_any (".ps1", ".bat", ".cmd") | where FileName !startswith "__PSScriptPolicyTest_" | project TimeGenerated, DeviceName, InitiatingProcessAccountName, FileName, InitiatingProcessCommandLine, SHA256 | order by TimeGenerated desc ```
**目标:** 通过修改注册表禁用了 Windows Defender。 **Flag:** `DisableAntiSpyware` ``` DeviceRegistryEvents | where DeviceName == "as-pc2" | where TimeGenerated between (datetime(2026-01-27) .. datetime(2026-02-28)) | where RegistryKey has "Windows Defender" | project TimeGenerated, DeviceName, InitiatingProcessFileName, RegistryKey, RegistryValueName, RegistryValueData | sort by TimeGenerated desc ```
**目标:** 确定注册表被修改的时间。 **Flag:** `21:03:42` ``` DeviceRegistryEvents | where DeviceName == "as-pc2" | where TimeGenerated between (datetime(2026-01-27) .. datetime(2026-02-28)) | where RegistryKey has "Windows Defender" | project TimeGenerated, DeviceName, InitiatingProcessFileName, RegistryKey, RegistryValueName, RegistryValueData | sort by TimeGenerated desc ```
***第 4 部分:凭证访问***
**目标:** 攻击者枚举了正在运行的进程,以定位凭证窃取的目标。
**Flag:** `tasklist | findstr lsass`
```
DeviceProcessEvents
| where DeviceName == "as-pc2"
| where TimeGenerated between (datetime(2026-01-27) .. datetime(2026-02-28))
| where ProcessCommandLine has_any ("tasklist","Get-Process","wmic process","ps")
| project TimeGenerated, DeviceName, AccountName, FileName, ProcessCommandLine
| order by TimeGenerated asc
```
**目标:** 在凭证窃取活动期间访问了一个命名管道。 **Flag:** `\Device\NamedPipe\lsass` ``` DeviceEvents | where DeviceName == "as-pc2" | where TimeGenerated between (datetime(2026-01-27) .. datetime(2026-02-28)) | where ActionType == "NamedPipeEvent" | extend PipeName = tostring(parse_json(AdditionalFields).PipeName) | project TimeGenerated, DeviceName, InitiatingProcessFileName, PipeName | sort by TimeGenerated asc ```
***第 5 部分:初始访问*** **目标:** 先前攻击中预先植入的远程访问工具。 **Flag:** `Anydesk.exe` ``` DeviceProcessEvents | where DeviceName == "as-pc1" | where TimeGenerated between (datetime(2026-01-27) .. datetime(2026-02-28)) | where FileName has_any ("anydesk.exe", "teamviewer.exe", "ngrok.exe", "cloudflared.exe", "rutserv.exe", "radmin.exe") | project TimeGenerated, DeviceName, FileName, ProcessCommandLine, FolderPath | sort by TimeGenerated asc ```
**目标:** 远程访问工具在 AS-PC2 上的异常位置运行。 **Flag:** `C:\Users\Public\` ``` DeviceProcessEvents | where DeviceName == "as-pc2" | where TimeGenerated between (datetime(2026-01-27) .. datetime(2026-02-28)) | where FileName has_any ("anydesk.exe", "teamviewer.exe", "ngrok.exe", "cloudflared.exe", "rutserv.exe", "radmin.exe") | project TimeGenerated, DeviceName, FileName, ProcessCommandLine, FolderPath | sort by TimeGenerated asc ```
**目标:** 识别攻击者的外部 IP 地址。 **Flag:** `88.97.164.155` ``` DeviceNetworkEvents | where DeviceName == "as-pc2" | where TimeGenerated between (datetime(2026-01-27) .. datetime(2026-02-28)) | where RemoteIPType == "Public" | where InitiatingProcessCommandLine has_any ("Anydesk") | project TimeGenerated, DeviceName, InitiatingProcessCommandLine, RemoteIP, RemotePort | sort by TimeGenerated asc ```
**目标:** 识别被入侵的用户账户。 **Flag:** `david.mitchell` ``` DeviceNetworkEvents | where DeviceName == "as-pc2" | where TimeGenerated between (datetime(2026-01-27) .. datetime(2026-02-28)) | where RemoteIPType == "Public" | where InitiatingProcessCommandLine has_any ("Anydesk") | where RemotePort == 7070 | project TimeGenerated, DeviceName, InitiatingProcessAccountName, InitiatingProcessCommandLine, RemoteIP, RemotePort | sort by TimeGenerated asc ```
***第 6 部分:命令与控制 (C2)***
**目标:** 来自 The Broker 的预植入信标未能维持稳定的通信。部署了一个新的信标。
**Flag:** `wsync.exe`
```
DeviceProcessEvents
| where DeviceName has_any ("as-")
| where TimeGenerated between (datetime(2026-01-27) .. datetime(2026-02-28))
| where InitiatingProcessFileName has_any ("wsync.exe", "powershell.exe", "cmd.exe")
| project TimeGenerated, DeviceName, FileName, ProcessCommandLine, FolderPath
| sort by TimeGenerated asc
```
**目标:** 识别信标部署的位置。 **Flag:** `c:\programdata\` ``` DeviceProcessEvents | where DeviceName == "as-pc2" | where TimeGenerated between (datetime(2026-01-27) .. datetime(2026-02-28)) | where FileName == "wsync.exe" | project TimeGenerated, DeviceName, FileName, ProcessCommandLine, FolderPath | sort by TimeGenerated asc ```
**目标:** 识别 C2 信标的哈希值。 **Flag:** `66b876c52946f4aed47dd696d790972ff265b6f4451dab54245bc4ef1206d90b` ``` DeviceProcessEvents | where DeviceName == "as-pc2" | where TimeGenerated between (datetime(2026-01-27) .. datetime(2026-02-28)) | where FileName == "wsync.exe" | project TimeGenerated, DeviceName, FileName, FolderPath, SHA256, ProcessCommandLine | order by TimeGenerated asc ```
**目标:** 部署了新的信标以替换失败的信标。 **Flag:** `0072ca0d0adc9a1b2e1625db4409f57fc32b5a09c414786bf08c4d8e6a073654` ``` DeviceProcessEvents | where DeviceName == "as-pc2" | where TimeGenerated between (datetime(2026-01-27) .. datetime(2026-02-28)) | where FileName == "wsync.exe" | project TimeGenerated, DeviceName, FileName, ProcessCommandLine, SHA256 | order by TimeGenerated asc ```
***第 7 部分:侦察***
**目标:** 部署了网络扫描器。
**Flag:** `"scan.exe"`
```
DeviceProcessEvents
| where DeviceName == "as-pc2"
| where TimeGenerated between (datetime(2026-01-27) .. datetime(2026-02-28))
| where FileName has_any ("scan")
| project TimeGenerated, DeviceName, FileName, FolderPath, ProcessCommandLine
| order by TimeGenerated asc
```
**目标:** 识别扫描器的哈希值。 **Flag:** `26d5748ffe6bd95e3fee6ce184d388a1a681006dc23a0f08d53c083c593c193b` ``` DeviceProcessEvents | where DeviceName == "as-pc2" | where TimeGenerated between (datetime(2026-01-27) .. datetime(2026-02-28)) | where FileName has_any ("scan") | project TimeGenerated, DeviceName, FileName, FolderPath, ProcessCommandLine, SHA256 | order by TimeGenerated asc ```
**目标:** 网络扫描器在执行时使用了特定参数,暴露了攻击者的意图。 **Flag:** `/portable "C:/Users/david.mitchell/Downloads/" /lng en_us` ``` DeviceProcessEvents | where DeviceName has_any ("as-") | where TimeGenerated between (datetime(2026-01-27) .. datetime(2026-02-28)) | where AccountName == "david.mitchell" | project TimeGenerated, DeviceName, FileName, ProcessCommandLine, AccountName, InitiatingProcessFileName | order by TimeGenerated desc ```
**目标:** 攻击者枚举了特定主机上的网络共享。 **Flag:** `10.1.0.183, 10.1.0.154` ``` DeviceProcessEvents | where DeviceName has_any ("as-") | where TimeGenerated between (datetime(2026-01-27) .. datetime(2026-02-28)) | where FileName in~ ("net.exe", "net1.exe") | where ProcessCommandLine has_any ("view") | project TimeGenerated, DeviceName, AccountName, ProcessCommandLine | order by TimeGenerated desc ```
***第 8 部分:横向移动***
**目标:** 一个账户被用于访问 AS-SRV。
**Flag:** `as.srv.administrator`
```
DeviceLogonEvents
| where DeviceName == "as-srv"
| where TimeGenerated between (datetime(2026-01-27) .. datetime(2026-02-28))
| project TimeGenerated, DeviceName, AccountName, AccountDomain, LogonType
| order by TimeGenerated asc
```
***第 9 部分:工具传输***
**目标:** 首先使用了一个 living-off-the-land 二进制文件,但遇到了问题。
**Flag:** `bitsadmin.exe`
```
DeviceProcessEvents
| where DeviceName has_any ("as-")
| where TimeGenerated between (datetime(2026-01-27) .. datetime(2026-02-28))
| where FileName in~ (
"certutil.exe", "bitsadmin.exe", "powershell.exe",
"mshta.exe", "wscript.exe", "cscript.exe",
"curl.exe", "wget.exe", "regsvr32.exe", "rundll32.exe"
)
| where ProcessCommandLine has_any ("http", "ftp", "download", "urlcache", "transfer")
| project TimeGenerated, DeviceName, FileName, ProcessCommandLine, AccountName
| order by TimeGenerated asc
```
**目标:** 在第一个工具失败后,使用了另一种方法。 **Flag:** `Invoke-WebRequest` ``` DeviceEvents | where DeviceName has_any ("as-") | where TimeGenerated between (datetime(2026-01-27) .. datetime(2026-02-28)) | where ActionType == "PowerShellCommand" | project TimeGenerated, DeviceName, AdditionalFields, AccountName | order by TimeGenerated asc ```
***第 10 部分:数据渗出***
**目标:** 工具被用于压缩数据以便渗出。
**Flag:** `st.exe`
```
DeviceProcessEvents
| where DeviceName == "as-srv"
| where TimeGenerated between (datetime(2026-01-27) .. datetime(2026-02-28))
| where AccountName != "system"
| where ProcessCommandLine has_any ("compress", ".zip", ".rar", ".7z", ".tar", "makecab", ".exe")
| project TimeGenerated, DeviceName, FileName, ProcessCommandLine, AccountName
| order by TimeGenerated asc
```
**目标:** 识别中转工具的哈希值。 **Flag:** `512a1f4ed9f512572608c729a2b89f44ea66a40433073aedcd914bd2d33b15` ``` DeviceProcessEvents | where DeviceName == "as-srv" | where TimeGenerated between (datetime(2026-01-27) .. datetime(2026-02-28)) | where AccountName != "system" | where ProcessCommandLine has_any ("compress", ".zip", ".rar", ".7z", ".tar", "makecab", ".exe") | project TimeGenerated, DeviceName, FileName, ProcessCommandLine, SHA256 | order by TimeGenerated asc ```
***第 11 部分:勒索软件部署*** **目标:** 勒索软件伪装成了合法的进程。 **Flag:** `updater.exe` ``` DeviceProcessEvents | where DeviceName == "as-srv" | where TimeGenerated between (datetime(2026-01-27) .. datetime(2026-02-28)) | where FileName endswith ".exe" | where AccountName != "system" | project TimeGenerated, DeviceName, FileName, FolderPath, ProcessCommandLine, AccountName | order by TimeGenerated asc ```
**目标:** 识别勒索软件的哈希值。 **Flag:** `e609d070ee9f76934d73353be4ef7ff34b3ecc3a2d1e5d052140ed4cb9e4752b` ``` DeviceProcessEvents | where DeviceName == "as-srv" | where TimeGenerated between (datetime(2026-01-27) .. datetime(2026-02-28)) | where FileName endswith ".exe" | where AccountName != "system" | project TimeGenerated, DeviceName, FileName, FolderPath, ProcessCommandLine, SHA256 | order by TimeGenerated asc ```
**目标:** 勒索软件在执行前被投递到了 AS-SRV 上。 **Flag:** `powershell.exe` ``` DeviceFileEvents | where DeviceName == "as-srv" | where TimeGenerated between (datetime(2026-01-27) .. datetime(2026-02-28)) | where FileName =~ "updater.exe" | where ActionType == "FileCreated" | project TimeGenerated, DeviceName, FileName, FolderPath, InitiatingProcessFileName, InitiatingProcessCommandLine | order by TimeGenerated asc ```
**目标:** 攻击者删除了备份副本以防止文件恢复。 **Flag:** `vssadmin delete shadows /all /quiet` ``` DeviceProcessEvents | where DeviceName has_any ("as-") | where TimeGenerated between (datetime(2026-01-27) .. datetime(2026-02-28)) | where ProcessCommandLine has_any ( "vssadmin", "wbadmin", "bcdedit", "shadowcopy", "delete shadows", "resize shadowstorage" ) | project TimeGenerated, DeviceName, FileName, ProcessCommandLine, AccountName | order by TimeGenerated asc ```
**目标:** 加密开始后投递了勒索信。 **Flag:** `updater.exe` ``` DeviceFileEvents | where DeviceName == "as-srv" | where TimeGenerated between (datetime(2026-01-27) .. datetime(2026-02-28)) | where FileName has_any ("readme", "ransom", "decrypt", "restore", "how_to", "recovery", "note") | where ActionType == "FileCreated" | project TimeGenerated, DeviceName, FileName, FolderPath, InitiatingProcessFileName, InitiatingProcessCommandLine, InitiatingProcessAccountName | order by TimeGenerated asc ```
**目标:** 确定加密开始的时间。 **Flag:** `22:18:33` ``` DeviceFileEvents | where DeviceName == "as-srv" | where TimeGenerated between (datetime(2026-01-27) .. datetime(2026-02-28)) | where FileName has_any ("readme", "ransom", "decrypt", "restore", "how_to", "recovery", "note") | where ActionType == "FileCreated" | project TimeGenerated, DeviceName, FileName, FolderPath, InitiatingProcessFileName, InitiatingProcessCommandLine, InitiatingProcessAccountName | order by TimeGenerated asc ```
***第 12 部分:反取证与范围***
**目标:** 勒索软件二进制文件在执行后被删除。
**Flag:** `clean.bat`
```
DeviceFileEvents
| where DeviceName == "as-srv"
| where TimeGenerated between (datetime(2026-01-27) .. datetime(2026-02-28))
| where FileName =~ "updater.exe"
| where ActionType == "FileDeleted"
| project TimeGenerated, DeviceName, FileName, FolderPath, InitiatingProcessCommandLine, InitiatingProcessAccountName
| order by TimeGenerated asc
```
**目标:** 确定入侵的范围。 **Flag:** `as-srv, as-pc2` ``` DeviceFileEvents | where DeviceName has_any ("as-") | where TimeGenerated between (datetime(2026-01-27) .. datetime(2026-02-28)) | where InitiatingProcessFileName =~ "updater.exe" | where ActionType == "FileCreated" | summarize by TimeGenerated, DeviceName ```
## 2. 调查摘要 — Ashford Sterling Recruitment
一名勒索软件附属成员通过重新激活先前入侵期间预植入的访问权限,使用被入侵的用户账户 (david.mitchell) 和植入的 AnyDesk 远程访问工具重新进入了 Ashford Sterling 环境。攻击者通过修改注册表禁用了 Windows Defender,通过访问 LSASS 窃取凭证,并使用在此过程中获取的管理员凭证向 AS-SRV 进行横向移动。在部署 Akira 勒索软件二进制文件(伪装成合法的更新程序进程)之前,敏感公司数据已被压缩并渗出;该文件是通过 PowerShell 部署的。为了消除恢复选项,卷影副本已被删除;加密于 22:18:33 在 AS-SRV 和 AS-PC2 上开始。攻击者在加密后对环境进行了自清理,并通过 TOR 托管的 Akira 谈判门户发出了 £65,000 的勒索赎金要求。
## 3. 攻击叙述
**阶段 1 — 通过预植入访问重新进入**
威胁行为者不需要重新入侵该环境。在 ***The Broker*** 入侵期间植入的 **AnyDesk.exe** 驻留在 AS-PC2 上的 `C:\Users\Public\` 中,这对于远程访问工具而言是一个异常且可疑的路径。被入侵的账户 **david.mitchell** 提供了初始据点,且连接源自攻击者的外部 IP `88.97.164.155`。
预先植入的 C2 信标 (`wsync.exe`) 最初被重新激活,但未能保持稳定的通信。攻击者迅速向 `C:\ProgramData\` 部署了替换信标,并通过 `cdn.cloud-endpoint.net` 重新建立了可靠的 C2 连接,该域名解析为 `104.21.30.237` 和 `172.67.174.46`。AnyDesk 流量通过 `relay-0b975d23.net.anydesk.com` 进行中继。
**阶段 2 — 防御规避**
在进行任何重大活动之前,攻击者首先使环境的防御失效。在 **21:03:42**,Windows 注册表被修改 —— 设置了 `DisableAntiSpyware` 以禁用 Windows Defender。名为 **kill.bat** 的批处理脚本被执行,以终止其他安全进程和控制。在防御工具被瘫痪后,攻击者在操作的其余阶段获得了畅通无阻的路径。
**阶段 3 — 凭证窃取**
攻击者通过 `tasklist | findstr lsass` 枚举正在运行的进程以定位 LSASS 进程,随后访问命名管道 `\Device\NamedPipe\lsass` 以执行凭证窃取。在此处窃取的凭证 —— 很可能是 **as.srv.administrator** 账户 —— 促成了随后向 AS-SRV 的横向移动。
**阶段 4 — 侦察与横向移动**
便携式网络扫描器 **scan.exe** 从 `C:/Users/david.mitchell/Downloads/` 被执行,并使用了 `/portable` 和 `/lng en_us` 标志。攻击者将目标对准了主机 `10.1.0.183` 和 `10.1.0.154`,枚举了可用的网络共享。攻击者使用 **as.srv.administrator** 账户成功访问了 AS-SRV,将其足迹扩展到了服务器。
**阶段 5 — 工具预置与 Payload 下载**
在 AS-SRV 可访问后,攻击者开始为最后阶段预置工具。最初尝试使用 **bitsadmin.exe**(一个 living-off-the-land 二进制文件)下载 Payload 时遇到了问题。攻击者转向使用 **Invoke-WebRequest** (PowerShell) 作为备选方案,成功从 `sync.cloud-endpoint.net` 拉取了工具。
**阶段 6 — 数据渗出**
在加密之前,攻击者使用 **st.exe** 将目标数据压缩到一个名为 **exfil_data.zip** 的归档文件中。此归档文件被向外渗出,为威胁行为者实施双重勒索模式提供了所需的筹码。据称被渗出的数据包括财务记录、员工 PII、客户数据库、合同、内部通信以及专有商业数据。
**阶段 7 — 勒索软件部署与执行**
Akira 勒索软件二进制文件伪装成了 **updater.exe**,并通过 powershell.exe 投递到了 AS-SRV 上。在触发加密之前,攻击者通过以下命令删除了所有卷影副本:
`vssadmin delete shadows /all /quiet`
该命令清除了主要的本机恢复机制。加密于 22:18:33 开始。勒索信由 updater.exe 写入磁盘。执行完毕后,勒索软件二进制文件被使用 clean.bat 删除,清除了磁盘上主要的 Payload 证据。
**阶段 8 — 谈判**
联系是通过 Akira TOR 门户进行的。对于最初 £65,000 的要求,Ashford Sterling 以自己是一家小型招聘公司为由,还价 £11,000。Akira 拒绝了该提议,并下达了 48 小时的最后通牒。
## 4. MITRE ATT&CK 映射
| 战术 | 技术 | 证据 |
| ------------------------- | --------------------------------------------------- | ----------------------------------------------------- |
| 初始访问 | T1078 — 有效账户 | david.mitchell 账户被入侵 |
| 持久化 | T1547 — 预植入访问 | 位于 C:\Users\Public\ 的 AnyDesk.exe |
| 命令与控制 (C2) | T1219 — 远程访问软件 | AnyDesk 通过 relay-0b975d23.net.anydesk.com |
| 命令与控制 (C2) | T1071 — 应用层协议 | 通过 cdn.cloud-endpoint.net 的 C2 信标 |
| 防御规避 | T1562.001 — 削弱防御:禁用或修改工具 | kill.bat;DisableAntiSpyware 注册表键 |
| 防御规避 | T1070 — 指标移除 | clean.bat 在执行后删除勒索软件二进制文件 |
| 凭证访问 | T1003.001 — 操作系统凭证转储:LSASS 内存 | LSASS 命名管道访问 |
| 发现 | T1057 — 进程发现 | tasklist | findstr lsass |
| 发现 | T1135 — 网络共享发现 | scan.exe 目标为 10.1.0.183, 10.1.0.154 |
| 横向移动 | T1078 — 有效账户 | as.srv.administrator 用于访问 AS-SRV |
| 资源开发 | T1608 — 阶段能力 | 从 sync.cloud-endpoint.net 预置的工具 |
| 命令与控制 (C2) | T1197 — BITS Jobs (失败) | 尝试了 bitsadmin.exe |
| 执行 | T1059.001 — PowerShell | Invoke-WebRequest;通过 powershell.exe 投递 Payload |
| 收集 / 渗出 | T1560 — 压缩收集数据 | st.exe 创建 exfil_data.zip |
| 影响 | T1490 — 抑制系统恢复 | vssadmin delete shadows /all /quiet |
| 影响 | T1486 — 数据加密以造成影响 | Akira 勒索软件;.akira 扩展名 |
| 渗出 | T1567 — 通过 Web 服务渗出 | 加密前数据被渗出 |
## 5. 建议
### 立即执行的措施
- 如果尚未执行,请将 AS-SRV 和 AS-PC2 与网络隔离。
- 重置 david.mitchell、as.srv.administrator 以及所有域管理员账户的凭证。
- 在边界防火墙和 DNS 层阻止所有 IOC 域名和 IP。
- 在执行任何修复活动之前,保留所有可用的取证工件。
### 短期修复
- 使用干净的、已验证的镜像重建 AS-SRV 和 AS-PC2 —— 不要信任原位恢复。
- 审查所有用户账户,查找是否存在被入侵或权限提升的迹象。
- 审查整个环境中的 AnyDesk 及任何其他远程访问工具;移除任何未经明确授权的工具。
- 审查所有端点上的 C:\Users\Public\ 和 C:\ProgramData\,查找是否存在可疑的可执行文件。
- 在所有主机上重新启用并验证 Windows Defender;验证注册表的完整性。
- 恢复卷影副本服务并验证备份的完整性。
### 长期强化
- 强制执行应用程序允许列表,以防止执行未签名或可疑的二进制文件。
- 实施特权访问工作站 (PAW) 和分层管理模型,以防止在工作站和服务器之间重用凭证。
- 部署 SIEM,针对 LSASS 访问、卷影副本删除以及对 Defender 键的注册表修改设置警报。
- 在所有远程访问路径(包括任何遗留的远程管理工具)上强制执行 MFA。
- 对初始 The Broker 事件进行全面审查,以识别并关闭此处记录之外的所有残留持久化机制。
- 鉴于已确认员工 PII 和客户数据被渗出,请寻求法律顾问并考虑向 ICO 履行通报义务。
**报告状态:** 已完成
**下次审查:** 2026年3月21日
**分发对象:** Cyber Range标签:入侵分析, 勒索软件, 安全事件响应, 攻防复盘报告, 知识库安全