一、蚁剑(AntSword):特征鲜明的入门级工具
蚁剑作为入门级 Web 渗透工具,其流量特征相对直观,通过抓包工具可快速识别。
1. 请求体特征
- 起始标识:多数请求体以
@ini_set("display_errors","0");@set_time_limit(0)
起首,这串代码的作用是关闭错误显示并设置无限制的脚本执行时长,是识别蚁剑流量的核心标志。即便攻击者通过自定义编码器或加密手段试图隐藏,解码后也较容易发现。 - 加密及参数样式:采用 AES 加密方式,加密后的参数名常呈现 “_0x…..=” 的形式(下划线可替换)。请求体经过 URL 编码,解码后能还原出核心特征。虽然新变种可能会微调加密算法或对参数名进行混淆,但核心机制仍具有可识别性。
2. 响应体特征
响应结果多为 “随机数 + 执行结果 + 随机数” 格式的 Base64 编码混淆字符。部分变种可能会混入伪装信息,以此增加检测难度。
3. 请求头特征
默认的 USER – Agent 包含 “antsword” 标识,不过该标识可自定义修改。Content – Type 多为
application/x-www-form-urlencoded
。在部分场景中,蚁剑的请求头会被伪装成目标环境的正常请求头,以达到隐匿行踪的目的。二、冰蝎(Behinder):动态隐蔽的进阶工具
冰蝎的流量特征更为隐蔽,对抗检测的能力较强,给识别工作带来一定挑战。
1. 请求头特征
- Accept 字段:通常为
application/json, text/javascript, */*; q=0.01
。在最新版本中,该字段可能会根据目标应用类型进行智能调整,例如适配 XML 数据的 Web 服务。 - Content – Type:常见的有
application/x-www-form-urlencoded
(用于表单提交)和application/octet-stream
(用于二进制传输),不同的攻击操作会对应不同的类型选择。 - User – Agent:内置十余个动态 User – Agent,每次连接时会随机选择,以此模拟不同的客户端环境。在部分场景中,还会结合目标访问数据生成贴合环境的标识,进一步增加识别难度。
2. 连接特征
默认使用长连接,请求头和响应头中带有
Connection: Keep - Alive
字段。并且通过隐蔽的心跳机制维持连接,避免被检测系统察觉。3. 加密与密钥特征
主要采用 AES 加密算法传输数据,当服务器开启 OpenSSL 扩展时,可能会依据密钥选择简单的 XOR 加密方式。默认密钥为 “rebeyond” 的 16 位 MD5 值(
e45e329feb5d925b
)。高级攻击者会生成个性化密钥,甚至动态更换密钥来对抗检测。4. 数据包特征
连接 PHP webshell 时,默认发送四个请求,第二个请求解密后包含关键信息。GET 请求带有
?pass=(XXX)
参数,Content – Length 通常为 16。响应包多采用 chunk 编码,部分数据包(如心跳包)长度固定且持续产生,新版本可能会对长度进行随机化处理或增加额外参数。三、哥斯拉(Godzilla):灵活多变的复杂工具
哥斯拉在流量特征上表现出较强的灵活性和多变性,识别起来也需多方面考量。
1. 请求头特征
- User – Agent:默认包含 JDK 信息(如
Java/1.8.0_121
),但可自定义伪装成目标环境中常见的 Java 应用标识。 - Accept:默认值为
text/html, image/gif, image/jpeg, *; q=.2, */*; q=.2
,可根据不同场景进行调整以匹配目标应用。 - Cookie:Cookie 末尾带有分号(;)是重要的辅助标志,不过新变种可能会去除该特征,改用更隐蔽的方式标识会话。
2. 请求体与响应体特征
- 加密与格式:支持 Base64 编码和原始加密两种通信数据形式。初始化时会产生较大的数据包,后续命令执行产生的 Base64 数据包相对较小。PHP 和 ASP 版本的 Payload 以 “godzilla” 开头,该特征可能会被拆分或混合加密。
- 响应体结构:若请求体采用 Base64 编码,响应体也会返回 Base64 编码的数据,结构为 “MD5 前 16 位 + Base64 数据 + MD5 后 16 位”。在部分场景中,可能会改用自定义校验机制替代 MD5。
3. 连接数据包特征
连接时通常发送三个数据包,第一个数据包请求体明显较大,后两个则明显较小。第二个数据包返回内容通常为加密后的 “ok”,用于确认连接;第三个数据包返回目标的基本环境信息。新变种可能会调整数据包顺序,先发送伪装信息再渗透攻击指令。
四、快速识别三大工具的方法
- 蚁剑:重点检测请求体解码后是否包含
@ini_set("display_errors","0");@set_time_limit(0)
固定前缀,再结合 “AES 加密 + _0x 参数名”“响应体随机数包裹结构” 进行综合判断。 - 冰蝎:关注 “动态 User – Agent + 长连接(Keep – Alive)” 的组合,检测响应包是否采用 chunk 编码加密,同时结合固定长度心跳包、默认密钥(
e45e329feb5d925b
)的加密流量特征来识别。 - 哥斯拉:优先检查 Cookie 末尾是否带分号,结合 “Java 相关 User – Agent”“三阶段数据包大小规律”“响应体 MD5 + Base64 结构”,对于 PHP/ASP 流量,重点匹配 “godzilla” 特征字符串(包括编码后的形式)。
通过对蚁剑、冰蝎和哥斯拉流量特征的深入解析及识别方法的总结,希望能为安全人员在实际工作中快速发现和应对这些 Web 渗透工具的攻击提供有力参考,从而更好地保障网络安全。