LadonGUI 9.2.0 20220820
[+]Encode 加密解密 新增Unicode编码解码
[+]Encode 文件转Hex编码、Hex转文件功能
[+]Encode 加密解密 新增URL编码解码功能
在开发过程中时常会遇到"Uxxxx"格式表示的字符,实际上"xxxx"是字符的Unicode码的十六进制表示方式。这种表示称为"Unicode转义字符"。
例如"A"对应的Unicode码为65(十进制),转换后为"U0041"。
C#字符串Unicode转义序列编解码
private void button1_Click(object sender, EventArgs e)
{
textBox2.Text = EscapeUnicode(textBox1.Text);
}
public string EscapeUnicode(string str)
{
StringBuilder tmp = new StringBuilder();
for (int i = 0; i < str.Length; i++)
{
ushort uxc = (ushort)str[i];
tmp.Append(@"u" + uxc.ToString("x4"));
}
return (tmp.ToString());
}
public string UnescapeUnicode(string str)
{
return (System.Text.RegularExpressions.Regex.Unescape(str));
}
private void button2_Click(object sender, EventArgs e)
{
textBox2.Text = UnescapeUnicode(textBox1.Text);
}
JAVA程序或JSP脚本 unicode编码免杀
// u000du000a String pass = "k8";
看这行代码,表面上看是注释,实际上被java解析了换行编码
我们对cmd变量编码后,访问webshell依然正常,说明成功解析编码
继续将变量转成unicode编码,测试连接uashell执行命令成功
接下来我们对执行命令的敏感函数 Runtime.getRuntime().exec 部分字符串编码,这样就可以过一些WAF或杀软了,因为它匹配不到危险函数,除非它对unicode也做了研究或内存拦截,或者遇到一些比较Low的杀软,由于检测能力不强,发现出现unicode编码就杀,就像发烧就直接定义成新冠。
Runtime.getu0052u0075u006etime().eu0078u0065c(cccc);
不只是JAVA、JSP,对于C#、aspx也可以采用unicode编码免杀,只要稍微多做些研究测试,也可以写成一键自动化免杀工具。
.net程序或aspx脚本 Unicode编码免杀
同理我们也可以尝试将.net程序的Process.Start方法编码,看是否可正常执行
using System;
using System.Collections.Generic;
using System.Text;
namespace K8gege
{
class Program
{
static void Main(string[] args)
{
System.Diagnostics.Process.u0053u0074u0061u0072u0074("calc");
}
}
}
编译以上代码,发现可正常执行并弹出我们指定的计算器,
为了方便大家,Unicode编码已集成到LadonGUI 9.2.0 20220820版本,没必要一个功能就写一个工具,显得自己工作量很大,写了很多工具很牛B的样子,类似这些功能也就几行代码而已,懂的都懂。工具太多,找起来也不方便,同一类功能写在同一个工具里,用不同按钮来表示就完了。
实战使用,大家可以自己对的其它函数进行处理,本文只教一个,要学会举一反三,就像教你怎么削一个苹果皮,给你换个梨、芭乐果你就不会了?又不是换语言,比如说给你榴莲,这把刀就未必通用了。所以有时候不用问,教你一个,其它你自己上机操作测试,不要用猜的。。。很多语言可能都通用,当然具体哪种语言也可以采用unicode编码,需要你自己尝试。
小结
脚本免杀思路,无非是把杀软查杀的危险函数、变量、特征字符串加密,当然不加密也可以,顺序打乱,字符串随机让杀软不定义为特征也可以,免杀方法不是只有加密。如果是M,加密整个程序、shellcode,或者对m里面的危险函数做加密等,实在不行,Low一点将程序分离成几份来做免杀也是可以的。几年前我发布过的教程什么vbs、powershell、python免杀shellcode等,是不是和本文思路差不多,只要加密了,WAF或杀软就不认识了,达到绕过WAF或免杀的目的。
能保证100%免杀吗?当然不行
有可能遇到一种Low杀软,看到加密直接嘎嘎乱杀,刚接触的人反百会认为是它太牛B才杀,其实是因为它不够了解“新冠”,才导致见到感冒就当成新冠来处理。不知道大家有没经历过,当年因为一个字符串,比如"k8"就被杀软当病毒杀,可是我整个程序只是一个hello world而已,就因为程序名称为k8.exe,你告诉我这不是乱杀是什么?而有些是杀图标,当然现在那些杀软进步了,不至于这么垃圾的方法查杀了。但是可能也会有新的杀软,或者杀软公司招了新人来维护,他无法处理某种免杀方法,可能就会采用乱杀的方法。这种情况不要说你的免杀,正常程序采用unicode编码也会被杀。
原文始发于微信公众号(K8实验室):[免杀]使用Unicode编码免杀JAVA、JSP、Aspx、.NET
- 左青龙
- 微信扫一扫
-
- 右白虎
- 微信扫一扫
-
评论