蚁剑:
1.使用了AES加密算法对数据进行加密,同时还使用了自定义的二进制协议,存在eval这种明显的特征
2.默认的USER-agent请求头 是 antsword xxx,但是 可以通过修改:/modules/request.js 文件中 请求UA绕过
3.最明显的特征为@ini_set(“display_errors”,“0”);这段代码基本是所有webshell客户端链接PHP类Webshell都有的一种代码
4.蚁剑混淆加密后还有一个比较明显的特征,即为参数名大多以"_0x"这种形式,所以以_0x开头的参数也很可能就是恶意流量。
冰蝎:
冰蝎2.0:
2.0的话一般是是随机秘钥的每次请求都是随机的秘钥的、并且是AES对称加解密的、怎么个随机法、可以这样理解:
1、冰蝎2默认Accept字段的值很特殊,而且每个阶段都一样
Accept: te/html, ima/gif, ima/jpeg, *; q=.2, /**; q=.2
2、Content-Length
Content-Length: 16, 16就是冰蝎2连接的特征
3、流量特征共分为两次get请求,第一次请求服务端产生密钥写入session,第二次请求用于获取key、然后通过每次获取的key进行aes加密再base64传输、特征的话就是每次请求都是不同的Accept、如果发现同一ip多次不同Accept就可能有问题了、
冰蝎3.0:
冰蝎3.0变了、变成固定秘钥了、变成默认的秘钥rebeyond了、但是也可以改的、并且秘钥是拿MD5(rebeyond)的MD5值的前16位作为AES的秘钥进行加密再base64传输、特征的话就是每次请求都是不同的Accept、如果发现同一ip多次不同Accept就可能有问题了、
冰蝎4.0:
冰蝎4.0就变了、是自定义传输协议的、因为传输的内容含有key:vule 这样的json字符串、所以如果是默认key的情况下(默认时,所有冰蝎4.0 webshell都有“e45e329feb5d925b” 一串密钥。该密钥为连接密码32位md5值的前16位,默认连接密码rebeyond)请求体和响应体含有:
请求字节头:
dFAXQV1LORcHRQtLRlwMAhwFTAg/M
响应字节头:
TxcWR1NNExZAD0ZaAWMIPAZjH1BFBFtHThcJSlUXWEd
如何判断一般都是长连接:Connection: Keep-Alive
每次连接使用本地端口在49700左右,每连接一次,每建立一次新的连接,端口就依次增加。每次请求都是不同的Accept、如果发现同一ip多次不同Accept就可能有问题了、
哥斯拉:
第三步具体分析:
数据加密过程如下:
响应的数据是MD5(密码+MD5(key)的前16位)的值分成两份16位、是md5前16位+加密数据+md5后16位。
说到这哥斯拉也有特殊就是、请求包的Cookie中有一个非常致命的特征,分号!
而且一般哥斯拉回出现pass=这个字段。
补充:
哥斯拉使用的是ICMP协议数据报文,而ICMP流量本身就不高,所以较难在大流量中检测
ICMP数据报文的载荷部分Length值固定为92字节,这是它的重要特征