青浦区网站建设,自己做一网站_多做宣传.,开网站做网站赚钱吗,网络营销公司名字webshell工具流量特征 - i苏沐辰 - 博客园 (cnblogs.com)
菜刀
作为老牌 Webshell 管理神器#xff0c;中国菜刀的攻击流量特征明显#xff0c;容易被各类安全设备检测#xff0c;实际场景中越来越少使用#xff0c;加密 Webshell 正变得日趋流行。
UA字段
通常为百度中国菜刀的攻击流量特征明显容易被各类安全设备检测实际场景中越来越少使用加密 Webshell 正变得日趋流行。
UA字段
通常为百度火狐
存在特征字符
请求体中存在evalbase64等特征字符
payload编码
请求体中传递的payload为base64编码并且存在固定的数值z0QGluaV9zZXQoImRpc3BsYXlfZXJyb3JzIiwiMCIpO0BzZXRfdGltZV9saW1pdCgwKTtpZihQSFBfVkVSU0lPTjwnNS4zLjAnKXtAc2V0X21hZ2ljX3F1b3Rlc19ydW50aW1lKDApO307ZWNobygiWEBZIik7J
蚁剑
中国蚁剑是一款开源的跨平台网站管理工具它主要面向于合法授权的渗透测试安全人员以及进行常规操作的网站管理员。
将蚁剑的正文内容进行URL解码后流量最中明显的特征为ini_set(display_errors,0);这段代码基本是所有WebShell客户端链接PHP类WebShell都有的一种代码同时蚁剑也有eval这种明显的特征。
蚁剑中包含了很多加密、绕过插件所以导致很多流量被加密后无法识别但是蚁剑混淆加密后还有一个比较明显的特征参数名大多以_0x.....这种形式下划线可替换为其他所以以_0x开头的参数名后面为加密数据的数据包也可识别为蚁剑的流量特征。
冰蝎
冰蝎是一款基于Java开发的动态加密通信流量的新型Webshell客户端
冰蝎的通信过程可以分为两个阶段
一、密钥协商
1通过 GET 或者 POST 方法请求服务器密钥
2服务器使用随机数 MD5 的高16位作为密钥存储到会话的 $_SESSION 变量中并返回密钥
二、加密传输
1客户端把待执行命令作为输入利用AES或 XOR 运算进行加密并发送至服务端
2服务端接受密文后进行 AES 或 XOR 运算解密执行相应的命令
3执行结果通过AES加密后返回给攻击者。
冰蝎2.0
1、ACCEPT字段
冰蝎2默认Accept字段的值很特殊,而且每个阶段都一样 Accept: text/html, image/gif, image/jpeg, *; q.2, */*; q.2
2、UA字段
冰蝎内置了十余种 UserAgent 每次连接 shell 会随机选择一个进行使用。但都是比较老的容易被检测到但是可以在burp中修改ua头。
3、Content-Length
Content-Length: 16
冰蝎3.0
相比较冰蝎2冰蝎3取消动态密钥获取目前很多waf等设备都做了冰蝎2的流量特征分析所以3取消了动态密钥获取只有在无动态密钥交互失败后才会进入常规的密钥交互阶段。
?phperror_reporting(0);session_start();$keye45e329feb5d925b; //该密钥为连接密码32位md5值的前16位默认连接密码rebeyond$_SESSION[k]$key; 从密钥的生成可以看出使用密码的md5结果的前16位。
1、content-type
content-type为application/octet-stream
2、内置16个ua头
冰蝎3.0 每次请求都会在16个默认的UA头中随机选择一个作为user-Agent当然普通用户很容易就可以修改
3、content-length 请求长度
在冰蝎中任何请求最终都会调用Utils.getData函数对请求的参数加密。对于上传文件命令执行来讲加密的参数不定长。但是对于密钥交互获取基本信息来讲payload都为定长且无随机padding。
冰蝎4.0
冰蝎3.0和4.0的区别 冰蝎3.0采用自定义的二进制协议进行通信冰蝎4.0采用HTTP协议进行通信; 冰鞋3.0使用DES加密算法冰蝎4.0使用RC4加密算法;
1、Accept字段
通信过程中会携带以下Accept字段在进行数据通讯中会携带Accept字段 Accept: application/json, text/javascript, /; q0.01
2、Content-Type字段
PHP站点Application/x-www-form-urlencoded ASP站点Application/octet-stream
3、User-agent 字段
冰蝎4.0设置了10种User-Agent,每次连接shell时会随机选择一个进行使用
4、特征长连接
通讯默认使用长连接避免了频繁的握手造成的资源开销。默认情况下请求头和响应头里会带有 Connection。 Connection: Keep-Alive
5、PHP webshell 中存在固定代码
$postDecrypt(file_get_contents(php://input)); eval($post);
6、JSP webshell 中存在固定代码
7、连接密码
默认时所有冰蝎4.* webshell都有形如“e45e329feb5d925b” 一串密钥。该密钥为连接密码32位md5值的前16位默认连接密码rebeyond
哥斯拉
哥斯拉是一款继冰蝎之后又一款于Java开发的加密通信流量的新型Webshell客户端内置了3种有效载荷以及6种加密器6种支持脚本后缀20个内置插件也是目前在HVV中使用较多的一款工具。
cookie字段
最后一个Cookie的值出现;结尾处通常会出现分号
User-Agent (弱特征)
哥斯拉客户端使用JAVA语言编写在默认的情况下如果不修改User-AgentUser-Agent会类似于Java/1.8.0_121具体什么版本取决于JDK环境版本。但是哥斯拉支持自定义HTTP头部这个默认特征是可以很容易去除的。
Accept弱特征
Accept为text/html, image/gif, image/jpeg, *; q.2, /; q.2
冰蝎也出现过同样的Accept这个是JDK引入的一个特征并不是作者自定义的Accept同样的这个默认特征也可以通过自定义头部去除
响应体
如果请求体采用base64编码响应体返回的也是base64编码的数据。在使用base64编码时响应体会出现一个很明显的固定特征。这个特征是客户端和服务端编写的时候引入的。他会把一个32位的md5字符串按照一半拆分分别放在base64编码的数据的前后两部分。整个响应包的结构体征为md5前十六位base64md5后十六位。从响应数据包可以明显看到这个特征
需要注意的是md5需要同时匹配字母大小写两种情况因为在JAVA版webshell响应中为大写字母在PHP版中为小写字母。
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.jsbody部分包含指令执行的结果大小为96
url路径
解密算法checksum892L93L
MSF流量特征
数据包中包含metepreterrevshell等特定字符
参考
webshell工具流量特征 - i苏沐辰 - 博客园 (cnblogs.com)
护网面试总结_msf流量特征-CSDN博客
CobaltStrike流量特征分析-腾讯云开发者社区-腾讯云 (tencent.com)
Metasploit流量分析与反取证 | AnonySecBlog (payloads.cn)