云科攻防实验室-2
- 关注
0
1
2
3
4
5
6
7
8
9
0
1
2
3
4
5
6
7
8
9
0
1
2
3
4
5
6
7
8
9

0x00 前言
本次文章只用于技术讨论,学习,切勿用于非法用途,用于非法用途与本人无关!
环境均为实验环境分析,且在本机进行学习。作者:zr0iy
最近好像要hvv了,老铁们,你切记:情侣天天把手牵,咱们闷声赚大钱。
0x01 概述
webshell就是以asp、aspx、php、jsp, 或者cgi等网页文件形式存在的一种命令执行环境,也可以将其称做为一种网页后门。黑客在入侵了一个网站后,可以使用浏览器或者webshell管理工具来访问该后门文件,执行相关的系统命令,以达到控制网站服务器的目的。
0x02 分析
常见的WebShell连接工具:
- 中国菜刀(使用量最大,适用范围最广的WebShell客户端);
- 蚁剑(一种常用的WebShell客户端);
- 冰蝎(流量加密客户端);
- Cknife(C刀,使用Java语言编写);
- Weevely(kali中的中国菜刀)。
一、冰蝎3.0
“冰蝎”是一款基于Java开发的动态加密通信流量的新型Webshell客户端。
冰蝎发布3.0版本,主要做了一下改动:
- 取消动态密钥获取,目前很多waf等设备都做了冰蝎2.0的流量特征分析。所以3.0取消了动态密钥获取
- 界面由swt改为javafx,这个没啥说,界面美观大方
1) content-type
在冰蝎3.0中,是通过以下代码读取POST中的内容。
request.getReader().readLine()
代码的意思是,直接读取post请求中body的内容。所以请求的http中,content-type一定为application/octet-stream
。否则就会出现非预期http编码的情况。
2)user-Agent
由于该特征比较容易被绕过,所以属于弱特征。
冰蝎3.0 每次请求都会随机选择一个user-Agent。但是如果用户默认不提供ua头,则从系统中随机选择一个ua头。冰蝎3.0内置的默认16个userAgent都比较老,属于N年前的浏览器产品,现实生活中很少有人使用,所以这个也可以作为waf规则特征,附内置的16个UA头。
Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/535.1 (KHTML, like Gecko) Chrome/14.0.835.163 Safari/535.1 Mozilla/5.0 (Windows NT 6.1; WOW64; rv:6.0) Gecko/20100101 Firefox/6.0 Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/534.50 (KHTML, like Gecko) Version/5.1 Safari/534.50 Opera/9.80 (Windows NT 6.1; U; zh-cn) Presto/2.9.168 Version/11.50 Mozilla/5.0 (compatible; MSIE 9.0; Windows NT 6.1; Win64; x64; Trident/5.0; .NET CLR 2.0.50727; SLCC2; .NET CLR 3.5.30729; .NET CLR 3.0.30729; Media Center PC 6.0; InfoPath.3; .NET4.0C; Tablet PC 2.0; .NET4.0E) Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 6.1; WOW64; Trident/4.0; SLCC2; .NET CLR 2.0.50727; .NET CLR 3.5.30729; .NET CLR 3.0.30729; Media Center PC 6.0; .NET4.0C; InfoPath.3) Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 5.1; Trident/4.0; GTB7.0) Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.1) Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1) Mozilla/5.0 (Windows; U; Windows NT 6.1; ) AppleWebKit/534.12 (KHTML, like Gecko) Maxthon/3.0 Safari/534.12 Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 6.1; WOW64; Trident/5.0; SLCC2; .NET CLR 2.0.50727; .NET CLR 3.5.30729; .NET CLR 3.0.30729; Media Center PC 6.0; InfoPath.3; .NET4.0C; .NET4.0E) Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 6.1; WOW64; Trident/5.0; SLCC2; .NET CLR 2.0.50727; .NET CLR 3.5.30729; .NET CLR 3.0.30729; Media Center PC 6.0; InfoPath.3; .NET4.0C; .NET4.0E; SE 2.X MetaSr 1.0) Mozilla/5.0 (Windows; U; Windows NT 6.1; en-US) AppleWebKit/534.3 (KHTML, like Gecko) Chrome/6.0.472.33 Safari/534.3 SE 2.X MetaSr 1.0 Mozilla/5.0 (compatible; MSIE 9.0; Windows NT 6.1; WOW64; Trident/5.0; SLCC2; .NET CLR 2.0.50727; .NET CLR 3.5.30729; .NET CLR 3.0.30729; Media Center PC 6.0; InfoPath.3; .NET4.0C; .NET4.0E) Mozilla/5.0 (Windows NT 6.1) AppleWebKit/535.1 (KHTML, like Gecko) Chrome/13.0.782.41 Safari/535.1 QQBrowser/6.9.11079.201 Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 6.1; WOW64; Trident/5.0; SLCC2; .NET CLR 2.0.50727; .NET CLR 3.5.30729; .NET CLR 3.0.30729; Media Center PC 6.0; InfoPath.3; .NET4.0C; .NET4.0E) QQBrowser/6.9.11079.201 Mozilla/5.0 (compatible; MSIE 9.0; Windows NT 6.1; WOW64; Trident/5.0)
3) Accept&Cache-Control
如果请求没有设置accept,Cache-Control,则会默认设置为:
Accept: text/html, image/gif, image/jpeg, *; q=.2, */*; q=.2 Cache-Control: no-cache
二、中国菜刀
首先,我们必须承认中国菜刀是一款顶级的webshell管理工具,从2009年出现至今已有十余年,至今还有很多人在实战中习惯使用。但随着网络安全技术的发展,市面流行的版本足之处也逐渐暴露出来。
1) PHP类特征
由上图中国菜刀执行命令时的抓包报文可以看出,中国菜刀使用的http协议的POST方法传输控制命令,其过程中要向服务器传入eval、base64_decode等函数的字符串,通过将字符串以命令方式在服务器执行达到控制目的。由于其传输数据没有使用加密,而一般仅使用了base64编码,其数据实际在网络中是明文传输的,因此中国菜刀的行为很容易被IDS等网络监控设备基于行为发现而查杀,这一点也是现阶段市面上中国菜刀的致命之处。
其中特征主要在body中,将body中流量进行url解码后如下: 其中特征点有如下三部分, 第一:“eval”,eval函数用于执行传递的攻击payload,这是必不可少的; 第二:(base64_decode($_POST[z0])),(base64_decode($_POST[z0]))将攻击payload进行Base64解码,因为菜刀默认是将攻击载荷使用Base64编码,以避免被检测; 第三:&z0=QGluaV9zZXQ...,该部分是传递攻击payload,此参数z0对应$_POST[z0]接收到的数据,该参数值是使用Base64编码的,所以可以利用base64解码可以看到攻击明文。
PS:
1.有少数时候eval方法会被assert方法替代。
2.$_POST也会被$_GET、$_REQUEST替代。
3.z0是菜刀默认的参数,这个地方也有可能被修改为其他参数名。
2) JSP类特征
该流量是WebShell链接流量的第一段链接流量,其中特征主要在i=A&z0=GB2312,菜刀链接JSP木马时,第一个参数定义操作,其中参数值为A-Q,如i=A,第二个参数指定编码,其参数值为编码,如z0=GB2312,有时候z0后面还会接着又z1=参数用来加入攻击载荷。
3) ASP类特征
其中body流量进行URL解码后 其中特征点有如下三部分, 第一:“Execute”,Execute函数用于执行传递的攻击payload,这是必不可少的,这个等同于php类中eval函数; 第二:OnError ResumeNext,这部分是大部分ASP客户端中必有的流量,能保证不管前面出任何错,继续执行以下代码。 第三:Response.Write和Response.End是必有的,是来完善整个操作的。
三、中国蚁剑
蚁剑的很多代码源于中国菜刀,所以他的链接流量与中国菜刀很相似,但是蚁剑可以扩充性很好,可以对进行加密、混淆等绕过处理.蚁剑默认支持ASP以及PHP的webshell链接。
蚁剑PHP类WebShell链接流量,其中body流量进行URL解码后为: 其中流量最中明显的特征为@ini_set("display_errors","0");这段代码基本是所有WebShell客户端链接PHP类WebShell都有的一种代码,但是有的客户端会将这段编码或者加密,而蚁剑是明文,所以较好发现。
蚁剑ASP类WebShell链接流量,其中body流量进行URL解码后为: 蚁剑针对ASP类的WebShell流量与菜刀的流量很像,其中特征也是相同,如OnError ResumeNext、Response.End、Response.Write,其中execute在蚁剑中被打断混淆了,变成了拼接形式Ex"&cHr(101)&"cute,同时该流量中也使用了eval参数,可以被认为明显特征。
0x03 总结
没啥总结的,但又想写。。。
如需授权、对文章有疑问或需删除稿件,请联系 FreeBuf 客服小蜜蜂(微信:freebee1024)