隐藏在阴影中:通过QEMU虚拟化的隐蔽隧道
初始访问
此次入侵始于一次精心策划的语音钓鱼(vishing)攻击。攻击者通过Microsoft Teams联系用户,冒充IT支持团队。由于Teams默认允许外部通信,攻击者得以成功接入。
攻击者指导用户打开Quick Assist(Windows内置远程管理工具),并下载Zoho Meeting。随后,通过curl命令从攻击者控制的IP地址下载ZIP文件(updqem.zip)。由于缺乏遥测数据,具体curl命令未被捕获,但curl.exe进程的执行及文件引入被记录。
QEMU虚拟机部署
通过分析主机$MFT,发现ZIP文件解压到以下目录:
C:\ProgramData\update\C:\ProgramData\update\updateC:\ProgramData\update\stlC:\ProgramData\update\update\shareC:\ProgramData\update\stl\share
目录中包含两个QEMU可执行文件:
C:\ProgramData\update\stl\stl.exeC:\ProgramData\update\tc.exe
以及两个VBS脚本:
C:\ProgramData\update\update\update.vbsC:\ProgramData\update\stl\##_START_##.vbs
update.vbs使用Wscript shell执行tc.exe,并通过配置文件upd.conf传递虚拟机参数:
- 内存:512MB
- 镜像文件:
tc.qcow2 - 虚拟硬盘:IDE
- 基本互联网访问
##_START_##.vbs则直接在命令行中明确配置参数,且使用更小的内存分配。
发现两个镜像文件:
C:\ProgramData\update\stl\tc.qcow2(首次引入)C:\ProgramData\update\update\tc.qcow2(数日后引入)
SSH后门尝试
两个镜像文件均部署Tiny Core Linux虚拟机。通过bash历史记录,发现攻击者尝试构建后门。
首次尝试使用wget从攻击者控制端点(149.28.198[.]232)下载负载(123.out)。为确保持久性,攻击者编辑了以下文件:
bootlocal.sh:在启动时运行指定命令,创建循环ping攻击者端点(45.77.4[.]101),成功时执行123.out。filetool.lst:定义重启后保留的文件和目录,包括home/tc(包含123.out)和opt目录。
数日后,攻击者尝试第二种方法,下载SSL和NoSSL工具,并编辑自定义脚本hostname.sh(生成随机主机名)。随后通过tc-load安装OpenSSH,并配置相关文件和目录以确保持久性。
最后,攻击者尝试建立反向SSH隧道到服务器(137.184.4[.]169)端口443,并通过以下方式规避取证:
- 将已知主机信息存储到
/dev/null - 禁用
StrictHostKeyChecking
补救与预防
建议采取以下措施:
- 重新映像系统或没收设备,重置用户凭证。
- 限制Microsoft Teams的外部通信,实施租户白名单。
- 禁用或限制远程访问工具(如Quick Assist、Zoho Meeting)。
- 监控或限制未经授权的虚拟化软件(如QEMU、VirtualBox)。
- 审查防火墙策略,阻止出站SSH流量。
- 加强用户意识培训,识别未授权的远程管理工具。
IOCs
| 值 | 类型 | 描述 |
|---|---|---|
| ZA_Connect.exe | 文件名 | Zoho Meeting Assist |
| 8aa77293b0e26e2dc15ba912bc3e8c0a | MD5 | ZA_Connect.exe哈希 |
| Tc.exe | 文件名 | QEMU软件 |
| Stl.exe | 文件名 | QEMU软件 |
| 8697ff6c68e4d029b4980fed99f3ff96 | MD5 | Tc.exe & stl.exe哈希 |
| ##START##.vbs | 文件名 | QEMU设置脚本 |
| a116b1ac07ba6f1286fbf12adbd6a29f | MD5 | ##START##.vbs哈希 |
| Upd.conf | 文件名 | QEMU虚拟化参数 |
| c4069197ac4dceb3ff4dd3e1155187a5 | MD5 | Upd.conf哈希 |
| Update.vbs | 文件名 | QEMU设置脚本 |
| dbe24234b231af446c655e3fbd2a694e | MD5 | Update.vbs哈希 |
| Tc.qcow2 | 文件名 | Tiny Core Linux镜像文件 |
| 834614dea627f85863124de17a6a5f47 | MD5 | Tc.qcow2哈希 |
| 3e4a502948e4fc8ac39dcd5c152b78e2 | MD5 | Tc.qcow2哈希 |
| Hostname.sh | 文件名 | 攻击者自定义脚本 |
| D0A67FA9F13E7ED7B957F47C27EFA64B | MD5 | Hostname.sh哈希 |
| 123.out | 文件名 | 潜在后门 |
| BB21E569F67807596C6C1C8768B15A53 | MD5 | 123.out哈希 |
| 82.118.16[.]49 | IP地址 | 攻击者控制端点 |
| 137.184.4[.]169 | IP地址 | 攻击者控制端点 |
| 143.28.198[.]232 | IP地址 | 攻击者控制端点 |