启动阶段执行了如下操作:
Phase 0(sub_144A07540):Hyper-V + IOMMU 检测
CPUID(1) → 检查 ECX bit 31(Hypervisor Present bit)
CPUID(0x40000000) → 验证 Hypervisor vendor = “Microsoft Hv”
IOMMU (DMAR/IVRS) → 通过 NtQuerySystemInformation(76) 查询 ACPI 固件表,检查是否存在:
- Intel VT-d: DMAR 表签名 0x52414D44
- AMD-Vi: IVRS 表签名 0x53525649
Phase 1(sub_144A075F0):VHD路径准备
准备 VHD 部署路径 C:\Windows\Temp\WdiServiceHost\
清理旧文件
Phase 2(sub_144A07620):驱动部署
1. 先执行 CPUID(0xDEADBEEF, 0x114514),若 EAX == 0x01919810 则说明hypervisor已活跃,跳过部署
2. 生成随机服务名,构建路径 + “.sys”
3. CreateFileW → WriteFile(驱动blob来自 .data 段 unk_145CCA010)→ CloseHandle
4. 通过.tvm0中的代码创建/挂载VHD并部署驱动
5. OpenSCManagerW → 清理服务 → DeleteFileW
Phase 3(sub_144A07650):Hypervisor激活验证
再次 CPUID(0xDEADBEEF, 0x114514)
验证 EAX == 0x01919810(26318864 十进制)
确认 HyperCharge hypervisor 已成功安装并激活
因此需要机器需要支持IOMMU,并且开启了Hyper-V之后,通过管理员权限启动shadow_panel.exe即可进入输入密码的终端。启动后可以看见输入框

参考一些网络上的教程配置fortigatef路由器

1 | sudo virt-filesystems -a fortios.vmdk 查看磁盘分区 |

复制一份rootfs.gz,解压出来

1 | sudo chroot . /sbin/xz --check=sha256 -d /bin.tar.xz |
题目内容:parse the payload
样本估计是bvp47
https://www.pangulab.cn/files/The_Bvp47_a_top-tier_backdoor_of_us_nsa_equation_group.zh-cn.pdf
根据下面这篇文章解出payload
https://www.qianxin.com/news/detail?news_id=6484
解payload的exp
1 | import re |