对称加密蚁剑使用

极客

对称加密与蚁剑的“相爱相杀”:我的WAF绕过实战手记

哎,兄弟们,今天咱们不聊那些虚头巴脑的理论,直接上干货!前几天拿下一个靶标,过程那叫一个曲折——明明已经拿到了webshell,结果蚁剑一连上就被WAF给拦了,气死我了!后来我静下心来一想,问题就出在对称加密蚁剑流量特征上,今天就把这段心路历程掰开揉碎了讲给你们听,尤其是那些刚入门的兄弟,这绝对是你们绕不过去的坎儿!

一开始我天真了:蚁剑默认流量有多“裸奔”?

说实话,最开始我用蚁剑的时候,内心是有点膨胀的,毕竟这玩意儿GUI友好,插件多,简直是为渗透测试量身定做的,兄弟们,你们有没有想过,蚁剑默认的连接方式,它的数据包特征简直是“明牌”!什么evalassertbase64_decode这些函数名,在流量里就跟大白天穿个荧光背心一样显眼,WAF又不是瞎子,一抓一个准!

我当时那个急啊,汗水都快滴到键盘上了,明明命令都执行成功了,回显就是不出来,或者直接给你个403,那种感觉,就像你隔着门缝跟女朋友说话,明明听见她声音了,就是推不开那扇门——急死个人!

破局关键:对称加密算法,我的“隐形衣”

冷静下来之后,我猛地一拍大腿:哎呀,这不还有对称加密这招吗?当时我脑子里就像过电一样,寻思着,如果我把传给蚁剑的“密码本”和“数据”都用同一个密钥加密,那WAF看到的不就是一坨乱码吗?它总不能连乱码也拦吧哈哈!

这里我得给新手兄弟提个醒,对称加密的特点是加密和解密用同一个密钥,速度快,效率高,咱们常用的AES、DES都是这个家族,蚁剑本身是支持自定义编码器和解码器的,这就是我们的突破口!

我选的是AES-128-CBC加密,然后自己撸了一个PHP的编码器,关键函数就这么几个:openssl_encryptopenssl_decrypt,再加上一个pack拼凑IV,你们别看代码就几行,作用可大了去了!我把原本明晃晃的eval($_POST['pass']),硬生生变成了:

$key = "s3cr3t_k3y_2024!";
$iv = substr(md5(uniqid()), 0, 16);
$data = openssl_decrypt(base64_decode($_POST['data']), 'AES-128-CBC', $key, 0, $iv);
eval($data);

这下好了,所有交互数据全是CBC模式加密后的密文,别说WAF了,就连我自己抓包看,都是一脸懵——这啥玩意儿?天书啊!

蚁剑配置实操:那一瞬间的“颅内高潮”

光有服务端脚本还不够,蚁剑客户端也得改设置,这里我摸索了好一会儿,差点又急得跳脚,你们记住,在蚁剑里右键连接,选择“编码器管理”,然后新建一个编码器,类型选PHP,把解密逻辑写进去。

具体代码我就不全贴了,但核心思路就是:发送数据前,用密钥对payload进行AES加密,然后base64编码塞进POST里;接收回显时,再用同样的密钥解密响应内容,这个过程你得确保密钥一致,IV的处理也要对,不然就是加密方和接收方“对牛弹琴”,全乱套了。

当我看到蚁剑终端里成功回显出www-data的whoami结果时,哎呀妈呀,那感觉,比夏天喝冰可乐还舒坦!瞬间就觉得,这世上哪有什么WAF,只是你的姿势不对罢了!

实战心得:别高兴太早,还有坑!

不过兄弟们,用对称加密也不是万能药,有一次我IP没换,频繁请求,结果被云锁盯上了,直接把我IP封了半小时,这告诉我一个道理:加密只能藏住“内容”,藏不住“行为”,你得模拟正常浏览器的频率,或者配合代理池,不然就是活靶子。

密钥管理千万别写死在代码里!一旦目标被日,别人看着你源码里的key,那你的加密就跟没有一样,我有次就犯了这毛病,把key硬编码在了连接密码后面,结果被同行吐槽了老半天——那叫一个羞愧啊!

小结与闲聊

对了,最后说点掏心窝子的话,学网络安全这东西,尤其是Web狗,真的得把流量分析加密算法玩明白,蚁剑只是个工具,怎么让它变得更“隐形”,完全取决于你对对称加密底层逻辑的理解。

今天分享这段经历,就是希望你们少走点弯路,别像我似的,一开始愣头青一个,玩这行,细节决定成败,加密不是银弹,但却是你对抗WAF最有力的“护甲”。

好了,兄弟们,如果你们在搭建自己的“加密信道”时遇到问题,或者想聊聊免杀、绕WAF的心得,随时欢迎来找我扯淡,代码是死的,人是活的,多交流才能进步嘛!

对称加密蚁剑使用

学习网络安全可以加QQ:123456789(记得备注“CSDN来的”)

文章版权声明:除非注明,否则均为咸鱼-即刻攻防原创文章,转载或复制请以超链接形式并注明出处。

目录[+]

取消
微信二维码
微信二维码
支付宝二维码