各类漏洞以及工具特征
springboot未授权访问
1、http头部中不包括Cookie、Authorization等会话信息
2、访问SpringBoot服务的URL或响应内容类型包括spring-boot特征
菜刀特征
1.请求体中存在eval,base64等特征字符
2.请求体中传递的payload为base64编码,并存在固定的QGluaV9zZXQoImRpc3BsYXlfZXJyb3JzIiwiMCIpO0BzZXRfdGltZV9saW1pdCgwKTtpZihQSFBfVkVSU0lPTjwnNS4zLjAnKXtAc2V0X21hZ2ljX3F1b3Rlc19ydW50aW1lKDApO307ZWNobygiWEBZIik7J
解码内容:@ini_set("display_errors","0");@set_time_limit(0);if(PHP_VERSION<'5.3.0'){@set_magic_quotes_runtime(0);};echo("X@Y");
字段解析:1.ini_set 设置php配置选项,将display_errors为0,表示禁止显示错误信息
2.set_time_limit 设置php脚本的最大执行时间为0,使用@忽略错误信息
3.set_magic_quotes_runtime将魔术引号设置为0
3.请求体的UA是百度和火狐
蚁剑特征
每个请求体都存在@ini_set("display_errors"."0");@set_time_liimit(0)开头。
使用base64加密的payload,数据包存在以下base加密的eval命令执行,数据包的payload内容存在几个分段内容,分别使用base64加密,解密后可以看到路径和相关命令
响应包的结果返回格式为:随机数,编码后的结果,随机数
1.所有webshell客户端连接php类webshell都有的一种代码蚁剑混淆加密后还有一个明显的特征即参数大多是_0x开头的参数名
2.PHP类webshell链接流量
蚁剑的正文内容经过解码后,特征有@ini_set("display_errors","0"); 并且也有eval明显的特征
3.payload特征
php使用assert,eval执行
asp使用eval
jsp使用java类加载(classloader),同时带有base64编码解码等字符特征
冰蝎流量特征(AES加密)
每个请求头中存在
pragma:no_cache cache-control:no-cache accept:text/html,application/xhtml+xml,application/xml; q=0.9,image/webp,image/apng,/*; q=0.8,application/signed-exchage; v=b3;q=0.9
冰蝎2流量分析
1.采用密钥协商机制,客户端先用GET方式,携带密码发起握手请求,服务端生成随机密钥写入session
2.客户端将源码如assert|eval("pphinfo();")进行aes加密后发送到服务端,服务端通过解密得到的字符串再通过explode函数进行分割后,调用并执行相应命令
php shell特征:
GET 方式 请求行携带参数,格式为/weshell路径?pass=xx 请求头字段 Accept:text/html,image/gif,image/jpeg,*;q=.2,*/*,q=.2 请求体为空 响应体为16字节字符 其余数据包,命令执行,都是post方法,请求体和响应体为加密的字符串
即通信阶段生成aes密钥,并在第二个响应包铭文传递。
冰蝎3流量分析
3的aes密钥密码的32位md5的前16位是内置的,免去了密钥协商阶段
流量方面主要根据Accept,UA,数据包长度进行判断,属于弱特征。
冰蝎3的请求行只有文件路径没有参数 accept字段有application/xhtml+xml,application/xml,application/signed-exchage字段; accept;text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.9 cache-control:no-cache pragma:no-cache 请求体很长,数千字节因为经过了aes加密
哥斯拉(base64加密)
通信阶段
测试连接会发送两个包,提示success,点击确认会再发送一个包,和第二个包的请求体不同但响应体相同,用于获取环境变量(进入shell)
执行命令时,一个命令一个数据包
所有请求体只有一个密码字段。
除了测试连接和进入shell的数据包外,其他包的请求头第二行都为cookie字段
都有响应体,呈现规律是11cd6a8758984163 XXXX 6c37ac826a2a04bc 首尾字节可以去掉,有效载荷为XXXX的内容
第一个包的流量
第二个包
提示success后会再发送一个数据包
第三个包
解码得
执行ipconfig命令
请求数据包
请求数据包的pass密码后面都是运行的代码
响应数据包
响应数据包要注意首尾的特征码,返回的具体内容要截取掉首尾的字符串例如
中间的内容才是返回内容