1. 引言
最近看到一款远控木马REMCOS 的分析文章,提到该木马采用了一种被称作“看门狗注入”(Watchdog Injection)的技术。这项技术结合了进程注入(Process Injection)与看门狗(Watchdog)守护功能,目的是确保恶意软件即使被用户或杀毒软件终止,也能立即自动重启,并且将恶意代码注入到合法的系统进程中。(这里采用的技术不是很复杂,只是有一点小巧思在里面)
(“Watchdog 看门狗”这种叫法我觉得很别扭,但写分析文章的安全公司 Elastic 采用了这种叫法,就按这个说法来吧。大概因为 Watchdog是嵌入式系统中用于监控系统状态的硬件计时器,是用来监控、自动重启的保护机制,Elastic 借用了这个词来描述这种攻击方式 )
以下是对这项技术的分析与复现
编译环境:VS 2019 (编译生成的测试程序为 WatchdogInjection.exe )
测试环境:Windows 10
2. 攻击流程
“看门狗注入”利用进程镂空(Process Hollowing)和“双向守护”机制,实现恶意软件的“无限复活”。
恶意程序在首次启动时,判定自身为主进程;它在注册表留下信标,随后将自身代码镂空注入到合法进程(如cmd.exe)中,形成守护进程,并启动子线程反向监控该守护进程;若守护进程被杀,主进程的监控线程会重新创建新的守护进程;
守护进程运行时会删除信标,获取主进程句柄并阻塞等待;若主进程被杀,守护进程立即复活主进程;
这使恶意软件极难被单点清除,实现持续驻留。
2.1 感知身份
WatchdogInjection.exe 在运行时要立刻判断自己是主进程,还是被注入到cmd.exe 的守护进程
以下是代码的实现逻辑:
如果没有找到注册表的信标(主进程运行时会设置信标,即注册表键值,守护进程运行后会删除信标),就说明是主进程 WatchdogInjection.exe 在运行;
如果找到了,就说明是被注入了cmd.exe 进程空间的 WatchdogInjection.exe 在运行,即守护进程;守护进程运行后,读取到了注册表信标,立刻删除注册表键值;防止后续主进程 WatchdogInjection.exe 再次复活时引起逻辑错乱。
---
来源: 看雪论坛
原文链接: https://bbs.kanxue.com/thread-290191.htm
[原创]“看门狗注入”(Watchdog Injection) 技术分析
65 浏览
1 回复
mark