常见webshell的流量特征
菜刀流量特征
静态特征
菜刀用的是一句话木马,特征很明显
1 | PHP: <?php @eval([$_post['hacker']]); ?> |
动态特征
-
payload在请求体中,采用url编码+base64编码,payload部分是明文传输;
-
payload中有eval或assert、base64_decode这样的字符;
-
payload中有默认固定的&z0=QGluaV9zZXQ…这样base64加密的攻击载荷,参数z0对应$_POST[z0]接收到的数据,且固定为QGluaV9zZXQ开头。
进行base64解码后可看到代码:@ini_set(“display_errors”,“0”);@set_time_limit(0);@set_magic_quotes_runtime(0);这段意思是首先关闭报错和magic_quotes,接下来去获取主机的信息。
蚁剑流量特征
静态特征
- php使用assert、eval执行;
- asp使用eval执行;
- jsp使用Java类加载(ClassLoader);
- 会带有base64encode、decode的特征
动态特征
- 蚁剑内置了100多个UA头,每次执行命令都会更换UA头;
请求体:
1 | @ini_set("display_errors", "0");@set_time_limit(0);$opdir=@ini_get("open_basedir |
- 存在
@ini_set("display_errors", "0");@set_time_limit(0);
开头 - 中间存在
echo "d0fa"."402e"
、echo "8ae"."52a"
类此的拼接的随机数
响应体:
1 | d0fa402eD:/phpstudy_pro/WWW/pikachu/vul/unsafeupload/uploads C:D:E:G: Windows NT LAPTOP-71B88B96 10.0 build 19045 (Windows 10) AMD64 TsingZhi8ae52a |
- 响应体格式为
随机数 结果 随机数
,其中两个随机数源于请求体中拼接随机数 - 结果有时候会采用base64编码,解码可以发现其攻击行为
冰蝎流量特征
冰蝎2
-
使用AES-16+Base64加密;
-
需要两次GET访问获取密钥;
-
GET访问中默认webshell的密码为pass,参数值为3位随机数字;
-
密钥是直接接以16位字符的形式返回到客户端;
-
冰蝎的流量中,无论是GET还是POST都会存在content-type,在正常情况下只有POST形式的访问才会有
-
内置了10多个User-Agent头,通过逆向可以得到内置的UA头,也为特征的一种。在每次建立新连接的时候,都会更换一个UA头,且不少UA头浏览器版本较老;
-
accept里有个q=.2(强特征)
冰蝎3
- 使用AES-16+Base64加密的方式,取消了动态获取密钥的方式,使用固定密钥。AES使用的密钥为Webshell连接密码MD5的前面16位,默认为
rebeyond
即密钥为e45e329feb5d925b
; - 且一般在第二次会返回一个长度比较大的响应包,对应内容为phpinfo页面;
- 内置了10多个User-Agent头,通过逆向可以得到内置的UA头,也为特征的一种。在每次建立新连接的时候,都会更换一个UA头;
- 连接jsp的webshell的请求数据包中的content-type字段常见为application/octet-stream。
冰蝎4
- 与前面版本类似,内置了10多个User-Agent头,预估是大概2分钟会更换一次UA;
- referer为正常请求的webshell的页面链接,随机替换一个或几个部分;
- 与网上描述不同的是,现在Connection不再是
keep-alive
,而是close
; - Content-Type字段(弱特征)通常是
Content-type: Application/x-www-form-urlencoded
; - Accept字段(弱特征)通常是
Accept: application/json, text/javascript, */*; q=0.01
; - 在没有使用自定义传输的情况下,使用的是跟3一样的方式,默认为
rebeyond
即密钥为e45e329feb5d925b
。 - 密文的长度为16的整数倍。
哥斯拉
- 哥斯拉最明显的特征是cookie后面带了
;
,即使后续没有任何其他内容 - 响应体有一定特征:哥斯拉会把一个32位的md5字符串按照一半拆分,分别放在base64编码的数据的前后两部分。整个响应包的结构体征为:md5前十六位+base64+md5后十六位。