常用流量分析

流量分析

CS流量特征

对比正常的http流量,CS的http通信流量具有以下几个特征:

一. 心跳包特征

  1. 间隔一定时间,均有通信,且流级上的上下行数据长度固定;

二. 域名/IP特征

  1. 未走CDN、域前置的,域名及IP暴露

  2. 走CDN、域前置的,真实IP会被隐藏;

三. 指令特征

  1. 下发指令时,通过心跳包接收指令,这时,server端返回的包更长,甚至包含要加载的dll模块数据。

  2. 指令执行完后,client端通过POST请求发送执行的结果数据,body部分通过加密和base64编码。

  3. 不同指令,执行的时间间隔不一样,可以通过POST请求和GET请求的间隔进行判断。

四. 数据特征

  1. 在请求的返回包中,通信数据均隐藏在jqeury*.js中。

菜刀:

菜刀(Chopper)是中国黑客圈内使用非常广泛的一款Webshell管理工具。中国菜刀用途十分广泛,支持多种语言,小巧实用。

伪造 X-Forwarded-For头,每次利用X-Forwarded-For头都会不同

执行了 base64_decode 函数对 z0 进行 base64 后,经过 eval 函数执行命令

QGluaV9

@ini_set(“display_errors”

蚁剑:

蚁剑(AntSword)是一款功能强大的跨平台渗透测试工具,被广泛用于攻击和渗透测试活动。

如果用默认的蚁剑测试,连接时会请求两次

其请求体只是经过 url 编码

@ini_set(“display_errors”

在执行命令,文件操作等地方会有0x开头的参数

  1. 主要表现在HTTP协议上,使用HTTP协议通信,控制命令和数据都通过POST请求传输。因此,可以通过HTTP请求头中的User-Agent、Referer等信息进行识别,eval函数必不可少,有可能会被assert代替。
  2. 使用了base64的方式加密了发送给“菜刀马”的指令,其中的两个关键payload z1和z2,这个名字是可变的 。
  3. \(_POST/\)_GET/$_REQUEST

冰蝎:

冰蝎 (Behinder)是一款基于Java开发的动态加密通信流量的新型Webshell客户端,由于通信流量被加密,传统的WAF、IDS 设备难以检测,给威胁狩猎带来较大挑战。

  1. 流量特征主要表现在数据包中的特殊标记和传输的数据类型。冰蝎的数据包中包含了特定的标记,如“flag=0x52415631“,用于标识该数据包是冰蝎的控制命令。此外,冰蝎还使用了一种自定义的二进制协议,在通信中传输各种类型的数据
  2. 看包没有发现什么特征,但是可以发现它是POST请求的appication/xhtm1+xmlapplication/xmlapplication/signe1、Accept头有d-exchange属于弱特征 (UA头的浏览器版本很老)2、特征分析Content-Type: application/octet-stream 这是-个强特征查阅资料可知octet-stream的意思是,只能提交二进制,而日只能提交一个三进制,如果提交文件的话,只能提交一个文件,后台接收参数只能有一个,而且只能是流(或者字节数组) ; 很少使用14。
  3. 默认内置16个user-agent头。
  4. content-length请求长度,对于文件上传、命令执行来说加密参数不定长;但是对获取基本信息的payload都定长。

消息体内容采用 AES 加密

流量会以时间的方式生成长度 16 的随机 key

中间结果字符串 assert|eval(“phpinfo();”) 此数据由冰蝎加载器发出的,已经定义好的

冰蝎2.0

​ 默认Accept字段的值很特殊,而且每个阶段都一样冰蝎内置了十余种15userAgent ,每次连接 shel1 会随机选择一个进行使用。但都是比较老的,容易被检测到,但是可以在burp中修改ua头Content-Length:16,16就是冰蝎2连接的特征

冰蝎3.0

  1. 冰蝎3取消动态密钥获取,目前很多waf等设备都做了冰蝎2的流量特征分析,所以3取消了动态密钥获取;php抓包看包没有发现什么特征,但是可以发现它是POST请求的Accept。

  2. application/xhtm1+xmlapplication/xmlapplication/signed- exchange属于弱特征。

  3. ua头该特征属于弱特征。通过burp可以修改,冰蝎3.0内置的默认16个userAgent都比较老。现实生活中很少有人使用,所以这个也可以作为waf规则特征。

  4. jsp抓包特征分析Content-Type: application/octet-stream 这是一个强特征查阅资料可知 octet-stream的意思是,只能提交二进制,而且只能提交一个二进制,如果提交文件的话,只能提交 一个文件后台接收参数只能有一个,而且只能是流(或者字节数组)。

  5. content-length长度为5720或5740(随Java版本改变)

冰蝎4.0

  1. 10个内置ua头随机选用

  2. 端口为49700左右,每次连接会递增

  3. PHPwebshell存在固定代码

    $post=Decrypt(file_get_contents("php://input"));

    eval($post);

content字段中,将eval($post)作为流量特征纳入

  1. 请求头和响应头字节固定 请求头和响应头里会带有 Connection Connection: Keep-Alive

  2. webshell存在默认字符串,为默认连接密码的MD5的前16位

  3. Content-Type不再是二进制,改成urlencoded,但是是弱特征

哥斯拉

哥斯拉(Godzilla)由Java语言开发,内置了3种Payload以及6种加密器,6种支持脚本后缀,20个内置插件。

  1. 流量特征主要表现在数据包的特殊标记和数据类型。哥斯拉的数据包中包含了特定的标记,如“XORHEAD“和“XORBODY“,用于标识该数据包是哥斯拉的控制命令。此外,哥斯拉还使用了一种自定义的二进制协议,在通信中传输各种类型的数据。
  2. Cookie字段中存在一个关键的特征,即最后一个Cookie值的末尾有一个不必要的分号,在标准的HTTP请求中,最后一个Cookie的值后面不应该出现分号。
  3. 响应包结构特征:MD5前16位+base64+MD5后16位
  4. 注入内存马时有大量的URL请求,路径相同但参数不同,或者页面不存在但是返回200