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, 态势感知, 恶意软件分析, 数据展示, 沙箱检测, 私有化部署, 端点安全, 红队, 网络安全, 虚拟化逃逸, 补丁管理, 身份验证强制, 防御规避, 隐私保护, 高交互蜜罐