公众号无关。 |
简介
Robber 是一个使用Delphi XE2开发的免费开源工具,没有任何第三方依赖。
- 在1.7版本中,由于新的写入权限检查功能,Robber默认不需要管理员权限,因此如果要扫描“ProgramFiles”之类的地方,则需要以管理员权限运行Robber。
什么是DLL劫持?!
Windows 在其底层体系结构中具有 DLL 的搜索路径。如果你能弄清楚可执行文件在没有绝对路径的情况下请求哪些DLL(触发此搜索过程),那么你就可以把你的恶意DLL放在搜索路径的更高位置,这样它就会在真实版本之前被发现,Windows会很乐意将你的攻击代码提供给应用程序。
详情
🚀 快速使用
假设Windows的DLL搜索路径如下所示:
一) . <--可执行文件的当前工作目录,最高优先级,首次检查
B) 视窗
C) Windowssystem32
D) Windowssyswow64 <-- 最低优先级,上次检查
和一些可执行的“Foo.exe”请求“bar.dll”,它恰好存在于syswow64(D)子目录中。这使您有机会将恶意版本放在A),B)或C)中,并将其加载到可执行文件中。
如前所述,如果可以将 DLL 替换为自己的版本,即使是绝对完整路径也无法防止这种情况。
Microsoft Windows 使用 Windows 文件保护机制保护像 System32 这样的系统路径,但在企业解决方案中保护可执行文件免受 DLL 劫持的最佳方法是:
- 使用绝对路径而不是相对路径
- 如果您有个人签名,请在将 DLL 加载到内存之前对 DLL 文件进行签名并检查应用程序的登录情况。 否则,请使用原始 DLL 哈希检查 DLL 文件的哈希)
当然,这也不仅限于Windows。理论上,任何允许外部库动态链接的操作系统都容易受到此影响。
强盗 使用简单的机制来找出容易被劫持的DLL:
- 扫描可执行文件的导入表并找出链接到可执行文件的DLL
- 搜索放置在可执行文件中与链接DLL匹配的DLL文件(正如我之前所说,可执行文件的当前工作目录具有最高优先级)
- 如果找到任何 DLL,请扫描主题的导出表
- 将可执行文件的导入表与 DLL 的导出表进行比较,如果找到任何匹配项,则可执行文件和匹配的常用函数将标记为 DLL 劫持候选。
羽毛 :
- 能够选择扫描类型(已签名/未签名的应用程序)
- 确定可执行签名者
- 确定是否引用
- 确定候选 DLL 的导出方法名称
- 配置规则以确定哪些劫持是最佳或最佳选择,并以不同的颜色显示主题
- 能够检查可执行文件目录的写入权限,这是劫持的良好候选者
在此处查找最新的强盗可执行文件
项目地址
https://github.com/MojtabaTajik/Robber
原文始发于微信公众号(x9sec):Robber是开源工具,查找容易被DLL劫持的可执行文件
- 左青龙
- 微信扫一扫
-
- 右白虎
- 微信扫一扫
-
评论