LemonSec/HEDF
GitHub: LemonSec/HEDF
用于测试企业EDR/SIEM对WSL命令执行和虚拟机载荷隐藏两大检测盲点可见性的PowerShell安全评估框架。
Stars: 0 | Forks: 0
# WSL 与 Hypervisor 层规避检测框架
测试您的 EDR/SIEM 对现代企业环境中两个最大检测盲点的可见性:**Windows Subsystem for Linux** 命令执行和**基于虚拟机的载荷隐藏**。
## 盲点
EDR 代理会对 Windows 进程、文件系统调用和注册表活动进行检测。有两种环境允许攻击者在该可见性范围之外完全操作:
**WSL2** 作为轻量级 Hyper-V 虚拟机运行,拥有自己的 Linux 内核。在 WSL 内部执行的命令几乎不产生 Windows 遥测数据 —— 您的 EDR 通常只能看到 `wsl.exe` 启动,除此之外一无所知。SpecterOps 演示了信标对象文件可以进入任何 WSL2 发行版,运行任意命令并读取文件,且不触发警报。现实世界中的 WSL 恶意软件(Black Lotus Labs,2021-2025)在 VirusTotal 上的检测率接近于零,因为大多数 AV 引擎不扫描 ELF 二进制文件。
**基于 VM 的规避**(T1564.006)在端点上部署完整的虚拟机并在其中运行载荷。Ragnar Locker 在 2020 年率先使用此技术,通过部署带有 Windows XP 客户机的 VirtualBox,将主机驱动器挂载为共享文件夹,并从没有 EDR 代理的 VM 内部对其进行加密。Maze、Conti 和 Akira 随后效仿。CronTrap 活动(2024)使用了 QEMU,而 MirrorFace(2025)则滥用了 Windows Sandbox `.wsb` 文件。
## 测试内容
| 层级 | 测试项 | 检测来源 |
|---|---|---|
| **姿态** | WSL 安装、发行版、版本、Hyper-V、VirtualBox、VMware、QEMU、Sysmon、EDR、沙箱 | 预防性控制 |
| **WSL 执行** | 命令执行、网络侦察、跨边界文件访问/写入、bash -c 模式、来自 WSL 的 Python | Sysmon 事件 1、EDR 进程遥测 |
| **WSL 网络** | 源自 WSL 客户机内部的 DNS 查询和 HTTP 请求 | NDR、代理、防火墙 |
| **VM 痕迹** | VBoxDrv 服务、COM 注册、VBoxHeadless 进程、暂存文件夹、VBOXSVR 共享 | EDR、事件 7045 |
| **VM 模拟器** | QEMU 二进制文件、临时路径中的 VM 磁盘映像、Windows Sandbox .wsb 文件 | 文件监控 |
| **VM 服务安装** | 模拟 VBoxDrv 内核服务创建(Ragnar Locker 模式) | 事件 7045、EDR |
| **遥测** | Sysmon WSL 进程事件、安全 4688 命令行日志、PowerShell ScriptBlock 日志 | SIEM 管道 |
## 快速开始
```
# 仅 Posture check(适用于生产环境,无执行)
powershell -ExecutionPolicy Bypass -File .\Test-HypervisorEvasion.ps1 -Mode audit
# 带 HTML 报告的完整 Test suite
powershell -ExecutionPolicy Bypass -File .\Test-HypervisorEvasion.ps1 -Mode full -HTMLReport
# 仅 WSL tests
powershell -ExecutionPolicy Bypass -File .\Test-HypervisorEvasion.ps1 -Mode wsl
# 仅 VM tests
powershell -ExecutionPolicy Bypass -File .\Test-HypervisorEvasion.ps1 -Mode vm
# 完整 test,跳过 WSL(未安装 WSL)
powershell -ExecutionPolicy Bypass -File .\Test-HypervisorEvasion.ps1 -Mode full -SkipWSL -HTMLReport
```
## 测试模式
### `audit` — 仅姿态检查
检查已安装的内容(WSL、Hyper-V、VirtualBox、QEMU、Sandbox),列出 WSL 发行版,验证 Sysmon 和 EDR 是否存在,并验证遥测覆盖范围。零命令执行。生产环境安全。
### `wsl` — WSL 规避测试
通过 WSL 执行良性命令,并在每一步验证 EDR 可见性:
- **基本执行:** `wsl.exe hostname`,`wsl.exe whoami` —— 您的 EDR 是记录了在 WSL 内部运行的内容,还是仅记录了 `wsl.exe` 已启动?
- **来自 WSL 的网络:** 来自 Linux 客户机的 DNS 查找和 HTTP 请求 —— 您的代理/NDR 是否能看到源自 WSL 的流量?
- **跨边界文件访问:** WSL 通过 `/mnt/c` 读取 Windows 用户目录 —— 您的 EDR 是否能检测到这一点?
- **跨边界文件写入:** WSL 将 canary 文件写入 Windows 临时目录 —— 这是 WSL 恶意软件用于暂存载荷的确切机制
- **可疑模式:** 带有管道的 `bash -c`,来自 WSL 的 Python 执行 —— 与记录的 WSL 恶意软件 TTP 相匹配
- **二进制调用:** `wsl.exe`、`bash.exe`、`wslhost.exe` 检测
### `vm` — VM/Hypervisor 规避测试
测试对基于 VM 的攻击模式的检测,无需部署任何 VM:
- **VirtualBox 痕迹:** VBoxDrv 服务、COM 注册、VBoxHeadless 进程(Ragnar Locker 指标)
- **Ragnar Locker 暂存:** 检查 `C:\Program Files (x86)\VirtualAppliances` 文件夹
- **VBOXSVR 共享:** 检测 Ragnar Locker 用于从 VM 内部加密主机驱动器的共享文件夹挂载
- **轻量级模拟器:** 扫描可疑位置的 QEMU 二进制文件(CronTrap 技术)
- **VM 磁盘映像:** 在 临时/下载 目录中查找 `.vdi`、`.vmdk`、`.qcow2`、`.vhd` 文件
- **Windows Sandbox:** 创建一个良性的 `.wsb` 配置文件,以测试 EDR 是否会对沙箱滥用发出警报(CronTrap/MirrorFace)
- **服务创建:** 通过 `sc.exe` 模拟 Ragnar Locker 的 VBoxDrv 内核服务安装(需要管理员权限,立即删除)
- **Hyper-V 枚举:** 运行 `Get-VM` 以测试 PowerShell 日志覆盖范围
### `full` — 执行以上所有测试
## 输出
| 文件 | 描述 |
|---|---|
| `hypervisor_evasion_.csv` | 完整结果,可导入 SIEM |
| `hypervisor_evasion_.json` | 完整结果,用于编程处理 |
| `hypervisor_evasion_summary_.txt` | 差距分析与补救措施 |
| `hypervisor_evasion_report_.html` | 可视化 HTML 报告(使用 `-HTMLReport`) |
### 结果值
| 结果 | 含义 |
|---|---|
| `PASS` / `BLOCKED` | 您的控制措施已检测到或将阻止此操作 |
| `FAIL` / `UNDETECTED` | 差距 —— 您的技术栈未能看到该活动 |
| `WARN` | 覆盖不全或发现令人担忧的问题 |
| `INFO` | 信息性(姿态数据) |
| `SKIP` | 测试跳过(缺少前置条件或权限) |
## 检测差距工作流程
1. 运行 `.\Test-HypervisorEvasion.ps1 -Mode full -HTMLReport`
2. 打开 HTML 报告
3. 对于每个 `UNDETECTED` 结果,检查您的 SIEM 中的测试时间窗口
4. 关键问题:**您的 EDR 是否看到了“wsl.exe 已启动”以外的任何内容?**
5. 如果 WSL 命令、网络活动或文件写入未被记录 —— 您存在盲点
6. 部署补救措施并重新测试
## 补救优先级
### WSL 盲点
| 优先级 | 操作 |
|---|---|
| **P0** | 在非业务所需的端点上阻止 WSL(通过 DISM、组策略或 Intune) |
| **P1** | 部署 Sysmon,并配置 wsl.exe/wslhost.exe/bash.exe 父子进程监控 |
| **P1** | 启用 Elastic 检测规则:“Execution via Windows Subsystem for Linux” |
| **P2** | 监控从 WSL 进程到 Windows 文件系统的跨边界文件写入 |
| **P2** | 对不在已知安全排除列表中的 wsl.exe 子进程发出警报 |
| **P3** | 通过注册表 审计 WSL 发行版安装 |
### VM 规避盲点
| 优先级 | 操作 |
|---|---|
| **P0** | 对服务器上 VirtualBox/QEMU 的静默安装或驱动程序加载发出警报 |
| **P0** | 阻止 VBoxDrv.sys 内核服务创建(事件 7045 + 服务名称匹配) |
| **P1** | 检测 VBoxHeadless.exe 进程执行(直接的 Ragnar Locker 指标) |
| **P1** | 监控 临时/下载 目录中的 VM 磁盘映像(.vdi, .vmdk, .qcow2) |
| **P2** | 通过 net use 对 VBOXSVR 共享文件夹挂载发出警报 |
| **P2** | 监控 .wsb 文件创建(Windows Sandbox 滥用载体) |
| **P3** | 应用程序控制:在不需要 Hypervisor 软件的端点上阻止其运行 |
## 安全性
- 所有 WSL 命令均为良性(hostname、whoami、ls、curl 访问 example.com、echo 写入临时文件)
- 跨边界 canary 文件在测试后立即删除
- 不会创建、启动或部署任何 VM
- `.wsb` 沙箱配置文件被创建后立即删除(沙箱永远不会启动)
- 服务创建测试使用不存在的文件路径,并立即清理
- `audit` 模式对系统进行零修改
## 需求
- Windows 10/11 或 Server 2019+(PowerShell 5.1+)
- 已安装 WSL 且至少有一个发行版以进行完整的 WSL 测试(如不存在则优雅跳过)
- 需要管理员权限以进行服务创建和 Hyper-V 测试(非管理员将跳过这些测试)
- 需要互联网以进行 WSL 网络测试(从 WSL 内部进行 curl/nslookup)
## 威胁情报背景
### WSL 滥用时间线
- **2017:** Check Point 演示 Bashware 概念验证
- **2021:** Black Lotus Labs 发现首个现实世界 WSL 恶意软件(ELF 加载器,AV 检测率接近零)
- **2023-2024:** WSL 恶意软件变体持续进化,改进了 Windows API 集成
- **2025-2026:** SpecterOps 演示 WSL2 进攻性技术 —— 信标进入任何发行版、运行命令、读取文件,零警报。Cryxos JavaScript 侦察恶意软件扫描 WSL 挂载以获取浏览器数据。
### VM 规避时间线
- **2020:** Ragnar Locker 部署 VirtualBox XP VM 以加密主机驱动器(Sophos 报告)
- **2020:** Maze 勒索软件采用相同技术,使用 Windows 7 VM
- **2021:** Conti 关联公司在受损服务器上部署 VirtualBox VM
- **2023:** Akira 勒索软件武器化 VM 以绕过 EDR(CyberCX 报告)
- **2024:** CronTrap 活动使用 QEMU 轻量级模拟器(Securonix)
- **2025:** MirrorFace/Operation AkaiRyu 滥用 Windows Sandbox .wsb 文件(ESET)
## 参考资料
- [MITRE T1564.006 - Run Virtual Instance](https://attack.mitre.org/techniques/T1564/006/)
- [MITRE T1202 - Indirect Command Execution](https://attack.mitre.org/techniques/T1202/)
- [MITRE T1059.004 - Unix Shell](https://attack.mitre.org/techniques/T1059/004/)
- [Sophos - Ragnar Locker deploys VM to dodge security](https://www.sophos.com/en-us/blog/ragnar-locker-ransomware-deploys-virtual-machine-to-dodge-security)
- [Elastic - Execution via Windows Subsystem for Linux](https://detection.fyi/elastic/detection-rules/windows/defense_evasion_wsl_child_process/)
- [Black Lotus Labs - WSL malware discovery](https://www.bleepingcomputer.com/news/security/new-malware-uses-windows-subsystem-for-linux-for-stealthy-attacks/)
- [SpecterOps - WSL2 offensive research (2025-2026)](https://www.cryptika.com/attackers-are-using-wsl2-as-a-stealthy-hideout-inside-windows-systems/)
- [Securonix - CronTrap QEMU-based evasion (2024)](https://attack.mitre.org/techniques/T1564/006/)
- [Atomic Red Team T1564.006 tests](https://github.com/redcanaryco/atomic-red-team/blob/master/atomics/T1564.006/T1564.006.md)
标签:AI合规, AMSI绕过, DAST, DNS 反向解析, EDR绕过, HTTP/HTTPS抓包, HTTP工具, Hyper-V, Libemu, Linux子系统, Sysmon, WSL安全, 勒索软件, 威胁检测, 子域枚举, 安全可见性, 影子IT, 态势感知, 恶意软件分析, 数据展示, 沙箱检测, 私有化部署, 端点安全, 红队, 网络安全, 虚拟化逃逸, 补丁管理, 身份验证强制, 防御规避, 隐私保护, 高交互蜜罐