[免杀]使用Unicode编码免杀JAVA、JSP、Aspx、.NET

admin 2023年3月8日09:55:47评论228 views字数 2301阅读7分40秒阅读模式

LadonGUI 9.2.0 20220820
[+]Encode        加密解密 新增Unicode编码解码
[+]Encode        文件转Hex编码、Hex转文件功能
[+]Encode        加密解密 新增URL编码解码功能

[免杀]使用Unicode编码免杀JAVA、JSP、Aspx、.NET


在开发过程中时常会遇到"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解析了换行编码

[免杀]使用Unicode编码免杀JAVA、JSP、Aspx、.NET


我们对cmd变量编码后,访问webshell依然正常,说明成功解析编码

[免杀]使用Unicode编码免杀JAVA、JSP、Aspx、.NET



继续将变量转成unicode编码,测试连接uashell执行命令成功


[免杀]使用Unicode编码免杀JAVA、JSP、Aspx、.NET


接下来我们对执行命令的敏感函数 Runtime.getRuntime().exec 部分字符串编码,这样就可以过一些WAF或杀软了,因为它匹配不到危险函数,除非它对unicode也做了研究或内存拦截,或者遇到一些比较Low的杀软,由于检测能力不强,发现出现unicode编码就杀,就像发烧就直接定义成新冠。


Runtime.getu0052u0075u006etime().eu0078u0065c(cccc);


[免杀]使用Unicode编码免杀JAVA、JSP、Aspx、.NET

不只是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编码免杀JAVA、JSP、Aspx、.NET



为了方便大家,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

  • 左青龙
  • 微信扫一扫
  • weinxin
  • 右白虎
  • 微信扫一扫
  • weinxin
admin
  • 本文由 发表于 2023年3月8日09:55:47
  • 转载请保留本文链接(CN-SEC中文网:感谢原作者辛苦付出):
                   [免杀]使用Unicode编码免杀JAVA、JSP、Aspx、.NEThttp://cn-sec.com/archives/1245880.html

发表评论

匿名网友 填写信息