AppInit_DLLs
AppInit_DLLs 是什么?
AppInit_DLLsWindows 早期持久化技术,通过滥用注册表值,将指定 DLL 加载到所有链接 user32.dll 的用户态进程中。
AppInit_DLLs 滥用(MITRE ATT&CK T1546.010)针对 HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Windows\AppInit_DLLs(及其 WOW6432Node 对应项)。当 LoadAppInit_DLLs 设为 1 时,user32.dll 加载器会将 AppInit_DLLs 中列出的任何 DLL 映射到每个链接 user32.dll 的进程中,几乎涵盖所有交互式应用。攻击者只需一次注册表写入即可获得广泛执行和持久化。自 Windows 8 起,Secure Boot 默认禁用 AppInit_DLLs,除非 DLL 已签名且放宽了签名要求,但该技术仍出现在遗留或配置不当的主机上。防御措施:保持 Secure Boot 启用、要求签名 AppInit DLL、使用 Autoruns 建立基线,并通过 Sysmon 注册表事件监控变化。
● 示例
- 01
在 Windows 7 服务器的 AppInit_DLLs 中加入恶意 DLL 路径,以跨进程记录键盘输入。
- 02
在禁用 Secure Boot 的环境中结合 AppInit_DLLs 部署用户态 rootkit。
● 常见问题
AppInit_DLLs 是什么?
Windows 早期持久化技术,通过滥用注册表值,将指定 DLL 加载到所有链接 user32.dll 的用户态进程中。 它属于网络安全的 攻击与威胁 分类。
AppInit_DLLs 是什么意思?
Windows 早期持久化技术,通过滥用注册表值,将指定 DLL 加载到所有链接 user32.dll 的用户态进程中。
AppInit_DLLs 是如何工作的?
AppInit_DLLs 滥用(MITRE ATT&CK T1546.010)针对 HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Windows\AppInit_DLLs(及其 WOW6432Node 对应项)。当 LoadAppInit_DLLs 设为 1 时,user32.dll 加载器会将 AppInit_DLLs 中列出的任何 DLL 映射到每个链接 user32.dll 的进程中,几乎涵盖所有交互式应用。攻击者只需一次注册表写入即可获得广泛执行和持久化。自 Windows 8 起,Secure Boot 默认禁用 AppInit_DLLs,除非 DLL 已签名且放宽了签名要求,但该技术仍出现在遗留或配置不当的主机上。防御措施:保持 Secure Boot 启用、要求签名 AppInit DLL、使用 Autoruns 建立基线,并通过 Sysmon 注册表事件监控变化。
如何防御 AppInit_DLLs?
针对 AppInit_DLLs 的防御通常结合技术控制与运营实践,详见上方完整定义。
AppInit_DLLs 还有哪些其他名称?
常见的别称包括: AppInit DLL 注入, user32 AppInit 持久化。
● 相关术语
- attacks№ 331
DLL 劫持
一种滥用 Windows DLL 搜索顺序的攻击,使合法程序加载攻击者控制的库,而不是预期的库。
- attacks№ 200
COM 劫持
一种持久化技术,将 Windows 组件对象模型的 CLSID 查找重定向到攻击者代码,只要宿主进程实例化该对象就会执行。
- attacks№ 515
IFEO 注入
一种利用 Windows 注册表 Image File Execution Options 项的持久化与提权技术,只要目标可执行文件启动就会触发攻击者代码。
- attacks№ 914
注册表 Run 键持久化
经典 Windows 持久化技术,在 Run 或 RunOnce 注册表项中添加条目,使二进制或脚本在每次用户登录时执行。
- attacks№ 1246
WMI 事件订阅持久化
一种持久化手法,注册永久 WMI 事件过滤器和消费者,使攻击者代码在指定系统事件发生时被触发。
- attacks№ 610
LD_PRELOAD 劫持
一种 Linux 持久化与库劫持技术,利用 LD_PRELOAD 环境变量或 /etc/ld.so.preload 文件向动态链接进程注入攻击者代码。