繞過AppLocker系列之MSBuild的利用
Microsoft已經在.NET框架中發布了許多可以編譯和執行代碼的二進位文件。最初引入了MSBuild,以便開發人員在不安裝Visual Studio的環境中構建產品。具體來說,這個二進位文件可以編譯XML C#項目文件,因為它有一個名為Tasks的方法,可以執行一個寫入託管代碼的任務。但是,由於此方法可以操作代碼而且MSBuild是受信任的Microsoft二進位文件並且可以執行代碼,因此,攻擊者可能會濫用它,用來繞過AppLocker和其他應用程序白名單解決方案(如Device Guard)。
Casey Smith最初發現了這種繞過方法,他已經發布了幾個存儲庫,可以作為概念驗證來執行代碼並繞過AppLocker限制。
ShellCode
可以使用Metasploit MSFVenom來生成C#shellcode,它將在目標系統上執行,以獲得Meterpreter會話。
生成C#Shellcode
上面的shellcode可以包含在XML文件中,該文件包含了MSBuild編譯和運行的代碼。該文件需要保存為.csproj並通過MSBuild執行,以返回Meterpreter會話:
通過MSBuild執行ShellCode
通過MSBuild獲得Meterpreter會話
PowerShell
使用和上述相同的方法,也可以在cmd被禁用的情況下,參照Casey Smith和Cneelis的方法來執行PowerShell 。
Pshell :
通過MSBuild 執行 PowerShell
MSBuildShell – Cn33liz和Casey Smith
MSBuild – MSBuildShell
MSBuildShell
作為這個繞過方式的擴展,Nick Tyler發布了一個修改版本的PSAttack工具,該工具是攜帶型的PowerShell滲透測試框架,可用於對受限制的系統執行進一步的攻擊。
MSBuild – 執行PSAttack
MSBuild – PSAttack
Mimikatz
除了PowerShell之外,還可以執行Mimikatz,直接從內存獲取明文密碼。
MSBuild – 執行Mimikatz
MSBuild – Mimikatz
通過執行以下命令,Mimikatz將檢索任何登錄憑據:
mimikatz # sekurlsa::logonpasswordsn
資源
1. Cn33liz/MSBuildShell
2. 3gstudent/msbuild-inline-task
3. Cn33liz/MS17-012
4. http://subt0x10.blogspot.co.uk/2017/04/bypassing-application-whitelisting.html
本文翻譯自:AppLocker Bypass – MSBuild ,如若轉載,請註明來源於嘶吼: 繞過AppLocker系列之MSBuild的利用 更多內容請關注「嘶吼專業版」——Pro4hou
推薦閱讀:
※APT34攻擊再升級,利用CVE-2017-11882漏洞攻擊中東國家
※發現隱藏在偽造的Flash更新中的持續威脅
※64位系統下的Office後門利用
※Apache爆「OptionsBleed」出血漏洞,設置不當可導致內存信息泄漏