Bootstrap

深度解析攻击工具:哥斯拉、冰蝎与蚁剑的流量特征全揭秘

网络安全攻防中,不同的攻击工具各有其独特的流量特征。本文将深入浅出地介绍哥斯拉、冰蝎和蚁剑的流量特征,并详细分析菜刀的流量特征,帮助基础小白更好地理解这些工具在网络流量中的表现。


哥斯拉流量特征

User-Agent 特征(弱特征)

默认情况下,哥斯拉客户端使用 Java 语言 编写,如果不修改 User-Agent,User-Agent 会显示类似于 Java/1.8.0_121​(具体版本取决于 JDK 环境版本)。不过,哥斯拉支持自定义 HTTP 头部,可以很容易去除这一特征。

Accept 特征(弱特征)

默认的 Accept 头部text/html, image/gif, image/jpeg, *; q=.2, /; q=.2​。这一特征同样可以通过自定义头部去除。

Cookie 特征(强特征)

哥斯拉请求包的 Cookie 中有一个致命的特征:末尾带有分号 ;​。标准的 HTTP 请求 中最后一个 Cookie 的值不应该包含分号,这一特征可以作为辅助识别哥斯拉流量的重要标志。

请求体特征(较强特征)

哥斯拉支持对加密的数据进行 Base64 编码 和原始加密(raw)两种形式的通信数据。对于 Base64 编码 的数据包,可以通过识别流量中的 Base64 编码特征进行检测。

另外,哥斯拉在进行初始化时会产生一个 比较大的数据包,后面进行命令执行等操作时产生的 Base64 数据包 会相对较小。通过数据包长度进行匹配在一定程度上也可以降低误报率。

响应体特征(强特征)

如果请求体采用 Base64 编码,响应体返回的也是 Base64 编码的数据。响应体的特征为:一个 32 位的 MD5 字符串 按照一半拆分,分别放在 Base64 编码 的数据的前后两部分。整个响应包的结构体征为:md5前十六位 + base64 + md5后十六位​。

需要注意的是,在匹配这些特征时,还需要考虑到不同版本的哥斯拉可能会有不同的特征表现。例如,在一些版本中,响应体的数据可能还会有其他混淆方式。

补充

哥斯拉使用的是 ICMP 协议数据报文,而 ICMP 流量本身就不高,所以较难在大流量中检测。ICMP 数据报文的载荷部分 Length 值固定为 92 字节,这是它的重要特征。

Payload 特征

在默认脚本编码的情况下,JSP 会出现 xc​、pass​ 字符和 Java 反射ClassLoader​,getClass().getClassLoader()​),Base64 加解码等特征。而 PHPASP 则为普通的一句话木马,数据报文的 Payload 内容以 "godzilla" 开头,这也是检测的特征标志。


冰蝎流量特征

冰蝎 2.0

使用 AES 加密 + Base64 编码,AES 使用动态密钥对通信进行加密。请求时内置了十几个 User-Agent 头,每次请求时会随机选择其中的一个。因此,当发现一个 IP 的请求头中的 User-Agent 在频繁变换,就可能是冰蝎。

冰蝎 3.0

冰蝎 3.0 取消了 2.0 的动态获取密钥,使用 固定的连接密钥。AES 加密的密钥为 webshell 连接密码的 MD5 的前 16 位,默认连接密码是 rebeyond​。请求时内置了十几个 User-Agent 头,每次请求时会随机选择其中的一个。3.0 连接 JSP 的 webshell 的请求数据包中的 Content-Type 字段常见为 application/octet-stream​。

冰蝎 4.0

提供了传输协议自定义功能,让用户对流量的加密和解密进行自定义,实现流量加解密协议的去中心化。v4.0 版本 不再有连接密码的概念,自定义传输协议的算法就是连接密码。与冰蝎的前述版本相似,进行请求时内置了十几个 User-Agent 头,每次请求时会随机选择其中的一个。

冰蝎 5.0

冰蝎 5.0 引入了更多的加密方式,包括 XORXOR_Base64AESJSONImage 等五种加密方式,并且每种加密方式都支持自定义加解密代码。这使得冰蝎的流量特征更加复杂和多样化,检测难度也更大。

固定请求头和响应头

冰蝎的固定请求头特征为:dFAXQV1LORcHRQtLRlwMAhwFTAg/M​,固定的响应头特征为:TxcWR1NNExZAD0ZaAWMIPAZjH1BFBFtHThcJSlUXWEd​。

长连接特征

冰蝎通讯默认使用长连接,默认情况下,请求头和响应头里会带有 Connection: Keep-Alive​,这可以作为辅助流量特征。

GET 请求特征

在每一次连接时都能看到一个 GET 请求 ?pass=[XXX]​ 的数据(XXX 均为数字),且均会产生一个 16 位的随机数密钥(第二个为密钥)。Content-Length 通常为 16。

请求体特征

JSP 类型 的 webshell,POST 请求体数据均为 Base64 编码,Content-Type 为 application/octet-stream​,响应体数据均为二进制文件。执行 JSP webshell,一般较短的命令 Content-Length 都是 9068。

Pragma 和 Cache-Control

请求头中有 Pragma: no-cacheCache-Control: no-cache。这些头部字段可以作为进一步识别冰蝎流量的特征。


蚁剑流量特征

静态特征

蚁剑中 PHP 使用 assert​、eval​ 执行;ASP 只有 eval​ 执行;在 JSP 中使用的是 Java 类加载ClassLoader​),同时会带有 Base64 编码解码 等字符特征。

动态特征

我们使用一句话木马上传 webshell,抓包后会发现每个请求体都存在以 @ini_set("display_errors","0");@set_time_limit(0) ​ 开头。并且响应体的返回结果是 Base64 编码发混淆字符,格式为:随机数 + 结果 + 随机数

参数特征

蚁剑混淆加密后还有一个比较明显的特征,即参数名大多以 _0x.....= ​ 这种形式(下划线可替换为其他)。以 _0x​ 开头的参数名,后面为加密数据的数据包也可识别为蚁剑的流量特征。

User-Agent 特征

默认的 USER-Agent 请求头是 antsword xxx​,但是可以通过修改 /modules/request.js​ 文件中的请求 UA 绕过这一特征。

最明显的特征

蚁剑的一个显著特征是在请求体中包含 @ini_set("display_errors","0"); ​ 这段代码,这段代码基本是所有 webshell 客户端 链接 PHP 类 webshell 都有的一种代码。


菜刀流量特征

静态特征

菜刀使用的webshell为一句话木马,特征十分明显。常见一句话(Eval):

  • PHP: <?php @eval($_POST['caidao']);?>
  • ASP: <%eval request("caidao")%>
  • ASP.NET: <%@ Page Language="Jscript"%><%eval(Request.Item["caidao"],"unsafe");%>
动态特征

请求包中:

  • UA 头 为百度爬虫或火狐
  • 请求体 中存在 eval​,base64​ 等特征字符
  • 请求体 中传递的 payload 为 Base64 编码,并且存在固定的 QGluaV9zZXQoImRpc3BsYXlfZXJyb3JzIiwiMCIpO0BzZXRfdGltZV9saW1pdCgwKTtpZihQSFBfVkVSU0lPTjwnNS4zLjAnKXtAc2V0X21hZ2ljX3F1b3Rlc19ydW50aW1lKDApO307ZWNobygiWEBZIik7J
  • 请求体 中执行结果响应为明文,格式为 X@Y 结果 X@Y​ 之中
Payload 特征

菜刀的 payload 特征主要表现在:

  • PHP: <?php @eval($_POST['caidao']);?>
  • ASP: <%eval request(“caidao”)%>
  • ASP.NET: <%@ Page Language=“Jscript”%><%eval(Request.Item[“caidao”],“unsafe”);%>

结论

通过对哥斯拉、冰蝎、蚁剑和菜刀的流量特征进行分析,可以帮助基础小白更好地理解这些工具在网络流量中的表现,从而提高检测和防御能力。在实际操作中,通过识别这些特征,可以有效发现并阻止恶意行为,保护网络安全。

在网络安全的攻防过程中,掌握这些工具的流量特征是至关重要的。虽然攻击者可能会不断改进工具以规避检测,但通过不断更新和完善检测规则,我们依然可以在防御中占据主动地位。

希望这篇文章能帮助你更好地理解哥斯拉、冰蝎、蚁剑和菜刀的流量特征。如果你有任何问题或需要进一步的解释,请随时留言。

;