经典webshell流量特征

发布时间 2023-06-14 11:39:49作者: k1115h0t

开门见山,不说废话

判断条件

是否符合通信的特征
请求加密的数据和响应包加密的类型一致
是否一直向同一个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