冰蝎动态二进制加密WebShell基于流量侧检测方案

来源:岁月联盟 编辑:猪蛋儿 时间:2020-01-29
“/r/n/r/n[a-zA-Z/d/+//]{10,}//[a-zA-Z/d//]{50}"
数字50表示至少出现50字符才匹配,可根据IDS设备实际情况及需求调整。
jsp加密流量上行

php加密流量上行
jspx加密流量上行

asp,aspx 不可用上面的特征。
 aspx 加密上行流量独有。为减少误报,建议检查加密上行和下行,此特征同样适用aspx加密流量下行。
数据包中的 “.” 其实是不可见字符。
”[^/w/s>”
asp加密流量上行

aspx加密流量上行

弱特征7:加密数据下行
jsp加密流量下行

这里使用正则的“非”匹配二进制非常见字符。
" [^/w/s>][/w]{2}[^/w/s>][a-zA-Z/d]{2}"
[^/w/s>
[/w]{2} 表示特殊符号前至少有2个字符,经过大量对比分析,发现可以匹配的字符串例如:
“不可见字符”+”VO?ES”
“不可见字符”+”Fl#fB”
“不可见字符”+”9w+rv”
“不可见字符”+”6G/SW”
“不可见字符”+”mN]ss”
“不可见字符”+”ss[ss”
“不可见字符”+”gV|05”
“不可见字符”+”Iz/8o”
......
且返回状态码 200 OK
另外对于 php|jsp|asp|aspx,响应的Type特征还有
"Content-Type: text/html"
jspx稍有特殊。
jspx加密流量下行

"Content-Type:text/xml"
弱特征8:长连接(可绕过)
冰蝎通讯默认使用长连接,避免了频繁的握手造成的资源开销。因此默认情况下,请求头和响应头里都会带有:
Connection: Keep-Alive
这个特征存在于冰蝎的任何一个通讯阶段。
本文暂未使用此特征。
冰蝎snort规则检测思路

一.从建立连接的第一个GET请求的响应体开始检测,
1.响应体必chujian0定为16位大小写字母或数字,
2.返回状态码200 OK
可以作为IDS的入口正则,防止接入过多流量影响IDS性能。
二.之后检测第二个GET请求,
1.满足上面提取的GET请求弱特征
三.检测第二个GET响应体特征,特征与步骤一一致,但应满足递进关系。
四.这里分为2种情况,
第一种情况,
1.检测POST请求通用特征
2.检测POST响应特征,匹配到则判定为冰蝎 asp|jsp|aspx|php  上线。
第二种情况(不满足第一种情况),
1.检测POST请求 jspx 特征
2.检测POST响应 jspx 特征
冰蝎snort规则总结
综上
alert http any any -> any any(msg:"MALWARE-BACKDOOR Behinder webshell online detected"; flow:established,to_client; pcre: "//r/n/r/n[A-Za-z0-9]{16}$/”; content:”200 OK”; content: “Content-Length: 16″; fast_pattern;nocase; flowbits: set, bx_first_get_resp; noalert; classtype:web-attack;sid:3000021; rev:1; metadata:created_at 2019_11_20, updated_at 2019_11_20;)
    alert http any any -> any any(msg:”MALWARE-BACKDOOR Behinder webshell online detected”; flow:established,to_server; content:”GET”; http_method; pcre:”//.(php|jsp|asp|jspx|aspx)/?/w{1,8}=/d{1,10} HTTP/1/.1/”;flowbits:isset, bx_first_get_resp; flowbits:set, bx_second_get_req; noalert;classtype:web-attack; sid:3000022; rev:1; metadata:created_at 2019_11_20,updated_at 2019_11_20;)
    alert http any any -> any any(msg:”MALWARE-BACKDOOR Behinder webshell online detected”; flow:established,to_client; pcre: “//r/n/r/n[A-Za-z0-9]{16}$/”; content:”Content-Length: 16″; fast_pattern; nocase; flowbits: isset,bx_second_get_req; flowbits:set, bx_second_get_resp; noalert;classtype:web-attack; sid:3000023; rev:1; metadata:created_at 2019_11_20,updated_at 2019_11_20;)
    alert http any any -> any any(msg:”MALWARE-BACKDOOR Behinder webshell online detected”; flow:established,to_server; content:”POST”; http_method; pcre:”//.(php|jsp|asp|jspx|aspx) HTTP/1/.1/”; flowbits:isset, bx_second_get_resp;flowbits:set, bx_first_post_req; noalert; classtype:web-attack; sid:3000024;rev:1; metadata:created_at 2019_11_20, updated_at 2019_11_20;)

上一页  [1] [2] [3]  下一页