0x00 前言
最近看到了一篇有趣的文章《Abusing Exported Functions and Exposed DCOM Interfaces for Pass-Thru Command Execution and Lateral Movement》,介绍了利用rundll32.exe加载url.dll,通过导出函数OpenURL执行程序的方法。于是我对此做了研究,整理成文,解决以下问题:
-
利用rundll32执行程序的细节和原理
-
利用脚本批量扫描dll,查找能够执行程序的dll
0x01 简介
本文将要介绍以下内容:
-
rundll32加载dll的用法
-
OpenURL的用法
-
API ShellExecute的用法
-
三者结合实现通过rundll32直接执行程序
-
寻找其他可用的导出函数
-
利用powershell脚本批量获得dll的导出函数,筛选特定dll
0x02 相关细节
1、rundll32加载dll的用法
官方文档:
https://support.microsoft.com/sk-sk/help/164787/info-windows-rundll-and-rundll32-interface
用法:
rundll32 <dllname>,<entrypoint> <optional arguments>
参数<entrypoint>代表传入dll的导出函数名,在dll中定义如下:
voi