|
一、概念
攻击者可以通过执行加载到进程中的 AppInit DLL 触发的恶意内容来实现持久性或提升权限,在注册表项 HKEY_LOCAL_MACHINE\Software\Microsoft\Windows NT\CurrentVersion\Windows 或 HKEY_LOCAL_MACHINE\Software\Wow6432Node\Microsoft\Windows NT\CurrentVersion\Windows 的 AppInit_DLLs 值中指定的动态链接库 (DLL) 由 user32.dll 加载。实际上,这几乎是每个程序都将会加载的一个库。
与进程注入类似,可被滥用,这样会导致恶意 DLL 在计算机上不同进程的上下文中加载和运行,以此来获得提升的权限。当启用安全启动时,AppInit DLL 功能在 Windows 8 和更高版本中被禁用。
二、涉及到的组织或恶意软件
APT39、Cherry Picker、Ramsay、T9000
三、案例
APT39
APT39 使用的恶意软件会设置 SOFTWARE\Microsoft\Windows NT\CurrentVersion\Windows 注册表项中的 LoadAppInit_DLLs 键来实现持久化
相关报告:https://www.iranwatch.org/sites/ ... elligence-alert.pdf
Cherry Picker
Cherry Picker 的一些变种创建 HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Windows "AppInit_DLLs"="pserver32.dll" 这项来使用 AppInit_DLLs 实现持久化
相关报告:https://www.trustwave.com/Resour ... Picker-PoS-Malware/
Ramsay
Ramsay 使用 AppInit DLL 注册键将自身插入到其它应用程序中的地址空间中去
相关报告:https://www.welivesecurity.com/2 ... airgapped-networks/
T9000
如果受害者满足特定要求,T9000 会使用 AppInit_DLL 功能通过确保生成的每个用户模式进程都加载恶意 DLL ResN32.dll 来实现持久化。通过创建以下注册表项来执行此操作:HKLM\Software\Microsoft\Windows NT\CurrentVersion\Windows\AppInit_DLLs – %APPDATA%\Intel\ResN32.dll 和 HKLM\Software\Microsoft\Windows NT\CurrentVersion\Windows\LoadAppInit_DLLs – 0x1
相关报告:http://researchcenter.paloaltone ... nalysis-techniques/
四、缓解措施
- 攻击者可以安装新的 AppInit DLL 二进制文件来执行此技术。在适当的情况下,使用应用程序控制工具 (如 Windows Defender 应用程序控制、AppLocker 或软件限制策略) 识别和阻止通过 AppInit DLL 功能执行的潜在恶意软件
- 升级到 Windows 8 或更高版本并启用安全启动
五、如何检测
监视进程所加载的 DLL,并查找无法识别或未正常加载到进程中的 DLL。监控 AppInit_DLLs 注册表值是否与已知软件、补丁周期等不相关的修改。监控和分析指示注册表编辑的 API 调用,例如 RegCreateKeyEx 和 RegSetValueEx。
诸如 Sysinternals Autoruns 之类的工具也可用于检测尝试建立持久化的系统更改,包括列出当前的 AppInit DLL。
查找可能由于加载恶意 DLL 的进程导致的异常进程行为。不应孤立地看待数据和事件,而应将其视为可能导致其他活动的行为链的一部分,例如为指挥和控制建立网络连接、通过发现了解环境细节以及进行横向移动。
|
|