freeBuf
主站

分类

漏洞 工具 极客 Web安全 系统安全 网络安全 无线安全 设备/客户端安全 数据安全 安全管理 企业安全 工控安全

特色

头条 人物志 活动 视频 观点 招聘 报告 资讯 区块链安全 标准与合规 容器安全 公开课

官方公众号企业安全新浪微博

FreeBuf.COM网络安全行业门户,每日发布专业的安全资讯、技术剖析。

FreeBuf+小程序

FreeBuf+小程序

如何使用DLLHijackingScanner检测DLL劫持漏洞和受信目录利用
2022-01-05 11:44:46
所属地 广西

关于DLLHijackingScanner

DLLHijackingScanner是一款功能强大的DLL劫持漏洞和受信目录利用检测工具,该工具本质上来说是一个PoC概念验证,可以帮助研究人员通过DLL劫持技术绕过UAC,来检测目标设备是否容易受到DLL劫持。除此之外,该工具还支持检测针对“受信任目录”的验证滥用。

工具下载

该工具基于Python开发,因此我们首先需要在主机环境中安装并配置好Python环境。接下来,使用下列命令将该项目源码克隆至本地:

git clone https://github.com/SecuProject/DLLHijackingScanner.git

从CSV生成Header

项目提供的Python脚本-CsvToHeader.py可以用来生成一个Header文件,该工具默认将使用dll_hijacking_candidates.csv

脚本将会检测每一个PE的下列状态:

1、PE是否存在于文件系统;

2、在PE的manifest中,requestedExecutionLevel是否被设置为了下列其中一个值:

asInvoker

highestAvailable

requireAdministrator

3、manifest中autoElevate的值是否被设置为了true:

<autoElevate>true</autoElevate>

4、用户是否设置了-c参数,脚本将会检测PE表中导入的DLL是否存在DLL劫持;

工具参数

> python .\CsvToHeader.py -h

usage: CsvToHeader.py -f [DLL_PATH] -c

 

CsvToHeader can be used to generate a header file from a CSV.

 

optional arguments:

  -h, --help      show this help message and exit

  -f  [DLL_PATH]  Path of the csv to convert (default="dll_hijacking_candidates.csv")

  -c              Enable import dll in PE (default=False)

  -v, --version   Show program's version number and exit

我们可以使用下列命令可以生成Header文件:

python CsvToHeader.py > dll_hijacking_candidates.h

生成存在漏洞的PE和DLL

这个过程需要使用到的文件为DLLHijacking.exe和test.dll。

DLLHijacking.exe

DLLHijacking.exe用于生成存在漏洞的PE列表,它将会执行下列操作:

1、在C:\windows \system32目录下创建伪造的目录;

2、向新创建的目录中拷贝文件:

C:\windows\system32\[TARGET.EXE] -> C:\windows \system32\[TARGET.EXE]

[CUSTOM_DLL_PATH] -> C:\windows \system32\[TARGET.DLL]

3、触发器:通过C:\windows \system32\[TARGET.EXE]运行可执行文件;

4、清除伪造的目录:删除第一步创建的目录和第二步创建的文件;

5、检查漏洞利用:检查C:\ProgramData\exploit.txt的文件内容,并查看漏洞利用是否成功。

日志文件

DLLHijacking.exe将使用下列内容生成exploitable.log日志文件:

1、0或1代表漏洞利用(绕过UAC)是否成功。

2、可执行程序名称。

3、DLL文件名,例如:

1,computerdefaults.exe,PROPSYS.dll

0,computerdefaults.exe,Secur*32.dll

DLLHijacking.exe执行

DLLHijacking.exe [DLL_PATH]

如果没有指定参数,脚本将直接使用test.dll。

运行结果

测试平台为Windows 10专业版(10.0.19043 N/A Build 19043):

test.dll

test.dll是一个简单的动态库,可以用来判断漏洞利用是否成功。DLL将使用下列内容来创建C:\ProgramData\exploit.txt文件:

1、0或1代表漏洞利用(绕过UAC)是否成功。

2、可执行程序名称。

3、DLL文件名。

这个文件将会在漏洞利用成功后被删除。

项目地址

DLLHijackingScanner:GitHub传送门

参考资料

https://www.wietzebeukema.nl/blog/hijacking-dlls-in-windows

https://github.com/wietze/windows-dll-hijacking/

https://github.com/wietze/windows-dll-hijacking/blob/master/dll_hijacking_candidates.csv

https://medium.com/tenable-techblog/uac-bypass-by-mocking-trusted-directories-24a96675f6e

# DLL劫持 # UAC绕过 # DLL安全
本文为 独立观点,未经允许不得转载,授权请联系FreeBuf客服小蜜蜂,微信:freebee2022
被以下专辑收录,发现更多精彩内容
+ 收入我的专辑
+ 加入我的收藏
相关推荐
  • 0 文章数
  • 0 关注者
文章目录