乐于分享
好东西不私藏

隐藏在所有进程背后的黑手:AppInit_DLLs 持久化机制深度拆解

隐藏在所有进程背后的黑手:AppInit_DLLs 持久化机制深度拆解

点击蓝字,关注我们

免责声明

    大仙安全说的技术文章仅供参考,此文所提供的信息只为网络安全人员进行检测或维护参考,未经授权请勿利用文章中的技术资料对任何计算机系统进行入侵操作。利用此文所提供的信息而造成的直接或间接后果和损失,均由使用者本人负责。本文所提供的工具仅用于学习,禁止用于其他! ! !

01

技术原理

 AppInit_DLLs是Windows操作系统中一个鲜为人知但功能强大的机制,它允许指定一组DLL,这些DLL会被自动加载到几乎所有基于用户界面(UI)的进程中。

HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\WindowsHKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\Windows NT\CurrentVersion\Windows(32位系统兼容)

02

检测分析过程

一:Autoruns发现异常

在应用初始化发现了AppInit标签页,检测到异常目录的DLL加载项

“应用初始化”的机制基于Windows注册表中的一个键值,由AppInit_DLLs控制。当一个标准应用程序(指那些加载了User32.dll的进程)启动时 Windows会自动将这里列出的所有DLL文件加载到该应用程序的进程空间中。

二:Procmon行为监控

进程树

进程执行链:

C:\Windows\system32\InfDefaultInstall.exe C:\ProgramData\Intel\hccutils.inf

执行该命令后,系统会解析 hccutils.inf 文件的内容,并按照其中的定义进行安装或配置操作。

文件摘要

可以看到,InfDefaultInstall.exe在C:\ProgramData\Intel\目录下创建了多个文件,其中ResN32.dll正是我们之前在Autoruns中发现的异常DLL文件。

C:\ProgramData\Intel\ResN32.dll

C:\ProgramData\Intel\hccutils.dll

C:\ProgramData\Intel\ruei.dat

C:\ProgramData\Intel\ResN32.dat

C:\ProgramData\Intel\Data\glp.uin

C:\ProgramData\Intel\Data\Dtl.dat

C:\ProgramData\Intel\hccutils.inf

C:\ProgramData\Intel\~1

注册表摘要

修改的比较多,有分析的目标LoadAppInit_DLLs

HKLM\SOFTWARE\WOW6432Node\Microsoft\Windows NT\CurrentVersion\Windows\LoadAppInit_DLLs

三:验证确认

打开注册表编辑器,导航至:

HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Windows

检查以下键值为ResN32.dll文件

再看LoadAppInit_DLLs的数值为1,这个设置的含义是:允许将特定的DLL文件自动加载到运行的所有GUI程序中。

  • 数据为 1 (开启):系统会检查并加载在隔壁 AppInit_DLLs 键值里列出的所有DLL。

  • 数据为 0 (关闭):即使 AppInit_DLLs 里写了东西,系统也会忽略,不会自动加载。

  • 配套的AppInit_DLLs(存储列表):在同一个注册表路径下,AppInit_DLLs 的键,它里面存放的就是要被自动加载的DLL文件的路径和名称

打开文件路径,发现C:\ProgramData\Intel\文件夹下包含多个可疑文件

该文件夹为新创建,实锤了!

四:System informer动态验证

为了验证恶意DLL是否真正被注入到进程中,我们可以使用System informer(或Process Explorer)进行动态分析。

先运行System informer后随机打开一个程序,使用Find handles or DLLs功能搜索ResN32.dll,能够成功查询到异常的句柄。

/*随后在ResourceHacker.exe属性里查看其句柄并无ResN32.dll

这是因为 ResN32.dll 曾经被 ResourceHacker.exe 尝试加载过,但最终没有成为该进程内存空间里一个长期、稳定的模块所以看不到该dll。

*/

03

云沙箱验证

最后一步,我们使用微步云沙箱(或其他威胁情报平台)对捕获的ResN32.dll进行验证

微步云沙箱显示该文件被多款杀毒引擎标记为恶意,行为分析报告显示其具有进程注入、键盘记录、信息窃取等多种恶意功能。

04

总结

    AppInit_DLLs作为一种经典的持久化技术,虽然历史悠久,但在现代恶意软件中仍被广泛使用。理解其技术原理、掌握检测方法和应急响应流程,对于安全分析师和应急响应人员来说至关重要。

添加好友注明来意

公众号丨大仙安全说

VX丨weiqin_6666

长按关注

《往期阅读》

注册表被“记事本”劫持?镜像劫持 + Winlogon 持久化

注册表被锁、任务管理器打不开?“Debugger=0”引发的

实战拆解:Autoruns揪出隐藏的计划任务木马

零基础也能分析病毒!Noriben新手入门指南

使用 Sysmon 如何精准捕获“银狐”域名

使用 DNSQuerySniffer 揪出隐蔽钓鱼请求

阅读原文了解更多