DLL 注入
DLL 注入 是什么?
DLL 注入一种代码注入技术,强制目标 Windows 进程加载并执行攻击者提供的动态链接库(DLL)。
DLL 注入会迫使目标进程将恶意 DLL 映射到自身地址空间,从而以宿主进程的权限和信任属性运行该 DLL 的 DllMain 或导出函数。经典做法是调用 OpenProcess、VirtualAllocEx 与 WriteProcessMemory 将 DLL 路径写入目标进程,再通过 CreateRemoteThread 调用 LoadLibraryA。变种包括反射式 DLL 加载(磁盘上无文件)、SetWindowsHookEx 和 AppInit_DLLs 注册表滥用。MITRE ATT&CK 将其归为 T1055.001(Process Injection 子项)。常见防御包括具备跨进程 API 追踪能力的 EDR、内核回调(PsSetCreateProcessNotifyRoutineEx)、受保护进程、代码签名、对关键进程禁止远程线程创建,以及监控 Sysmon Event 8。
● 示例
- 01
Cobalt Strike Beacon 通过 CreateRemoteThread 向 svchost.exe 注入 DLL 实现进程迁移。
- 02
恶意软件滥用 AppInit_DLLs 将凭据窃取 DLL 加载到所有交互式进程。
● 常见问题
DLL 注入 是什么?
一种代码注入技术,强制目标 Windows 进程加载并执行攻击者提供的动态链接库(DLL)。 它属于网络安全的 攻击与威胁 分类。
DLL 注入 是什么意思?
一种代码注入技术,强制目标 Windows 进程加载并执行攻击者提供的动态链接库(DLL)。
DLL 注入 是如何工作的?
DLL 注入会迫使目标进程将恶意 DLL 映射到自身地址空间,从而以宿主进程的权限和信任属性运行该 DLL 的 DllMain 或导出函数。经典做法是调用 OpenProcess、VirtualAllocEx 与 WriteProcessMemory 将 DLL 路径写入目标进程,再通过 CreateRemoteThread 调用 LoadLibraryA。变种包括反射式 DLL 加载(磁盘上无文件)、SetWindowsHookEx 和 AppInit_DLLs 注册表滥用。MITRE ATT&CK 将其归为 T1055.001(Process Injection 子项)。常见防御包括具备跨进程 API 追踪能力的 EDR、内核回调(PsSetCreateProcessNotifyRoutineEx)、受保护进程、代码签名、对关键进程禁止远程线程创建,以及监控 Sysmon Event 8。
如何防御 DLL 注入?
针对 DLL 注入 的防御通常结合技术控制与运营实践,详见上方完整定义。
● 相关术语
- attacks№ 862
进程注入
一类规避检测的技术,攻击者在合法进程的地址空间内执行恶意代码,以借用其信任与身份。
- malware№ 417
无文件恶意软件
主要在内存中运行、利用受信任的系统工具,尽量避免在磁盘上留下传统可执行文件的恶意软件。
- malware№ 649
恶意软件
任何被故意设计用于破坏、损害计算机、网络或数据,或对其进行未经授权访问的软件。
- defense-ops№ 371
EDR(端点检测与响应)
持续记录端点进程、文件、注册表与网络活动,以检测、调查并响应主机层威胁的端点安全技术。
- defense-ops№ 682
Mimikatz
开源 Windows 后渗透工具,从内存和 LSASS 中提取明文密码、哈希、Kerberos 票据等凭据。
- defense-ops№ 298
防御规避
MITRE ATT&CK 战术 TA0005,涵盖攻击者用来规避检测、禁用安全工具并隐藏自身活动的各种技术。