经典webshell流量特征

时间:2023-06-14 12:18:47       来源:博客园


(资料图片仅供参考)

开门见山,不说废话

判断条件

是否符合通信的特征请求加密的数据和响应包加密的类型一致是否一直向同一个url路径发送大量符合特征的请求,并且具有同样加密的响应包

一 、蚁剑

特征为带有以下的特殊字段
第一个:@ini_set("display_errors","0");第二个:eval
在编码器和解码器都是default的状态下,是最容易看出来的一种情况
可以看到在下图中,请求包和返回包都是明文。也就是说一眼就能看出来是蚁剑的流量
实际上在antword中只要编码器为default,那么请求包均为明文。
antword的编码器共有以下几种模式:default、base64、chr、chr16、rot12
在连接php的webshell时,不论编码器处于那种模式,都会出现eval字段

加密为base64:

加密为chr:

加密为chr16:

加密为rot13:

二、冰蝎

总结特征:

Accept: application/json, text/javascript, */*; q=0.01   #q=0.01最新版本请求包没有content-type,老版本Content-Type: application/octet-stream返回字符串和请求字符串都是加密,在拥有密钥的情况下可以使用工具解密流量(当然加密也是一种特征)加密为default_image的时候,具有png的请求头,但是请求包中可能会出现java字样的字符如果是json加密就是{"id":"1","body":"{"user":"加密的payload"}"}

加密为default_aes

Accept: application/json, text/javascript, */*; q=0.01

请求相应包都是AES加密

加密为default_image

加密为default_json

json结构

{"id":"1","body":"{"user":"payload"}"}

加密为aes_imagic

三、哥斯拉

探活数据包:aes_base64: 请求包POST传参pass,响应包为空java_raw: 请求包POST传参raw数据,Content-Type: application/octet-stream,探活数据包为空cookie的最后面有个 ;

加密为JAVA_AES_BASE64

  • 第一个通信包使用post请求发送pass参数探活,响应包为空

  • 响应包前后有各拆分为一半的大写32位MD5值

加密为JAVA_RAW

  • 探活数据包,响应包为空,请求content-type为Content-Type: application/octet-stream

关键词: