ImpulsiveDLLHijack:一款基于C#實(shí)現(xiàn)的DLL劫持技術(shù)研究工具
關(guān)于ImpulsiveDLLHijack
ImpulsiveDLLHijack是一款功能強(qiáng)大的DLL劫持技術(shù)安全研究工具,該工具基于C#開發(fā)實(shí)現(xiàn),可以幫助廣大研究人員以自動化的方式掃描、發(fā)現(xiàn)并利用目標(biāo)設(shè)備二進(jìn)制文件中的DLL安全問題,并實(shí)現(xiàn)DLL劫持。紅隊研究人員也可以利用該工具來識別劫持路徑,并在定制工具中實(shí)現(xiàn)該技術(shù)以繞過EDR產(chǎn)品的檢測。
工具機(jī)制
該工具能夠通過下列兩個自動化階段步驟實(shí)現(xiàn)DLL劫持檢測:
- 發(fā)現(xiàn):尋找潛在的DLL劫持路徑;
- 利用:判斷并確認(rèn)DLL是否已從劫持路徑加載,從而確定目標(biāo)DLL劫持路徑是否100%可利用;
工具要求
exe:【點(diǎn)我獲取】
自定義DLL路徑確認(rèn):下面這些DLL文件,可幫助工具確認(rèn)DLL是否已從已識別的劫持路徑成功加載:dll(從本項目的MalDLL目錄中獲取)、maldll64.dll(從本項目的MalDLL目錄中獲取)、PeNet(【點(diǎn)我獲取】)
工具安裝
首先,我們需要使用下列命令將該項目源碼克隆至本地:
- git clone https://github.com/knight0x07/ImpulsiveDLLHijack.git
接下來,在Visual Studio中導(dǎo)入ImpulsiveDLLHijack項目源碼,然后點(diǎn)擊"Project" --> "Manage NuGet packages" --> 瀏覽工具包并安裝 "PeNet" -> https://www.nuget.org/packages/PeNet/
然后構(gòu)建項目,此時項目的bin目錄中就會出現(xiàn)ImpulsiveDLLHijack.exe文件了。
DLL路經(jīng)確認(rèn):
首先,我們需要使用下列命令將該項目源碼克隆至本地:
- git clone https://github.com/knight0x07/ImpulsiveDLLHijack.git
接下來,根據(jù)目標(biāo)系統(tǒng)架構(gòu)構(gòu)建x86或x64版本。
將x86編譯結(jié)果重命名為maldll32.dll,將x64編譯結(jié)果重命名為maldll64.dll。
最后,將編譯生成的路經(jīng)確認(rèn)DLL(maldll32 & maldll64)拷貝至ImpulsiveDLLHijack.exe目錄下,然后執(zhí)行ImpulsiveDLLHijack.exe即可。
工具使用
工具使用樣例
目標(biāo)可執(zhí)行程序:OneDrive.exe
(1) 操作階段:DLL劫持路徑發(fā)現(xiàn)
(2) 操作階段:DLL劫持利用
DLL劫持成功:
DLL劫持失?。?/p>
DLL沒有以入口點(diǎn)進(jìn)行加載,手動分析后即可成功實(shí)現(xiàn)DLL劫持:
(3) 操作階段:最終結(jié)果和日志記錄
日志文件路徑:C:\DLLLogs\output_logs.txt
項目地址
ImpulsiveDLLHijack:【GitHub傳送門】