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