资讯动态

WebShell工具流量特征分析

发布时间:2026/8/9 14:02:24 来源:尧图企业网站定制
蚁剑流量偏明文Base64编码、特征明显 冰蝎3.0/4.0采用AES/RC4对称加密固定密钥载荷全程无明文 哥斯拉采用动态密钥协商异或/AES加密响应体以MD5前后16位包裹Base64数据为强特征。 三者均以POST高频请求访问单一脚本文件但加密强度与协议自定制程度逐级递增检测难度也相应提升。总览对比表维度蚁剑 AntSword冰蝎 Behinder3.0/4.0哥斯拉 Godzilla默认加密方式Base64 编码可选 ROT13/Chr/AES 插件AES-CBC3.0/ RC44.0密钥e45e329feb5d925bXORBase64 或 AESBase64密钥md5(key)前16位默认 User-AgentantSword/v2.1可篡改内置 16 个老 UA 轮换Java/1.8.0_121暴露 JDK 版本Content-Typeapplication/x-www-form-urlencodedapplication/octet-stream3.0/application/x-www-form-urlencoded4.0application/x-www-form-urlencoded请求体特征ini_set(display_errors,0);set_time_limit(0);开头固定字节头dFAXQV1LORcHRQtLRlwMAhwFTAg/M4.0pass起始Cookie 末尾带;响应体特征随机数结果随机数混淆固定字节头TxcWR1NNExZAD0ZaAWMIPAZjH1BFBFtHThcJSlUXWEd4.0MD5前16位Base64MD5后16位强特征_0x[0-9a-f]{4}参数名、eval/assert 明文固定密钥、固定字节头、源端口递增Cookie 末尾分号、响应体 MD5 分段结构检测难度低中高高一、蚁剑 AntSword 流量特征1. 请求头特征User-Agent默认值为antSword/v2.1等带版本标识的字符串是最易识别的特征高版本或定制版可通过修改modules/request.js伪装为 Chrome、Firefox、Opera 等浏览器 UA。Content-Type默认application/x-www-form-urlencoded文件上传时为multipart/form-data。TCP 窗口大小默认配置固定为 65535可作为辅助指纹。2. 请求体特征固定 PHP 代码头URL 解码后每个请求体几乎都以ini_set(display_errors,0);set_time_limit(0);开头这是蚁剑连接 PHP 类 Webshell 的标志性片段。参数名特征使用默认/自定义编码器时参数名常以_0x开头如_0x1234加密数据下划线可替换为其他字符但_0x[A-Fa-f0-9]模式稳定可匹配。明文函数调用未启用编码器时请求体直接出现eval(或assert(函数调用Base64 编码器下参数值长度为 4 的倍数末尾含填充的概率超过 70%。分段 Base64payload 分段后分别 Base64 编码常见z0、z1参数携带编码数据。3. 响应体特征返回数据被随机字符串包裹格式为随机数结果随机数如a1cc2fb143bd7ef08da 真实输出 随机数去除混淆后 Base64 解码可见明文。4. Snort/Suricata 检测规则示例alert http any any -$HOME_NETany(msg:AntSword Webshell Detected;\flow:to_server,established;\content:antSword/v;http_header;\sid:1000002;rev:1;)alert http any any -$HOME_NETany(msg:AntSword PHP Payload Pattern;\flow:to_server,established;\content:ini_set|28|\display_errors\|2c|\0\|29|;\content:set_time_limit;distance:0;\sid:1000003;rev:1;)alert http any any -$HOME_NETany(msg:AntSword Param Name Pattern;\flow:to_server,established;\pcre:/(_0x[0-9a-fA-F]{4,})/;\sid:1000004;rev:1;)5. 版本差异蚁剑 2.x 默认编码器明文特征明显通过安装encoder插件可切换为 AES、ROT13、Chr 编码等加密后_0x参数名仍为稳定特征。二、冰蝎 Behinder 流量特征1. 冰蝎 2.0动态密钥协商首次 GET 请求服务端生成 16 位随机密钥写入$_SESSION并返回响应包Content-Length: 16。Accept 头固定Accept: text/html, image/gif, image/jpeg, *; q.2, */*; q.2Java HttpURLConnection 默认值合法但少见。AES 加密客户端用密钥对二进制 payload AES 加密后 POST 发送服务端 Session 取密钥解密执行。2. 冰蝎 3.0固定预共享密钥取消动态密钥协商密钥为md5(rebeyond)[0:16]e45e329feb5d925b全程硬编码不变拿到即可解密全部历史流量。AES-CBC 模式IV 硬编码为\x00*16密文开头出现固定模式。Content-TypeJSP shell 首次请求几乎必为application/octet-stream正常表单/上传不会使用该值。UA 轮换内置 10 个老旧 UA如Mozilla/4.0同一 IP 在 3-5 秒内相邻请求切换 UA正常浏览器不会如此。包体长度规律命令执行类包体长度常落在 5720/5740 字节附近无随机填充。长连接Connection: keep-alive全程保持。3. 冰蝎 4.0固定请求字节头dFAXQV1LORcHRQtLRlwMAhwFTAg/M硬编码不管选什么加密算法都出现。固定响应字节头TxcWR1NNExZAD0ZaAWMIPAZjH1BFBFtHThcJSlUXWEd。加密算法改为 RC4默认default_xor_base64协议仍保留默认密钥e45e329feb5d925b。源端口递增本地 TCP 源端口从 49700 左右顺序递增每次新会话 1可做时序关联。PHP webshell 固定代码$postDecrypt(file_get_contents(php://input));eval($post);。协议自定义4.0 支持传输协议自定义功能用户可自定义加解密算法实现流量去中心化默认特征可被魔改规避。4. 检测规则示例alert http any any -$HOME_NETany(msg:Behinder v4 Fixed Request Header;\flow:to_server,established;\content:dFAXQV1LORcHRQtLRlwMAhwFTAg/M;\sid:1000010;rev:1;)alert http any any -$HOME_NETany(msg:Behinder v3 Default Key in Payload;\flow:to_server,established;\content:e45e329feb5d925b;\sid:1000011;rev:1;)alert http any any -$HOME_NETany(msg:Behinder v3 application/octet-stream;\flow:to_server,established;\content:application/octet-stream;http_header;\content:Accept|3a| text/html, image/gif, image/jpeg, *; q.2, */*; q.2;http_header;\sid:1000012;rev:1;)5. 强弱特征区分强特征难绕过固定密钥e45e329feb5d925b、4.0 固定字节头、JSP 首次请求application/octet-stream、源端口 49700 递增。弱特征可绕过UA 轮换、Accept: text/html, image/gif...、Connection: Keep-Alive、包体长度规律。三、哥斯拉 Godzilla 流量特征1. 请求头特征User-Agent不修改时为Java/1.8.0_121具体版本取决于 JDK 环境直接暴露 Java 客户端身份可自定义伪装为 Chrome、Firefox 甚至 Baiduspider。Cookie 末尾分号请求包 Cookie 字段最后一个值带分号;而标准 HTTP 请求中最后一个 Cookie 值不应出现;这是哥斯拉的致命强特征。Content-Type默认application/x-www-form-urlencoded。2. 请求体特征pass 起始请求体以pass密码参数名起始参数名固定为连接密码默认pass。加密方式PHP_XOR_BASE64密钥 md5(key)[0:16]3c6e0b8a9c15224apayload 经 URL 解码 Base64 解码后与密钥按位异或还原明文。PHP_AES_BASE64等其他加密器AES 密钥同样由 md5(key) 前16位派生。首次连接三包默认发送三个数据包建立连接第一个请求的响应包设置PHPSESSID第一次请求把 PHP 函数定义代码发送到服务器存入 session后续操作只发函数名参数。请求包较长、响应为空建立连接测试时请求包较大但响应包为 0。3. 响应体特征强特征MD5 分段结构整个响应包结构为MD5前16位 Base64数据 MD5后16位其中 MD5 md5(passkey)。PHP 版本为小写 MD5Java 版本为大写 MD5。示例72a9c691ccdaab98fL1tMGI4YTljMv79NDQm7r9PZzBiOAb4c4e1f6ddd2a。解密时先剥离前后 16 位 MD5再 Base64 解码最后与密钥异或还原明文。4. 静态特征JSP shell含xc、pass字符Java 反射代码ClassLoader、getClass().getClassLoader()、Class.forName。PHP/ASP/ASPX为一句话木马payload 以godzilla开头部分版本。C# shell含System.Reflection.Assembly、System.Security.Cryptography。5. 检测规则示例alert http any any -$HOME_NETany(msg:Godzilla Cookie Trailing Semicolon;\flow:to_server,established;\pcre:/Cookie\x3a[^\r\n]*\x3b\s*[\r\n]/Hi;\sid:1000020;rev:1;)alert http any any -$HOME_NETany(msg:Godzilla Response MD5 Envelope;\flow:to_client,established;\pcre:/[a-f0-9]{16}[A-Za-z0-9\/][a-f0-9]{16}/;\sid:1000021;rev:1;)alert http any any -$HOME_NETany(msg:Godzilla Java UA Default;\flow:to_server,established;\content:Java/1.;http_header;\sid:1000022;rev:1;)6. 加密器变体哥斯拉内置 PHP_XOR_BASE64、PHP_AES_BASE64、JSP_AES_BASE64、CSHARP_BASE64 等 6 种加密器AES-GCM 模式在实战中最稳所有加密器均采用动态密钥协商机制每次连接生成不同密钥但响应体 MD5 分段结构在所有变体中保持一致。检测建议与误报规避多特征组合检测是降低误报的关键单一特征均存在被绕过或误报风险蚁剑_0x参数名 ini_set代码头 Base64 长度对齐三者组合误报率极低UA 单独匹配易被篡改规避。冰蝎固定密钥e45e329feb5d925b 4.0 固定字节头为强特征单独命中即可告警application/octet-stream UA 轮换 源端口递增组合用于 3.0 检测。哥斯拉Cookie 末尾分号 响应体 MD5 分段结构是双重强特征两者同时命中可高置信度告警Java/1.xUA 单独匹配误报较高需结合pass请求体起始判断。通用辅助特征单一脚本文件高频 POST 请求、长连接保持、响应体熵值偏高加密数据、非常规端口访问等行为特征可作为正则匹配之外的行为分析维度。对于魔改版本魔改冰蝎打乱字节头、魔改哥斯拉修改通信协议正则特征可能失效需依赖行为分析与加密流量检测如观成 ENS 类商业产品识别。实际护网/蓝队研判中建议优先匹配强特征冰蝎固定字节头、哥斯拉 Cookie 分号MD5 响应结构、蚁剑_0x参数名弱特征UA、Content-Type、Accept仅作为辅助加权项避免单独触发告警造成误报。

读完文章,也想定制专属网站?

尧图设计师 24 小时内与您沟通定制方案

免费获取报价