DLLHijackingScanner
UAC旁路-DLL劫持
DLLHijackingScanner是一款功能强大的DLL劫持漏洞和受信目录利用检测工具,该工具本质上来说是一个PoC概念验证,可以帮助研究人员通过DLL劫持技术绕过UAC,来检测目标设备是否容易受到DLL劫持。除此之外,该工具还支持检测针对“受信任目录”的验证滥用。
工具下载
该工具基于Python开发,因此我们首先需要在主机环境中安装并配置好Python环境。接下来,使用下列命令将该项目源码克隆至本地:git clone https://github.com/SecuProject/DLLHijackingScanner.git
摘要
- 从CSV生成报头
- 生成易受攻击的PE和dll列表。
- Test.dll
-
从CSV生成报头
Python脚本CsvToHeader.py可用于生成头文件。默认情况下,它将使用csv文件(dll_hijacking_candidates.csv.)。
脚本将检查每个可移植可执行文件(PE)的以下条件: 如果PE存在于文件系统中。
- 在PE的清单中,如果请求执行级别设置为下列值之一:
- asInvoker
- highestAvailable
- requireAdministrator
- 如果自动电梯设置为true,则在清单中:
true - 如果用户指定-c参数时,脚本将检查要劫持的DLL是否在从PE表导入的DLL列表中。
参数
```shell 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
要生成头文件,可以使用以下命令:
```shell
python CsvToHeader.py > dll_hijacking_candidates.h
生成易受攻击的PE和dll列表。
将使用的文件包括DLLHijacking.exe和test.dll。
DLLHijacking.exe
DLLHiJacking.exe是将用于生成易受攻击PE列表的文件。它将执行以下步骤:
- CreateFakeDirectory函数中创建目录的
C:\windows\system32
- 复制新目录中的文件
- 从
C:\windows\system32\[TARGET.EXE]
到C:\windows \system32\[TARGET.EXE]
- 从
[CUSTOM_DLL_PATH]
到C:\windows \system32\[TARGET.DLL]
- 从
- 触发器从
C:\windows \system32\[TARGET.EXE]
- CleanUpFakeDirectory函数,该函数删除步骤1中创建的目录和步骤2中的文件。
- 检查文件的内容
C:\ProgramData\exploit.txt
看看这次攻击是否成功。日志文件
DLLHiJacking.exe将始终生成一个日志文件exploitable.log内容如下:
- 0或1以指示利用程序是否能够绕过UAC。
- 可执行文件名称
- DLL名称
例如:
1,computerdefaults.exe,PROPSYS.dll
0,computerdefaults.exe,Secur32.dll
执行
命令运行:DLLHijacking.exe [DLL_PATH]
如果没有传递参数,脚本将使用dll。test.dll存储在DLLHijacking.exe.
结果
在Windows10Pro(10.0.19043 N/A Build 19043)上进行测试。
Test.dll
test.dll是一个简单的动态库,将用于查看攻击是否成功。
Dll将创建一个文件C:\ProgramData\exploit.txt
内容如下:
- 0或1以指示利用程序是否能够绕过UAC。
- 可执行文件名称
- DLL名称