freeBuf
主站

分类

漏洞 工具 极客 Web安全 系统安全 网络安全 无线安全 设备/客户端安全 数据安全 安全管理 企业安全 工控安全

特色

头条 人物志 活动 视频 观点 招聘 报告 资讯 区块链安全 标准与合规 容器安全 公开课

点我创作

试试在FreeBuf发布您的第一篇文章 让安全圈留下您的足迹
我知道了

官方公众号企业安全新浪微博

FreeBuf.COM网络安全行业门户,每日发布专业的安全资讯、技术剖析。

FreeBuf+小程序

FreeBuf+小程序

99+

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

Hvv常见webshell流量特征及检测思路
云科攻防实验室-2 2022-06-28 11:17:04 222362
所属地 内蒙古

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版本,主要做了一下改动:

  1. 取消动态密钥获取,目前很多waf等设备都做了冰蝎2.0的流量特征分析。所以3.0取消了动态密钥获取
  2. 界面由swt改为javafx,这个没啥说,界面美观大方

1656381663_62ba60df9b847f4e67d7c.png!small

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类特征

1656384994_62ba6de2e4d10dbea7288.png!small?1656384996899

由上图中国菜刀执行命令时的抓包报文可以看出,中国菜刀使用的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链接。

1656385786_62ba70fa6fc46df3e18cf.png!small?1656385788159

蚁剑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 总结

没啥总结的,但又想写。。。



# web安全
本文为 云科攻防实验室-2 独立观点,未经授权禁止转载。
如需授权、对文章有疑问或需删除稿件,请联系 FreeBuf 客服小蜜蜂(微信:freebee1024)
被以下专辑收录,发现更多精彩内容
+ 收入我的专辑
+ 加入我的收藏
云科攻防实验室-2 LV.4
http:www.cloudtds.com.cn
  • 15 文章数
  • 60 关注者
PHP代码审计-百家CMS
2023-07-04
逆向分析篇四:if语句
2022-09-01
CVE-2022-23337漏洞分析
2022-09-01
文章目录