文章目录
- 蚁剑、冰蝎、哥斯拉
- 一、蚁剑(AntSword)流量特征
- 二、冰蝎(Behinder)流量特征
- 三、哥斯拉(Godzilla)流量特征
- metasploit、cobaltstrike
- 一、Metasploit流量特征
- 二、CobaltStrike流量特征
- 三、检测与防御建议
- 1. 检测方法
- 2. 防御策略
- 四、总结
本文仅用于技术研究,禁止用于非法用途。
蚁剑、冰蝎、哥斯拉
一、蚁剑(AntSword)流量特征
-
基础请求特征
- 蚁剑:
@ini_set$"display_errors","0"$、_0x[A-Fa-f0-9]+
- User-Agent标识:默认User-Agent为antsword/xxx,但可通过修改代码伪装为浏览器(如Opera、Chrome等)。
- 参数名特征:加密后的参数名通常以_0x开头(如_0x1234=加密数据),这是其混淆后的典型标识。
- 代码片段:请求体中存在固定PHP代码片段,如@ini_set(“display_errors”,“0”);@set_time_limit(0),用于关闭错误显示和超时限制。
- 蚁剑:
-
加密与编码
- 默认编码:支持Base64、Chr、ROT13等多种编码,未加密时流量明文可见eval或assert函数调用。
- 响应特征:返回数据通常被随机字符串包裹(如a1cc2fb143b…d7ef08da),用于混淆真实输出。
-
行为特征
- 高频重传:因网络不稳定或虚拟机性能问题,可能触发TCP数据包重传,需结合上下文判断。
二、冰蝎(Behinder)流量特征
- 协议与加密特征
- 冰蝎:application/octet-stream、e45e329feb5d925b。
- 动态密钥协商:冰蝎2.0通过GET/POST请求协商密钥(如/shell.jsp?pass=密钥),使用AES+Base64加密传输数据;冰蝎3.0后取消动态密钥,改用固定密钥(默认e45e329feb5d925b)。
- Content-Type标识:冰蝎3.0及以上版本请求头中Content-Type常为application/octet-stream,标识二进制流传输。
- 请求头特征
- User-Agent随机化:内置16个老旧UA头(如Mozilla/4.0),每次连接随机选择,易被识别为异常流量。
- Accept字段:默认值为application/json, text/javascript, /; q=0.01,属于弱特征。
- 固定代码与端口特征
- 服务端代码:PHP Webshell中包含
$post=Decrypt(file_get_contents("php://input")); eval($post);
,JSP版本使用长端口号(如49700附近)递增连接。
- 服务端代码:PHP Webshell中包含
三、哥斯拉(Godzilla)流量特征
哥斯拉:;[ \t]*$(Cookie末尾分号)、[A-Fa-f0-9]{16}[A-Za-z0-9+/=]+[A-Fa-f0-9]{16}。
行为分析:监控User-Agent频繁变化、异常端口(如49700)、长连接请求等。
- 强特征标识
- Cookie异常:请求Cookie末尾常带多余分号(如
JSESSIONID=xxx;
),不符合HTTP标准。 - 响应体结构:返回数据采用Base64编码时,前后拆分32位MD5值(如md5前16位+Base64数据+md5后16位),PHP版本为小写MD5,Java版本为大写。
- Cookie异常:请求Cookie末尾常带多余分号(如
- 请求与加密特征
- 默认User-Agent:暴露JDK版本(如Java/1.8.0_121),但支持自定义。
- 加密模式:支持AES、XOR、RAW等多种加密,请求体可能包含XORHEAD和XORBODY标记。
- 行为与连接特征
- 长连接:默认启用Connection: Keep-Alive,减少握手开销。
- 初始化流量:首次连接发送大体积数据包(用于密钥协商),后续请求携带固定Cookie。
metasploit、cobaltstrike
以下是 Metasploit 和 CobaltStrike 作为C2远控服务器的漏洞特征与流量特征分析,结合其通信机制、检测要点及防御建议:
一、Metasploit流量特征
Metasploit 是一款开源的渗透测试框架,由 HD Moore 等人于 2003 年开发,基于 Ruby 语言构建。其核心功能是 漏洞利用开发与测试,集成了超过 750 种已知漏洞的利用模块(如 SMB、Web 应用漏洞)和 224 种攻击载荷(Payload),覆盖从扫描到后渗透的全流程
- 协议与通信机制
- 协议类型:主要基于 TCP协议(默认端口4444)或HTTP(S)协议,常用于Meterpreter会话的实时交互。
- Staged/Stageless模式:
- Staged模式:通过小型Stager(如windows/meterpreter/reverse_tcp)下载完整Payload,流量中存在 分阶段下载行为(如HTTP GET请求下载加密Payload)。
- Stageless模式:单文件直接建立会话,流量中无额外下载过程,但Payload体积较大,易触发静态特征检测。
- 流量检测特征
- TCP端口交互:会话建立后,常存在两个端口持续交互(如9999与57591),流量中可见 MZ标头和DOS模式异常(非标准协议数据包结构)。
- HTTP请求特征:
- 路径包含动态参数(如/index.php?cmd=xxx),或直接调用/meterpreter等敏感路径。
- 响应包中可能包含 加密的Meterpreter指令(如migrate注入进程、hashdump提取凭据)。
- 进程注入行为:通过rundll32.exe或svchost.exe注入恶意代码,系统日志(如Sysmon)会记录 CreateRemoteThread事件 和异常父进程关系。
- 检测规则示例
- Suricata规则:
alert tcp any any -> any 4444 (msg:"Metasploit Meterpreter TCP Session"; sid:10001;)
alert http any any -> any any (msg:"Metasploit Stager Download"; content:"/meterpreter"; http_uri; sid:10002;)
二、CobaltStrike流量特征
Cobalt Strike 是一款商业化的高级渗透测试工具,专为 红队协作 和 APT 模拟 设计。其核心功能是 后渗透控制,通过 Beacon 代理实现内网横向移动、权限维持和隐蔽通信
- HTTP/S通信特征
- HTTP-staging模式:
- 路径校验规则:请求路径(如/Yle2)的 ASCII码之和与256取余等于92(即checksum8规则)。
- 心跳包规律:每隔固定时间(如3秒)发送GET请求,Cookie字段携带Base64加密的会话元数据。
- 命令下发与回传:任务指令通过HTTP响应包中的加密内容传递,执行结果以POST请求回传(Cookie或Body加密)。
- HTTPS特征:
- 默认证书指纹:使用空证书或自签名证书,JA3/JA3S指纹固定(如72a589da586844d7f0818ce684948eea)。
- Malleable C2 Profile:可自定义User-Agent、路径和证书,但默认配置下仍可能暴露特征(如/dpixel、/__utm.gif路径)。
- DNS通信特征
- DNS-stageless模式:
- 上线请求:通过A记录查询(如www6.<域名>)发送16进制编码的靶机信息,C2响应0.0.0.0确认。
- 命令下发:使用TXT记录传递加密Payload,响应IP地址为非常规值(如0.0.0.243)。
- 结果回传:通过post.<域名>的A记录查询回传数据,DNS流量中可见高频异常请求。
- 检测规则示例
- Suricata规则:
alert http any any -> any any (msg:"CobaltStrike Checksum8 Path"; content:"/Yle2"; http_uri; pcre:"/^\/[A-Za-z0-9]{4}$/"; sid:20001;)
alert dns any any -> any any (msg:"CobaltStrike DNS Beacon"; content:"www6."; depth:5; sid:20002;)
三、检测与防御建议
1. 检测方法
- 流量分析:
- 监控HTTP路径的checksum8规则、固定心跳间隔、异常DNS请求等特征。
- 识别JA3/JA3S指纹或自签名证书的异常使用。
- 日志溯源:
- 通过Sysmon日志追踪异常进程创建(如artifact.exe启动rundll32.exe注入)和网络连接事件。
2. 防御策略
- 框架加固:
- 升级至Metasploit/CobaltStrike最新版本,禁用默认配置(如更换证书、修改默认端口)。
- 使用Malleable C2 Profile自定义流量特征,规避静态规则检测。
- 网络防护:
- 部署WAF拦截包含checksum8路径、异常Cookie或DNS记录的请求。
- 限制非业务端口的出站流量(如4444、53、80/443外的非常用端口)。
四、总结
- Metasploit:依赖TCP端口交互和进程注入行为,检测需关注日志中的异常线程创建与协议特征。
- CobaltStrike:HTTP流量的checksum8规则和DNS流量的异常记录是核心检测点,防御需结合动态流量分析与协议层指纹识别。
如需更详细的技术实现(如Suricata规则集或Sysmon配置),可参考中的开源项目与案例分析。
注:本文遵循CSDN社区内容规范,不涉及具体攻击实现,重点探讨防御方法论。