流量特征分析——蚁剑、菜刀、冰蝎、哥斯拉

在网络安全领域,了解常见的攻击工具流量特征对于及时发现和应对威胁至关重要。本文将重点研究菜刀、蚁剑和冰蝎这三种常见的网络攻击工具,分析它们在流量中留下的痕迹和特征,以便网络管理员和安全专家能够更好地识别和对抗这些工具所带来的潜在威胁。

第一部分:蚁剑

蚁剑(AntSword)是一款功能强大的跨平台渗透测试工具,被广泛用于攻击和渗透测试活动。以下是蚁剑的一些流量特征:

  1. 流量特征主要表现在数据包的加密方式和数据类型。蚁剑使用了AES加密算法对数据进行加密,同时还使用了自定义的二进制协议,在通信中传输各种类型的数据
  2. 默认的USER-agent请求头 是 antsword xxx,但是 可以通过修改:/modules/request.js 文件中 请求UA绕过。
  3. 其中流量最中明显的特征为@ini_set("display_errors","0")、@set time limit (0) 这段代码基本是所有webshe11客户端链接PHP类Webshe11都有的一种代码 。
  4. 蚁剑混淆加密后还有一个比较明显的特征,即为参数名大多以“0x加密后”“这种形式(下划可换》,所以以-0x开头的参数也很可能就是恶意流量。

ctrl+shift+u

url解码

第二部分:菜刀

菜刀(Chopper)是中国黑客圈内使用非常广泛的一款Webshell管理工具。中国菜刀用途十分广泛,支持多种语言,小巧实用。它的流量特征主要包括以下几个方面:

  1. 主要表现在HTTP协议上,使用HTTP协议通信,控制命令和数据都通过POST请求传输。因此,可以通过HTTP请求头中的User-Agent、Referer等信息进行识别,eval函数必不可少,有可能会被assert代替。
  2. 使用了base64的方式加密了发送给“菜刀马”的指令,其中的两个关键payload z1和z2,这个名字是可变的 。
  3. 有$_POST/$_GET/$_REQUEST

第三部分:冰蝎

冰蝎 (Behinder)是一款基于Java开发的动态加密通信流量的新型Webshell客户端,由于通信流量被加密,传统的WAF、IDS 设备难以检测,给威胁狩猎带来较大挑战。冰蝎其最大特点就是对交互流量进行对称加密,且加密密钥是由随机数函数动态生成,因此该客户端的流量几乎无法检测。以下是冰蝎的一些流量特征:

  1. 流量特征主要表现在数据包中的特殊标记和传输的数据类型。冰蝎的数据包中包含了特定的标记,如"flag=0x52415631",用于标识该数据包是冰蝎的控制命令。此外,冰蝎还使用了一种自定义的二进制协议,在通信中传输各种类型的数据
  2. 看包没有发现什么特征,但是可以发现它是POST请求的appication/xhtm1+xmlapplication/xmlapplication/signe1、Accept头有d-exchange属于弱特征 (UA头的浏览器版本很老)2、特征分析Content-Type: application/octet-stream 这是-个强特征查阅资料可知octet-stream的意思是,只能提交二进制,而日只能提交一个三进制,如果提交文件的话,只能提交一个文件,后台接收参数只能有一个,而且只能是流(或者字节数组) ; 很少使用14。
  3. 默认内置16个user-agent头。
  4. content-length请求长度,对于文件上传、命令执行来说加密参数不定长;但是对获取基本信息的payload都定长。

 冰蝎2.0

        默认Accept字段的值很特殊,而且每个阶段都一样冰蝎内置了十余种15userAgent ,每次连接 shel1 会随机选择一个进行使用。但都是比较老的,r容易被检测到,但是可以在burp中修改ua头Content-Length:16,16就是冰蝎2连接的特征

冰蝎3.0

  1. 冰蝎3取消动态密钥获取,目前很多waf等设备都做了冰蝎2的流量特征分析,所以3取消了动态密钥获取;php抓包看包没有发现什么特征,但是可以发现它是POST请求的Accept。
  2. application/xhtm1+xmlapplication/xmlapplication/signed- exchange属于弱特征。 
  3. ua头该特征属于弱特征。通过burp可以修改,冰蝎3.0内置的默认16个userAgent都比较老。现实生活中很少有人使用,所以这个也可以作为waf规则特征。
  4. jsp抓包特征分析Content-Type: application/octet-stream 这是一个强特征查阅资料可知 octet-stream的意思是,只能提交二进制,而且只能提交一个二进制,如果提交文件的话,只能提交 一个文件后台接收参数只能有一个,而且只能是流(或者字节数组)。
  5. content-length长度为5720或5740(随Java版本改变)

冰蝎4.0

  1. 10个内置ua头随机选用
  2. 端口为49700左右,每次连接会递增
  3. PHPwebshell存在固定代码
    $post=Decrypt(file_get_contents("php://input"));
    eval($post);
    content字段中,将eval($post)作为流量特征纳入
  4. 请求头和响应头字节固定
    请求头和响应头里会带有 Connection
    Connection: Keep-Alive
  5. webshell存在默认字符串,为默认连接密码的MD5的前16位
  6. Content-Type不再是二进制,改成urlencoded,但是是弱特征

第四部分:哥斯拉

哥斯拉(Godzilla)由Java语言开发,内置了3种Payload以及6种加密器,6种支持脚本后缀,20个内置插件。

  1. 流量特征主要表现在数据包的特殊标记和数据类型。哥斯拉的数据包中包含了特定的标记,如"XORHEAD"和"XORBODY",用于标识该数据包是哥斯拉的控制命令。此外,哥斯拉还使用了一种自定义的二进制协议,在通信中传输各种类型的数据。
  2. Cookie字段中存在一个关键的特征,即最后一个Cookie值的末尾有一个不必要的分号,在标准的HTTP请求中,最后一个Cookie的值后面不应该出现分号。
  3. 响应包结构特征:MD5前16位+base64+MD5后16位
  4. 注入内存马时有大量的URL请求,路径相同但参数不同,或者页面不存在但是返回200

结论:
通过对这三种常见的网络攻击工具流量特征的分析,我们可以更好地了解它们在网络流量中的表现。网络管理员和安全专家可以根据这些特征来识别和监测潜在的攻击活动,并及时采取相应的防护措施。同时,持续的学习和了解新兴攻击工具的流量特征也是保持网络安全的重要一环。

### 冰蝎哥斯拉 WebShell 工具的网络通信流量特征 #### (AntSword) 采用静态加密方式处理其WebShell通信,这使得其流量具有一定的可识别性。然而,随着版本更新,引入了更复杂的加密机制来规避安全软件的检测[^2]。 对于而言,主要通过HTTP(S)协议进行通信,并且会利用多种技术手段隐藏恶意行为: - **请求头**:通常包含特定User-Agent字符串以及自定义Cookie字段。 - **POST参数**:使用Base64编码或其他形式的数据混淆方法传递命令或脚本代码。 - **响应内容**:返回的结果同样经过编码处理,增加了直接解析难度。 ```python import base64 def encode_payload(data): """模拟对有效负载进行简单编码""" encoded_data = base64.b64encode(data.encode()).decode() return f"{encoded_data}" ``` #### 冰蝎 (BingChen) 冰蝎3代相比前一代进行了改进,取消了动态密钥获取功能,转而采取其他措施增强隐蔽性和抗分析能力[^3]。具体表现在以下几个方面: - **传输层协议**:依旧依赖于HTTPS/TLS通道确保数据安全性的同时减少被拦截风险。 - **应用层伪装**:模仿正常网页浏览活动模式发送请求并接收回复;例如设置合理的`Accept-Language`, `Referer`等头部信息。 - **内部逻辑优化**:简化了一些不必要的交互流程,降低了异常行为暴露的可能性。 ```bash curl -X POST \ https://example.com/shell.php \ -H 'Content-Type: application/x-www-form-urlencoded' \ -d 'cmd=id' ``` #### 哥斯拉 (Godzilla) 哥斯拉以其高度定制化的特性著称,在实际运用过程中展现出极强的适应能力和灵活性[^4]。以下是该工具的一些典型特点: - **特殊标志符**:所有发出的数据包均以关键字"godzilla"作为起始标记,便于后续操作确认身份合法性。 - **ICMP隧道构建**:不同于传统基于TCP/UDP的应用程序,哥斯拉能够创建基于ICMP Echo Request & Reply的消息交换路径完成远程控制指令下发。 - **固定长度载荷**:每次传输的有效载荷大小保持一致(如92字节),有助于进一步掩盖真实意图。 ```csharp using System.Net.NetworkInformation; public static void SendPing(string targetIp, string payload) { Ping pingSender = new Ping(); byte[] buffer = Encoding.ASCII.GetBytes($"godzilla{payload}"); // Ensure the length of data is fixed to 92 bytes. Array.Resize(ref buffer, 92); var reply = pingSender.Send(targetIp, 120, buffer); } ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Administrator_ABC

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值