文章总结: 本文详细分析了DLL搜索顺序劫持攻击案例,通过ProcMon捕获恶意样本释放rar.exe并在C:\Windows根目录植入ntshrui.dll,利用DLL搜索顺序使explorer.exe等系统进程加载恶意DLL。关键发现包括ProcessMonitor自身被注入的反分析行为,以及攻击链涉及临时目录解压、多位置DLL部署。可操作建议包括使用ProcessHacker卸载恶意模块、删除相关文件并重启验证。 综合评分: 85 文章分类: 恶意软件,应急响应,漏洞分析,安全工具,威胁情报
ProcMon也被注入?DLL 搜索顺序劫持排查
原创
weiqin weiqin
大仙安全说
2026年4月3日 12:58 北京
在小说阅读器读本章
去阅读
点击蓝字,关注我们
大
仙
免责声明
大仙安全说的技术文章仅供参考,此文所提供的信息只为网络安全人员进行检测或维护参考,未经授权请勿利用文章中的技术资料对任何计算机系统进行入侵操作。利用此文所提供的信息而造成的直接或间接后果和损失,均由使用者本人负责。本文所提供的工具仅用于学习,禁止用于其他! ! !
DLL搜索顺序劫持原理
01.
什么是DLL劫持
DLL劫持(DLL Hijacking)是指攻击者通过某种手段,让合法程序在运行时加载攻击者提供的恶意DLL,而非原本预期的合法DLL。其核心在于“欺骗”程序加载了不该加载的代码。
顺序劫持详解
如果要加载任何DLL,操作系统首先检查该DLL是否已在内存中加载,如果是,则使用已加载的DLL。如果没有,它会检查DLL是否在“KnownDLLs”注册表项中定义。
\HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\KnownDLLs
如果要加载的DLL在“KnownDLLs” 列表中,则该DLL将始终从System32目录加载。这些条件不满足,则操作系统将按顺序在以下位置查找DLL。
应用程序所在目录
系统目录(C:\Windows\System32)
16位系统目录(C:\Windows\System)
Windows目录(C:\Windows)
当前目录(当前进程的当前工作目录)
PATH环境变量中的目录
攻击者只需将一个同名的恶意DLL放置在搜索顺序靠前的目录中(通常是应用程序目录或Windows根目录),当程序加载该DLL时,就会优先加载恶意版本,从而实现劫持。
样本行为分析
02.
Procmon捕获样本行为
设置ProcMon过滤器时添加上rar.exe,这个样本是winrar.exe释放出来的。
查看进程树
释放的rar.exe在temp目录下执行了命令
"C:\Users\admin\AppData\Local\Temp\rar.exe"
文件注册表摘要
观察到生成了多个可疑样本
C:\Users\admin\AppData\Local\Temp~rtmp
C:\Users\admin\AppData\Local\Temp\rar.exe
C:\Users\admin\AppData\Local\MMC\hauthuid.dll
C:\Windows\ntshrui.dll
rar.exe位于临时目录:合法的WinRAR程序通常安装在C:\Program Files,出现在Temp中极不寻常,很可能是恶意软件释放的解压工具,用于后续释放其他载荷。
hauthuid.dll位于用户Local\MMC:MMC(Microsoft Management Console)相关DLL不应出现在用户配置文件下,命名“hauthuid”疑似与认证劫持有关。
ntshrui.dll出现在C:\Windows根目录:正常的ntshrui.dll在C:\Windows\System32,根目录下的同名DLL必然是通过劫持手法植入的恶意文件。
注册表没发现什么异常
进程注入验证
03.
使用Process Hacker查看当前哪些进程加载了这些DLL,使用快捷键Ctrl+F打开“Find Handle or DLL”搜索框,分别输入ntshrui.dll和hauthuid.dll,
hauthuid.dll 只被 explorer.exe 加载。
ntshrui.dll 被以下三个进程加载:
explorer.exe(Windows资源管理器)
runtimebroker.exe(管理UWP应用的运行时代理)
procmon.exe(Process Monitor自身被注入,表明攻击者试图监控或干扰分析工具,可能是反调试/反分析行为。这也解释了为什么ProcMon可能无法完整捕获某些事件。)
总结
04.
攻击链复盘
运行恶意样本,释放rar.exe用于解压,同时在C:\Windows根目录和用户AppData下创建恶意DLL。利用DLL搜索顺序劫持,使得系统进程(如explorer.exe)自动加载根目录下的ntshrui.dll。通过Shell扩展或其他机制,使explorer.exe加载hauthuid.dll。
清除要点
立即卸载/结束加载恶意DLL的进程:使用Process Hacker卸载模块,或结束进程后重启干净版本。删除恶意文件:删除C:\Windows\ntshrui.dll、C:\Users\admin\AppData\Local\MMC\hauthuid.dll以及临时目录下的rar.exe和~rtmp文件夹。重启系统验证:重启后再次检查进程加载的DLL,确保无残留。
添加好友注明来意
公众号丨大仙安全说
VX丨weiqin_6666
长按关注
《往期阅读》
隐藏在所有进程背后的黑手:AppInit_DLLs 持久化机制深度拆解
注册表被“记事本”劫持?镜像劫持 + Winlogon 持久化
注册表被锁、任务管理器打不开?“Debugger=0”引发的
实战拆解:Autoruns揪出隐藏的计划任务木马
零基础也能分析病毒!Noriben新手入门指南
使用 Sysmon 如何精准捕获“银狐”域名
点击
阅读原文
了解更多
免责声明:
本文所载程序、技术方法仅面向合法合规的安全研究与教学场景,旨在提升网络安全防护能力,具有明确的技术研究属性。
任何单位或个人未经授权,将本文内容用于攻击、破坏等非法用途的,由此引发的全部法律责任、民事赔偿及连带责任,均由行为人独立承担,本站不承担任何连带责任。
本站内容均为技术交流与知识分享目的发布,若存在版权侵权或其他异议,请通过邮件联系处理,具体联系方式可点击页面上方的联系我。
本文转载自:大仙安全说 weiqin weiqin《ProcMon也被注入?DLL 搜索顺序劫持排查》
版权声明
本站仅做备份收录,仅供研究与教学参考之用。
读者将信息用于其他用途的,全部法律及连带责任由读者自行承担,本站不承担任何责任。









评论