ImpulsiveDLLHijack:一款基于C#实现的DLL劫持技术研究工具
<p><img title="ImpulsiveDLLHijack:一款基于C#实现的DLL劫持技术研究工具" alt="ImpulsiveDLLHijack:一款基于C#实现的DLL劫持技术研究工具" border="0" src="https://zhuji.jb51.net/uploads/img/202305/ec8bb131909100c7a563cdbe2c465e9a.jpg"></p>
<h3>
关于ImpulsiveDLLHijack</h3>
<p>
ImpulsiveDLLHijack是一款功能强大的DLL劫持技术安全研究工具,该工具基于C#开发实现,可以帮助广大研究人员以自动化的方式扫描、发现并利用目标设备二进制文件中的DLL安全问题,并实现DLL劫持。红队研究人员也可以利用该工具来识别劫持路径,并在定制工具中实现该技术以绕过EDR产品的检测。</p>
<h3>
工具机制</h3>
<p>
该工具能够通过下列两个自动化阶段步骤实现DLL劫持检测:</p>
<ul>
<li>
发现:寻找潜在的DLL劫持路径;</li>
<li>
利用:判断并确认DLL是否已从劫持路径加载,从而确定目标DLL劫持路径是否100%可利用;</li>
</ul>
<h3>
工具要求</h3>
<p>
exe:【点我获取】</p>
<p>
自定义DLL路径确认:下面这些DLL文件,可帮助工具确认DLL是否已从已识别的劫持路径成功加载:dll(从本项目的MalDLL目录中获取)、maldll64.dll(从本项目的MalDLL目录中获取)、PeNet(【点我获取】)</p>
<h3>
工具安装</h3>
<p>
首先,我们需要使用下列命令将该项目源码克隆至本地:</p>
<ol class="dp-xml">
<li class="alt">
<span><span>git clone https://github.com/knight0x07/ImpulsiveDLLHijack.git </span></span>
</li>
</ol>
<p>
接下来,在Visual Studio中导入ImpulsiveDLLHijack项目源码,然后点击"Project" --> "Manage NuGet packages" --> 浏览工具包并安装 "PeNet" -> https://www.nuget.org/packages/PeNet/</p>
<p>
然后构建项目,此时项目的bin目录中就会出现ImpulsiveDLLHijack.exe文件了。</p>
<p>
DLL路经确认:</p>
<p>
首先,我们需要使用下列命令将该项目源码克隆至本地:</p>
<ol class="dp-xml">
<li class="alt">
<span><span>git clone https://github.com/knight0x07/ImpulsiveDLLHijack.git </span></span>
</li>
</ol>
<p>
接下来,根据目标系统架构构建x86或x64版本。</p>
<p>
将x86编译结果重命名为maldll32.dll,将x64编译结果重命名为maldll64.dll。</p>
<p>
最后,将编译生成的路经确认DLL(maldll32 & maldll64)拷贝至ImpulsiveDLLHijack.exe目录下,然后执行ImpulsiveDLLHijack.exe即可。</p>
<h3>
工具使用</h3>
<p>
<img title="ImpulsiveDLLHijack:一款基于C#实现的DLL劫持技术研究工具" alt="ImpulsiveDLLHijack:一款基于C#实现的DLL劫持技术研究工具" border="0" src="https://zhuji.jb51.net/uploads/img/202305/b6ef7486d87819cdf04cea192e4daa00.jpg"></p>
<h3>
工具使用样例</h3>
<p>
目标可执行程序:OneDrive.exe</p>
<p>
(1) 操作阶段:DLL劫持路径发现</p>
<p>
<img title="ImpulsiveDLLHijack:一款基于C#实现的DLL劫持技术研究工具" alt="ImpulsiveDLLHijack:一款基于C#实现的DLL劫持技术研究工具" border="0" src="https://zhuji.jb51.net/uploads/img/202305/d6aff4b3763ca82c5fe7c7b3611fec2b.jpg"></p>
<p>
(2) 操作阶段:DLL劫持利用</p>
<p>
DLL劫持成功:</p>
<p>
<img title="ImpulsiveDLLHijack:一款基于C#实现的DLL劫持技术研究工具" alt="ImpulsiveDLLHijack:一款基于C#实现的DLL劫持技术研究工具" border="0" src="https://zhuji.jb51.net/uploads/img/202305/164f9243bf3459b54409fe071c1ebf3b.jpg"></p>
<p>
DLL劫持失败:</p>
<p>
<img title="ImpulsiveDLLHijack:一款基于C#实现的DLL劫持技术研究工具" alt="ImpulsiveDLLHijack:一款基于C#实现的DLL劫持技术研究工具" border="0" src="https://zhuji.jb51.net/uploads/img/202305/f2836a722db3374b4c45dabeaa108a1a.jpg"></p>
<p>
DLL没有以入口点进行加载,手动分析后即可成功实现DLL劫持:</p>
<p>
<img title="ImpulsiveDLLHijack:一款基于C#实现的DLL劫持技术研究工具" alt="ImpulsiveDLLHijack:一款基于C#实现的DLL劫持技术研究工具" border="0" src="https://zhuji.jb51.net/uploads/img/202305/83dedbb93e230a2f9ece3af074724d08.jpg"></p>
<p>
<img title="ImpulsiveDLLHijack:一款基于C#实现的DLL劫持技术研究工具" alt="ImpulsiveDLLHijack:一款基于C#实现的DLL劫持技术研究工具" border="0" src="https://zhuji.jb51.net/uploads/img/202305/5ad386234242e95269c7a256dca57270.jpg"></p>
<p>
(3) 操作阶段:最终结果和日志记录</p>
<p>
日志文件路径:C:\DLLLogs\output_logs.txt</p>
<p>
<img title="ImpulsiveDLLHijack:一款基于C#实现的DLL劫持技术研究工具" alt="ImpulsiveDLLHijack:一款基于C#实现的DLL劫持技术研究工具" border="0" src="https://zhuji.jb51.net/uploads/img/202305/2d544afefe240e5462c2e46b57af25cc.jpg"></p>
<h3>
项目地址</h3>
<p>
ImpulsiveDLLHijack:【GitHub传送门】</p>
<p>
原文链接:https://www.freebuf.com/articles/system/306075.html</p>
頁:
[1]