如何使用aDLL自動(dòng)識(shí)別DLL劫持漏洞

2022-10-13    分類: 網(wǎng)站建設(shè)

關(guān)于aDLL

aDLL是一款功能強(qiáng)大的代碼分析工具,可以幫助廣大研究人員以自動(dòng)化的方式識(shí)別并發(fā)現(xiàn)DLL劫持漏洞。該工具可以分析加載至內(nèi)存中的源碼鏡像,并在加載過程中搜索DLL,并且利用了微軟Detours代碼庫(kù)來攔截針對(duì)LoadLibrary/LoadLibraryEx函數(shù)的調(diào)用,然后分析在代碼運(yùn)行時(shí)過程中加載的DLL文件。

該工具的主要目標(biāo)就是幫助廣大研究人員搜索可執(zhí)行程序所使用的DLL列表,并從中識(shí)別出潛在的DLL劫持漏洞。如何使用aDLL自動(dòng)識(shí)別DLL劫持漏洞

DLL劫持攻擊

DLL劫持指的是,病毒通過一些手段來劫持或者替換正常的DLL,欺騙正常程序加載預(yù)先準(zhǔn)備好的惡意DLL。

首先我們要了解Windows為什么可以DLL劫持呢?主要是因?yàn)閃indows的資源共享機(jī)制。為了盡可能多得安排資源共享,微軟建議多個(gè)應(yīng)用程序共享的任何模塊應(yīng)該放在Windows的系統(tǒng)目錄中,如kernel32.dll,這樣能夠方便找到。但是隨著時(shí)間的推移,安裝程序會(huì)用舊文件或者未向后兼容的新文件來替換系統(tǒng)目錄下的文件,這樣會(huì)使一些其他的應(yīng)用程序無法正確執(zhí)行,因此,微軟改變了策略,建議應(yīng)用程序?qū)⑺形募诺阶约旱哪夸浿腥ィ灰ヅ鱿到y(tǒng)目錄下的任何東西。

為了提供這樣的功能,在Window2000開始,微軟加了一個(gè)特性,強(qiáng)制操作系統(tǒng)的加載程序首先從應(yīng)用程序目錄中加載模塊,只有當(dāng)加載程序無法在應(yīng)用程序目錄中找到文件,才搜索其他目錄。利用系統(tǒng)的這個(gè)特性,就可以使應(yīng)用程序強(qiáng)制加載我們指定的DLL做一些特殊的工作。

快速開始

首先,我們需要使用下列命令將該項(xiàng)目源碼克隆至本地:

git clone https://github.com/ideaslocas/aDLL.git

接下來,我們就可以在項(xiàng)目的Binaries文件夾中找到已編譯好的aDLL可執(zhí)行文件了。我們建議廣大用戶使用版本架構(gòu)(32為或64位)對(duì)應(yīng)的版本來分析目標(biāo)可執(zhí)行文件。

為了保證該工具可以正常運(yùn)行,我們必須將“hook32”、“hook64”、“informer*32”和“informer64”放置于“aDLL.exe”的相同目錄下。

工具要求

aDLL是在Windows 10操作系統(tǒng)平臺(tái)上開發(fā)和測(cè)試的,如果你所使用的操作系統(tǒng)版本比較老,或者沒有安裝Visual Studio的話,那么工具在運(yùn)行時(shí)可能會(huì)拋出例如“VCRUNTIME140.dll not found”之類的錯(cuò)誤,此時(shí)我們就需要安裝Visual C++ Redistributable更新了?!鞠螺d地址】

項(xiàng)目編譯

如需對(duì)項(xiàng)目代碼進(jìn)行修改或重新編譯,建議使用Visual Studio 2015或更高版本。

工具使用

該工具提供了一個(gè)-h選項(xiàng),可以幫助我們獲取aDLL全部可用的參數(shù)選項(xiàng):

.\aDLL -h

針對(duì)aDLL的使用,我們需要提供至少一個(gè)運(yùn)行參數(shù),即需要分析的可執(zhí)行程序路徑: .\aDLL -e "C:\System32\notepad.exe"

工具選項(xiàng) -h:顯示工具的幫助信息,并簡(jiǎn)要說明每個(gè)選項(xiàng)的功能。 -e:指定aDLL要分析的可執(zhí)行文件的路徑。 -t:指定文本文件的路徑,其中包含可執(zhí)行路徑列表。 -o:指定掃描報(bào)告的存儲(chǔ)目錄路徑,每個(gè)掃描的可執(zhí)行文件都將在其中存儲(chǔ)報(bào)告。 -m:搜索可執(zhí)行文件的清單列表并將其顯示在屏幕上。aDLL將會(huì)搜索嵌入在二進(jìn)制文件中的清單列表,如果清單列表作為外部文件存在,aDLL將無法找到該清單列表。 -w:定義在運(yùn)行時(shí)搜索加載的DLL時(shí)可執(zhí)行進(jìn)程保持打開狀態(tài)的秒數(shù)。默認(rèn)時(shí)間為20秒。 -aDLL:如果搜索到了待測(cè)DLL,則會(huì)自動(dòng)檢測(cè)該DLL是否會(huì)通過偽裝成合法DLL來執(zhí)行(惡意DLL偽裝)。 -d:與-a選項(xiàng)結(jié)合使用,此選項(xiàng)允許我們選擇惡意DLL的路徑。 -r:可執(zhí)行文件導(dǎo)入的每個(gè)DLL都可以作為依賴項(xiàng)導(dǎo)入其他DLL。將對(duì)aDLL找到的所有未重定向(ApiseSchema或WinSxS)且不屬于系統(tǒng)已知DLL列表的DLL進(jìn)行“n”次遞歸搜索。 項(xiàng)目地址

aDLL:【GitHub傳送門】

原文地址:https://www.freebuf.com/articles/system/306646.html

文章標(biāo)題:如何使用aDLL自動(dòng)識(shí)別DLL劫持漏洞
分享網(wǎng)址:http://www.muchs.cn/news/204896.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供品牌網(wǎng)站設(shè)計(jì)網(wǎng)站策劃、品牌網(wǎng)站建設(shè)、App開發(fā)、域名注冊(cè)網(wǎng)站排名

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源: 創(chuàng)新互聯(lián)

微信小程序開發(fā)