SLEEPWALKER:一种「睡不着」的Windows被动后门

导语:想象一个刺客,他潜入目标家中,不撬锁、不翻柜、不发出任何声响,就这么安静地蹲在角落——直到有人从窗外扔进来一张特定的纸条,他才起身行动。SLEEPWALKER 就是这样一个”刺客型”后门程序。


一、它是怎么混进来的?

披着羊皮的DLL

SLEEPWALKER 是一个 64 位的 Windows DLL 文件,只有 59,904 字节(约 58KB),伪装成微软的系统文件 dpapi.dll,并且盗用了 ESET 杀毒软件的管理代理程序版本信息。

它通过 DLL 侧载的方式加载:把它放到 ESET 管理代理程序(ERAAgent.exe)同目录下,当 ESET 程序运行时,会优先加载同目录下的 dpapi.dll——于是 SLEEPWALKER 就借壳上身了。

SLEEPWALKER从侧载到执行的生命周期

DLL 侧载过程示意:攻击者将恶意 dpapi.dll 放到 ESET Agent 同目录下,程序运行时自动加载,恶意代码借正规进程之壳执行。

关键点:它只认进程名,不校验签名、不检查路径。只要进程名是 ERAAgent.exe,它就激活。


二、它是怎么”睡觉”的?

传统木马恨不得刚运行就拨号回家联系”主人”,但 SLEEPWALKER 完全相反:

它把网卡调成混杂模式,偷看所有经过的网卡流量,但自己什么都不发。它就像一个安安静静的监听器,躺在内存里一动不动。

直到——收到一个”暗号包”。

这个触发包有严格的校验逻辑(先后过 CRC-32 校验、AES-256-CCM 解密),只有完全匹配才会唤醒它。校验失败的包直接丢掉,没有任何响应。

这就导致:没有任何防火墙规则能封锁它,因为它在激活前根本不产生任何可疑流量。流量监控也看不见它——它只是被动地”看”,不主动”说”。


三、醒来之后它能做什么?

自创一套”方言”

SLEEPWALKER 不是收到明文指令,而是收到一段字节码程序——用后门自己设计的”方言”写的小程序。它内置了一个仅 23 条指令的字节码解释器,支持:

  • 定时调度:让任务在指定时间执行
  • 数据窃取:多种网络协议外传数据
  • 分阶段投递:先下一个小程序,再下大程序,带 SHA-256 校验
  • 直接内存执行:Shellcode 注入目标进程

通信能力

它支持多种隐蔽通道:

通道用途
TCP / UDP / ICMP原始套接字发送敏感数据
SMB 命名管道横向移动,渗透内网其他机器
VMware VMCI宿主机与虚拟机之间的私有通道
DNS 查询把命令藏在 DNS 请求里触发

自降安全门槛

为了让自己能接收匿名连接,它会偷偷修改 Windows 本地安全策略——开启匿名 SMB 访问,并创建 Everyone 和 Anonymous Logon 都有完全控制权的命名管道。


四、加密和检测难点

双重加密壁垒

即便你拿到了 AES-256 解密密钥,也只能看到一堆乱码——因为解密出来的不是明文命令,而是字节码,还需要逆向后门的内部解释器才能理解。

检测建议

由于它在触发前几乎零行为,以下是检测重点:

  • 进程层面:监控 ERAAgent.exe 是否异常加载了非官方的 dpapi.dll
  • 文件层面:检查 System32 或 ESET 目录下是否存在 dpapisvc.dll(这是它会尝试加载的一个假文件)
  • 网络层面:注意异常的大量 SMB 匿名访问和命名管道创建事件
  • 策略层面:审计是否有人偷偷开启了匿名 SMB 访问
  • 虚拟化环境:关注 VMware VMCI 通道的异常通信

五、IOC

类型
SHA-256d347170752a28e2b8c4b8b9f3cab2e3a6541ba11682c94498d26eb9002779d60
文件大小59,904 字节
伪装文件名dpapi.dll
侧载进程ERAAgent.exe
编译时间2024-06-10 09:18:27 UTC

参考链接:https://r136a1.dev/2026/08/24/sleepwalker-a-passive-backdoor-with-its-own-command-language/

分析工具截图

分析工具命令行版
分析工具GUI版

© 版权声明
THE END
喜欢就支持一下吧
点赞15 分享
评论 抢沙发

请登录后发表评论

    暂无评论内容