蚁剑的小tip
2023-4-15 00:54:48 Author: 白帽子(查看原文) 阅读量:27 收藏

STATEMENT

声明

由于传播、利用此文所提供的信息而造成的任何直接或者间接的后果及损失,均由使用者本人负责,雷神众测及文章作者不为此承担任何责任。

雷神众测拥有对此文章的修改和解释权。如欲转载或传播此文章,必须保证此文章的完整性,包括版权声明等全部内容。未经雷神众测允许,不得任意修改或者增减此文章内容,不得以任何方式将其用于商业目的。

前言

蚁剑的小tip:
在某次hvv中,看到大佬在连接木马的时候,使用了编码器绕过waf,所以学习一波这个知识点。

调试过程

蚁剑抓包分析

设置代理

以default和base64为例,蚁剑burp代理看一下各自数据包。

测试测试
下面使用dvwa网站测试一下

点击测试连接使用bp进行拦截

对内容进行解码、整理

执行结果如下

看到如下信息
1.输出了当前脚本的目录
2.判断了操作系统
3.获取了当前用户信息
4.在输出首尾加上了随机的字符串
asenc函数,这个函数是对传输数据或者说执行结果进行编码/加密的函数
双击连接
测试连接成功后即可保存数据再双击连接一句话木马。这里我们分析这个步骤发送的数据包。
这里需要注意的是分析数据包的过程中要把缓存清空,否则有部分数据包会分析不到。
第一个数据包

和测试连接的包一样

第二个数据包

返回的是目录,对代码进行解码

所以这个数据包是得到了当前路径下的文件和文件夹,以及对应的修改时间、大小和权限。
这个路径是用一个参数(我这里是0x5e7e045021ad4)传递的,所以修改参数可以得到对应路径的内容。
但是这里这个参数也是随机的,每次访问都不一样。
文件夹以/结尾,文件以后缀结尾。
还有很多操作,比如打开文件夹,打开文件,修改文件,下载文件,删除文件,上次文件,打开终端,都有对应不同的源码,有兴趣可以自己抓包尝试。

自定义编码器

蚁剑编码器这个概念类似于msfvenom中的encoder,将攻击载荷加密或者编码实现免杀,绕过一些防御手段,例如waf、防火墙等等。
default编码如下,直接将payload传输过去。

base编码

对内容进行url解码,然后base64解码,如下

_0x0a43d6b6c37e3_参数的内容和default的是一样的,进行的操作只是用_0x0a43d6b6c37e3_这个随机数代替这串base64编码后的payload,如此实现一个流量的混淆视听。
查看一下蚁剑官方编码部分的源码。

shell所有传递的参数都是在data列表中的,需要执行的代码在 data[''] 中,

Buffer.from(data['_']).toString('base64') 将data[‘’]中的代码读取并进行base64编码,
然后下面的 data[pwd] 以参数的形式传递到服务器将data[‘_’]中的代码在服务器端解码并执行,所以shell仍旧可以是 “”。

虽然data[‘_’]中的代码都是base64编码了,但是data[pwd] 是作为参数传递的,
所以这里在流量中 data[pwd] 仍是明文传输,可以看到请求参数的最后一个变量是‘v=eval(base64_decode(%24_POST%5B_0xad20764d61ddd%5D))%3B_’,这显然是过不了WAF的。
简单的修改一下编码器,将明文传输的v参数放弃。
我们可以对其进行改造。
构造随机字符串+传输数据base64的效果,只要被抓取的流量无法被直接正常分析就可以了

编码器选择我们设置的,观察流量,内容的前面13位是我们随机生成的字符串,后面才是我们真正传过去的内容

弄好蚁剑端的加密,还需要设置自己木马的格式,配合蚁剑,此时上传的木马应该是这种格式的了,这只是一个demo,正常情况下还需要免杀(现在一般都需要配合类的析构函数去实现一下)

安恒信息

杭州亚运会网络安全服务官方合作伙伴

成都大运会网络信息安全类官方赞助商

武汉军运会、北京一带一路峰会

青岛上合峰会、上海进博会

厦门金砖峰会、G20杭州峰会

支撑单位北京奥运会等近百场国家级

重大活动网络安保支撑单位

END

长按识别二维码关注我们


文章来源: http://mp.weixin.qq.com/s?__biz=MzAwMDQwNTE5MA==&mid=2650246637&idx=1&sn=087991b0d3d101e2153a254c3dc6f8ec&chksm=82ea5644b59ddf526719a72314c8befa703d3e9a8da03ad66a5c9317df58e359dedd1292915e#rd
如有侵权请联系:admin#unsafe.sh