HijackLibs!提到DLL劫持(DLL Hijacking),估计很多安全圈的小伙伴都不陌生。这可是个“老古董”技术了,威胁演员和红队大佬们用它来搞破坏,蓝队兄弟们则头疼怎么防它。今天这个工具,简直是红蓝双方都能用上的“神器”,我研究完之后,真的有点激动,迫不及待想跟大家分享一下!
什么是HijackLibs?它到底能干啥?
先来聊聊这个工具的“真面目”。HijackLibs 是一个专门收集 DLL 劫持机会的开源项目,简单来说,它帮你整理了一份“清单”,告诉你哪些 DLL 和哪些可执行文件(executables)可能会被用来搞 DLL 劫持。不仅如此,它还附带了详细的元数据,给你更多上下文信息,简直贴心到不行!
红队的福音:如果你是红队(攻击方),这个工具能帮你快速找到可以利用的 DLL 劫持机会。比如,它会告诉你某个程序会加载某个 DLL,但路径没写全(经典的 DLL Search Order Hijacking),你就可以放一个恶意的 DLL 在优先搜索的路径上,程序一运行,你的代码就偷偷执行了!而且,这种攻击方式超级隐蔽,普通的杀软(AV)或者 EDR 可能根本发现不了,因为运行的程序本身是“合法”的。
蓝队的救星:如果你是蓝队(防御方),HijackLibs 也能帮上大忙。它提供了 Sigma 检测规则(Sigma Rules),让你可以监控那些可能被滥用的行为。比如,你可以用这些规则去检测是否有程序加载了不该加载的 DLL,或者是否有可疑的路径被访问。说实话,看到这个功能的时候,我真的感动了——防御方太需要这种工具了!
DLL劫持的“四种玩法”,你知道吗?
HijackLibs 把 DLL 劫持分成了四种类型,每一种都让我叹为观止,因为这些手法真的太“狡猾”了!咱们简单聊聊这四种玩法:
- DLL Sideloading(DLL侧加载)
这是最常见的一种手法。攻击者找一个合法程序,这个程序会加载某个特定名字的 DLL,但没写全路径。然后,攻击者把一个恶意的 DLL 改成这个名字,放在程序旁边,程序一运行,嘿,直接加载恶意的 DLL!我第一次看到这种手法的时候,真的觉得攻击者太“聪明”了,简直防不胜防。
- Phantom DLL Hijacking(幻影DLL劫持)
这种更绝!有些程序会尝试加载一个压根不存在的 DLL(可能是开发者的疏忽)。攻击者直接伪造一个同名的 DLL,放到指定位置,程序运行时就乖乖加载了。这种手法让我直呼“太阴了”,因为它利用的是程序的“信任”,根本不需要改程序本身。
- DLL Search Order Hijacking(DLL搜索顺序劫持)
这种手法利用了 Windows 加载 DLL 的搜索顺序。如果程序没指定 DLL 的完整路径,系统会按照固定顺序去搜索。攻击者把恶意的 DLL 放在优先级更高的位置(比如当前目录),程序就会优先加载这个恶意的 DLL。这种手法真的让我又爱又恨,爱的是它的巧妙,恨的是它太难防!
- Environment Variable-based DLL Hijacking(环境变量劫持)
这种更高级!攻击者通过修改环境变量(比如 PATH),把路径指向一个自己控制的目录,程序加载 DLL 时就会从这个目录里找,加载恶意的 DLL。这种手法让我感觉攻击者的脑洞真的太大了,防这种攻击,得对系统环境变量格外小心啊!
我花了点时间研究了一下 HijackLibs,真的不得不说,这个工具的设计太贴心了!它不仅提供了网页版搜索功能,让你能快速查到哪些 DLL 和程序有风险,还提供了 JSON 和 CSV 格式的数据文件,方便你在自动化流程中使用。比如,我直接把数据导出来,丢到我的 SIEM 系统里,配合 Sigma 规则,立马就能监控到可疑行为,效率直接拉满!
HijackLibs 最大的价值在于它整理了很多 DLL 劫持的信息,省去了自己去搜集的时间。对于红队来说,可以快速找到切入点;对于蓝队来说,能提供一些检测思路。它还是一个开源项目,社区有不少人参与维护,数据会不断更新,算是比较靠谱。
不过,网络安全从来不是靠一个工具就能解决的。DLL 劫持只是攻击手法之一,防御方还需要从系统配置、权限管理等多个层面去下功夫。同样,红队用这个工具找到机会后,也得结合具体环境去操作,不是拿来就能直接用的。
总结:可以试试看
总的来说,HijackLibs 是一个挺实用的工具。如果你对 DLL 劫持有兴趣,或者工作中需要处理相关的安全问题,可以去 HijackLibs 看看。它能提供一些有用的信息,但具体怎么用,还是得看你自己的需求和场景。
https://hijacklibs.net/
原文始发于微信公众号(Ots安全):HijackLibs:红队和蓝队的DLL劫持神器
- 左青龙
- 微信扫一扫
-
- 右白虎
- 微信扫一扫
-
评论