爆破与未授权检测
字数 1282 2025-08-10 08:28:04

爆破与未授权检测技术详解

背景概述

爆破与未授权检测是网络安全领域的基础工作,虽然看似简单但实现"精致"的功能需要处理大量细节。本文基于yaklang的技术分享,详细解析爆破检测的关键技术和实现方案。

服务特定爆破策略

SSH服务爆破

  1. 认证方式判断

    • 首先检测SSH服务允许的认证方式(password/key/empty)
    • 如果不允许密码认证,则无法进行密码爆破
  2. 爆破阶段

    • 尝试root空密码
    • 然后尝试其他密码组合
  3. 注意事项

    • 不适合对同一目标并发爆破,服务器会限制登录频率
    • 大量Connection Refused或Timeout会造成资源浪费
    • 可利用SSH用户名枚举漏洞(CVE-2018-15473)缩短爆破时间

Redis服务爆破

  1. 特性处理

    • Redis不需要用户名,爆破框架应自动忽略用户名处理
    • 发现未授权访问时应停止爆破
  2. 防护机制检测

    • 出现大量Connection Refused意味着防火墙启动
    • 此时应暂停或停止对该目标的探测

MySQL服务爆破

  1. 白名单检测
    • 检测"is not allowed to connect"错误
    • 发现IP白名单限制时应停止检测

关键细节处理

细节一:并发策略优化

  1. 问题

    • 无脑增加单目标并发会导致快速被发现和封禁
  2. 解决方案

    • 采用多目标并发,每个目标低并发的策略
    • 在多个目标情况下不影响整体效率
    • 单个目标不易"打草惊蛇"

细节二:反制规避技术

  1. 时间窗口问题

    • 防御系统通常设置时间窗口检测爆破行为
  2. 解决方案

    • 在多个目标并发基础上增加随机Sleep
    • 放缓单个目标的测试强度
    • 通过参数配置调整爆破节奏

细节三:未授权优先检测

  1. 检测顺序优化

    • 爆破前先进行未授权和指纹检查
    • 如果已通过未授权检测进入系统,则无需爆破
  2. 效率提升

    • 避免对已开放系统进行不必要的爆破尝试
    • 减少资源浪费和被发现风险

Yak爆破框架实现

核心设计

  1. 服务模块定义

    • 为每个服务设置默认用户名和密码
    • 编写"UnAuthVerify"函数进行预检查
  2. 预检查特性

    • 检查TCP状态和banner信息
    • 每个目标只执行一次预检查

技术挑战

  1. 多目标并发限制
    • 可能遇到"too many open sockets/files"错误
    • 需要用户手动修改系统配置(如ulimit)

官方资源

  1. Yak语言官方教程: https://yaklang.com/docs/intro/
  2. Yakit视频教程: https://space.bilibili.com/437503777
  3. Github下载地址: https://github.com/yaklang/yakit
  4. Yakit官网下载地址: https://yaklang.com/
  5. Yakit安装文档: https://yaklang.com/products/download_and_install
  6. Yakit使用文档: https://yaklang.com/products/intro/
  7. 常见问题速查: https://yaklang.com/products/FAQ
爆破与未授权检测技术详解 背景概述 爆破与未授权检测是网络安全领域的基础工作,虽然看似简单但实现"精致"的功能需要处理大量细节。本文基于yaklang的技术分享,详细解析爆破检测的关键技术和实现方案。 服务特定爆破策略 SSH服务爆破 认证方式判断 : 首先检测SSH服务允许的认证方式(password/key/empty) 如果不允许密码认证,则无法进行密码爆破 爆破阶段 : 尝试root空密码 然后尝试其他密码组合 注意事项 : 不适合对同一目标并发爆破,服务器会限制登录频率 大量Connection Refused或Timeout会造成资源浪费 可利用SSH用户名枚举漏洞(CVE-2018-15473)缩短爆破时间 Redis服务爆破 特性处理 : Redis不需要用户名,爆破框架应自动忽略用户名处理 发现未授权访问时应停止爆破 防护机制检测 : 出现大量Connection Refused意味着防火墙启动 此时应暂停或停止对该目标的探测 MySQL服务爆破 白名单检测 : 检测"is not allowed to connect"错误 发现IP白名单限制时应停止检测 关键细节处理 细节一:并发策略优化 问题 : 无脑增加单目标并发会导致快速被发现和封禁 解决方案 : 采用多目标并发,每个目标低并发的策略 在多个目标情况下不影响整体效率 单个目标不易"打草惊蛇" 细节二:反制规避技术 时间窗口问题 : 防御系统通常设置时间窗口检测爆破行为 解决方案 : 在多个目标并发基础上增加随机Sleep 放缓单个目标的测试强度 通过参数配置调整爆破节奏 细节三:未授权优先检测 检测顺序优化 : 爆破前先进行未授权和指纹检查 如果已通过未授权检测进入系统,则无需爆破 效率提升 : 避免对已开放系统进行不必要的爆破尝试 减少资源浪费和被发现风险 Yak爆破框架实现 核心设计 服务模块定义 : 为每个服务设置默认用户名和密码 编写"UnAuthVerify"函数进行预检查 预检查特性 : 检查TCP状态和banner信息 每个目标只执行一次预检查 技术挑战 多目标并发限制 : 可能遇到"too many open sockets/files"错误 需要用户手动修改系统配置(如ulimit) 官方资源 Yak语言官方教程: https://yaklang.com/docs/intro/ Yakit视频教程: https://space.bilibili.com/437503777 Github下载地址: https://github.com/yaklang/yakit Yakit官网下载地址: https://yaklang.com/ Yakit安装文档: https://yaklang.com/products/download_ and_ install Yakit使用文档: https://yaklang.com/products/intro/ 常见问题速查: https://yaklang.com/products/FAQ