DLL 攻擊漫談 || 什么是 DLL 攻擊 ? DLL 攻擊利用過程
動態鏈接庫(DLL)的方式以及Windows API指示使用它們的方式都可以用作任意代碼執行的接口,并協助惡意行為者實現其目標。
動態鏈接庫是Microsoft實施共享庫的產品。
這些庫通常具有文件擴展名DLL,并且它們也是PE文件,與exe文件完全一樣。
DLL可以包含PE文件可以包含的任何類型的內容,這些內容可能與代碼,資源或數據的任何組合不同。
DLL主要用于在系統上的應用程序和進程之間共享此內容,以便在為Windows創建應用程序時為程序員提供高度的靈活性。
DLL以相同的訪問權限在調用過程的內存中執行。這意味著,如果DLL包含任何異常,則不會為調用EXE提供任何保護。惡意攻擊者可以通過使用諸如DLL劫持或DLL代理之類的方法來執行其惡意代碼來利用這一事實。
DLL搜索順序簡介
在整個日常工作中,我們將大量流程加載到我們的系統中。使用Windows操作系統時,進程加載算法的關鍵步驟包括將動態鏈接庫(DLL)加載到內存中,以利用其功能并滿足其進程與DLL之間的依賴關系。每當啟動進程時,都會發生此操作。
Windows操作系統可能包含同一DLL的大量版本。由于一個系統可能承載可能需要同一個DLL的許多進程這一事實,因此應采用一種系統來確保從正確的路徑加載所需的DLL,同時確保已找到該DLL的最相關版本。
應用程序制造商通過使用LoadLibraryExA或LoadLibraryA函數來使用加載特定庫的操作。這些函數接收一個路徑參數,該參數導致所請求的DLL,并向調用過程返回模塊的句柄。
1.當前目錄
2.啟動過程的目錄
3.C:\ Windows \ System32
4.C:\ Windows \ System
5.C:\ Windows
6.“ PATH”的SYSTEM環境變量中包含的目錄
7.USER環境變量“ PATH”中包含的目錄
DLL攻擊
DLL包含要由加載過程執行的代碼,這會造成一種情況,即可以利用丟失的DLL或以不安全的方法實現的DLL來誘騙正在運行的系統執行惡意有效負載,在這種情況下,它利用本機DLL搜索順序。惡意行為者可能會使用此技術來加載自己的DLL,該DLL可能包含任何類型的代碼。
攻擊利用過程
當我們確定某個進程按某個搜索順序搜索DLL,并且缺少DLL 或者錯誤實現的DLL的進程之后,才能夠進行下一步攻擊
第一步:確定DLL
首先,我們從Sysinternals設置ProcMon來篩選未找到以DLL結尾的路徑的任何操作:

ProcMon下載:https://docs.microsoft.com/en-us/sysintern...
我們可以看到“ Bginfo64.exe”找不到的對應DLL。

第二步:查找DLL和利用
在查找這些DLL時,得出的結論是Riched32.DLL是非本地DLL,因此,注冊表中沒有該DLL的默認搜索路徑。但是如果我們正確配置它,系統最終也會加載它。
現在所需要做的就是在請求的路徑中創建該DLL:

那么我們在請求路徑中創建該DLL(Riched32.dll),為了方便演示,我們的DLL
如果執行了,就彈窗 hello HBT黑白天 來證明我們的DLL可以執行命令
#define WIN32_LEAN_AND_MEAN
我們把這個DLL命名為Riched32.dll放進Bginfo64.exe的dll文件夾中。
然后重新打開進程“ Bginfo64.exe。

出現該消息框,并且我們可以觀察到該進程加載了DLL:

那如果我們的DLL中包含惡意代碼呢。是不是可以繼承Bginfo64.exe執行命令??
最后一步:拿一個shell
確定了進程和易受攻擊的路徑之后,所缺少的就是創建我們希望執行的DLL有效負載。
我們可以使用一個“ DLLicious”的工具(https://github.com/J3wker/DLLicous-MaliciousDLL)來快速編譯包含的shell的DLL
用法
用法非常簡單,只需使用Python3或“。\ DLLicous.py”運行腳本
我們可以使用
1.用C語言將反向Shell編寫DLL
2.Base64nc.exe 對NC二進制文件進行編碼和解碼,然后將其寫入
DLL的工作目錄中,然后從該目錄中發起攻擊。另一個新功能是:nc.exe在DLL中也包含base64代碼,而不是從Web下載或從SMB服務器復制它。

通過使用PowerShell和DLL代碼中包含的NetCat的反向Shell
并嘗試與kali上的偵聽器聯系,然后使用PowerShell打開shell
我們可以看到執行劫持的進程后,將加載DLL并打開shell:

https://www.cynet.com/attack-techniques-ha...
https://github.com/J3wker/DLLicous-Malicio...
https://docs.microsoft.com/en-us/sysintern...
原創:李木 黑白天
原文鏈接:https://mp.weixin.qq.com/s/Wp3345NNCZUsgCu...