webshell工具流量特征 - i苏沐辰 - 博客园 (cnblogs.com)
冰蝎,哥斯拉,蚁剑都支持自定义请求头
哥斯拉,蚁剑,菜刀请求体中都会有敏感字符eval,assert,base64什么的
菜刀
作为老牌 Webshell 管理神器,中国菜刀的攻击流量特征明显,容易被各类安全设备检测,实际场景中越来越少使用,加密 Webshell 正变得日趋流行。
POST /webshell.php HTTP1.1
Cache-Control:no-cache
X-Forwarded-For:40.83.114.51
Referer:http://192.168.180.222
Content-Type:application/x-www-form-urlencode
User-Agent:Mozilia/4.0(complate;MISE 6.0;Windows NT 5.1)
HOST:192.168.180.222
Content-Length:685
Connection:Close
=%40eval%01%28base64_decode%28%24_POST%5Bz0%5D%29%29%3B&z0=QGluaV9zZXQoImRpc3BsYXlfZXJyb3JzIiwiMCIpO0BzZXRfdGltZV9saW1pdCgwKTtAc2V0X21hZ2ljX3F1b3Rlc19ydW50aW1lKDApO2VjaG8oIi0%2BfCIpOzskRD1kaXJuYW1lKCRfU0VSVkVSWyJTQ1JJUFRfRklMRU5BTUUiXSk7aWYoJEQ9PSIiKSREPWRpcm5hbWUoJF9TRVJWRVJbIlBBVEhfVFJBTlNMQVRFRCJdKTskUj0ieyREfVx0IjtpZihzdWJzdHIoJEQsMCwxKSE9Ii8iKXtmb3JlYWNoKHJhbmdlKCJBIiwiWiIpIGFzICRMKWlmKGlzX2RpcigieyRMfToiKSkkUi49InskTH06Ijt9JFIuPSJcdCI7JHU9KGZ1bmN0aW9uX2V4aXN0cygncG9zaXhfZ2V0ZWdpZCcpKT9AcG9zaXhfZ2V0cHd1aWQoQHBvc2l4X2dldGV1aWQoKSk6Jyc7JHVzcj0oJHUpPyR1WyduYW1lJ106QGdldF9jdXJyZW50X3VzZXIoKTskUi49cGhwX3VuYW1lKCk7JFIuPSIoeyR1c3J9KSI7cHJpbnQgJFI7O2VjaG8oInw8LSIpO2RpZSgpOw%3D%3D
#url解码
@eval(base64_decode($_POST[z0]));&z0=QGluaV9zZXQoImRpc3BsYXlfZXJyb3JzIiwiMCIpO0BzZXRfdGltZV9saW1pdCgwKTtAc2V0X21hZ2ljX3F1b3Rlc19ydW50aW1lKDApO2VjaG8oIi0+fCIpOzskRD1kaXJuYW1lKCRfU0VSVkVSWyJTQ1JJUFRfRklMRU5BTUUiXSk7aWYoJEQ9PSIiKSREPWRpcm5hbWUoJF9TRVJWRVJbIlBBVEhfVFJBTlNMQVRFRCJdKTskUj0ieyREfVx0IjtpZihzdWJzdHIoJEQsMCwxKSE9Ii8iKXtmb3JlYWNoKHJhbmdlKCJBIiwiWiIpIGFzICRMKWlmKGlzX2RpcigieyRMfToiKSkkUi49InskTH06Ijt9JFIuPSJcdCI7JHU9KGZ1bmN0aW9uX2V4aXN0cygncG9zaXhfZ2V0ZWdpZCcpKT9AcG9zaXhfZ2V0cHd1aWQoQHBvc2l4X2dldGV1aWQoKSk6Jyc7JHVzcj0oJHUpPyR1WyduYW1lJ106QGdldF9jdXJyZW50X3VzZXIoKTskUi49cGhwX3VuYW1lKCk7JFIuPSIoeyR1c3J9KSI7cHJpbnQgJFI7O2VjaG8oInw8LSIpO2RpZSgpOw==
1、payload采用url编码+base64编码,部分是明文传输。
2、payload中有eval或assert、base64_decode这样的字符。
3、payload中有默认固定的&z0=QGluaV9zZXQ...这样base64加密的攻击载荷,
参数z0对应$_POST[z0]接收到的数据,且固定为QGluaV9zZXQ开头,
base64解码后可看到代码:@ini_set("display_errors","0");@set_time_limit(0);@set_magic_quotes_runtime
蚁剑
中国蚁剑是一款开源的跨平台网站管理工具,它主要面向于合法授权的渗透测试安全人员以及进行常规操作的网站管理员。
默认仅为url编码,进行URL解码后,流量最中明显的特征为@ini_set("display_errors","0");@set_time_limit(0);@set_magic_quotes_runtime(0);这段代码基本是所有WebShell客户端链接PHP类WebShell都有的一种代码,
蚁剑中包含了很多加密、绕过插件,很多流量被加密后无法识别,但是蚁剑混淆加密后还有一个比较明显的特征,参数名大多是"_0x.....="这种形式(下划线可替换为其他)。
即使加密后,依旧有一些明显特征eval ,assert,base64_decode,str_rot13,chr等等
base64加密
rot13加密
chr加密
冰蝎
冰蝎2.0
1、ACCEPT字段
Accept: text/html, image/gif, image/jpeg, *; q=.2, */*; q=.2
2、UA字段
冰蝎内置了十余种 UserAgent ,每次连接 shell 会随机选择一个进行使用。因此当发现一个ip的user-agent在这十余种ua头中频繁变换,就可能是冰蝎
3、Content-Length
Content-Length: 16
冰蝎3.0
1、ACCEPT字段
Accept: text/html, image/gif, image/jpeg, *; q=.2, */*; q=.2
2、content-type
content-type为application/octet-stream
3、内置16个ua头
冰蝎3.0 每次请求都会在16个默认的UA头中随机选择一个作为user-Agent
4、content-length 请求长度
在冰蝎中,任何请求,最终都会调用Utils.getData
函数,对请求的参数加密。
对于上传文件,命令执行来讲,加密的参数不定长。
但是对于密钥交互,获取基本信息来讲,payload都为定长。
冰蝎4.0
冰蝎3.0和4.0的区别
冰蝎3.0采用自定义的二进制协议进行通信,冰蝎4.0采用HTTP协议进行通信;
冰谢3.0先base64加密后aes或xor,冰蝎4.0有多种加密方式,而且支持自定义加密方式;
1、Accept字段
Accept: application/json, text/javascript, /; q=0.01
2、Content-Type字段
PHP站点:Application/x-www-form-urlencoded
3、User-agent 字段
冰蝎4.0设置了10种User-Agent,每次连接shell时会随机选择一个进行使用
4、特征长连接
Connection: Keep-Alive
5、连接密码
默认时,所有冰蝎4.* webshell都有形如“e45e329feb5d925b” 一串密钥。该密钥为连接密码32位md5值的前16位,默认连接密码rebeyond
哥斯拉
Accept(弱特征)
Accept为text/html, image/gif, image/jpeg, *; q=.2, /; q=.2
User-Agent (弱特征)
哥斯拉在默认的情况下,如果不修改User-Agent,User-Agent会类似于Java/1.8.0_121(具体什么版本取决于JDK环境版本)。
cookie字段
最后一个Cookie的值出现;(结尾处通常会出现分号)
响应体
响应体的数据有一定特征,哥斯拉会把一个32位的md5字符串按照一半拆分,分别放在base64编码的数据的前后两部分。整个响应包的结构体特征为:md5前十六位+base64+md5后十六位。
cs流量特征
被控端会发送心跳包;
请求的url例如/jquery-3.3.1.min.js,返回包大小为5607,返回包到下一个请求包之间的时间为心跳时间
在执行下发指令时,会看到木马攻击者访问c2服务器上面的submit.php界面,并且在访问界面会带有一个id参数;
被控端请求的url为/jquery-3.3.1.min.js,返回包大小为5628,包含指令数据。下一个包发送POST请求,url为/jquery-3.3.2.min.js,body部分包含指令执行的结果,大小为96
url路径;
解密算法checksum8(92L,93L);
https完全看不出
http
心跳包
有加密,也看不出
MSF流量特征
反向连接默认端口为4444;
数据包中包含metepreter,revshell等特定字符;
https完全看不出
http 请求为很长一段字符,数据有加密
参考:
常见webshell工具流量特征 - Forensics-Wiki