爆破与未授权检测

文章讨论了爆破与未授权检测的复杂性,强调了服务特性和细节处理的重要性。作者介绍了SSH、Redis和MySQL服务的登录检查方法,并提到Yak框架如何解决这些问题。文章还提及了Yaklang项目的进展,包括提供易用的GUI和自定义插件,目标是创建免费的安全基础平台。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

爆破与未授权检测

背景

“爆破与未授权检测” 虽然并不是一个难做的工作,属于脏活累活,但是又是基础工作。实际在做过这个工作和模块编写的同学们都非常清楚,里面有很多细节可以抠,实现基础功能和做 “好 / 精致” 是两个概念,这个功能可以发挥的空间其实非常大。

服务特定决定合适的爆破方式

我们可以举一些典型的例子和处理方案来介绍 “爆破” 其实并没有那么简单。例如众多服务会自带防爆破的机制,在目标有了“特定反应(比如告诉你 not allowed)”的时候,就不应该继续执行任务了。

SSH 服务登陆检查

SSH 爆破分为好几个阶段:

  1. 判断 SSH 服务允许的认证方式( password / key / empty)
  2. 如果不允许密码认证,就无法爆破;
  3. 如果允许密码登陆,尝试一次 root 空密码,然后尝试其他密码。
  4. SSH 服务极度不适合针对同一个目标并发爆破,服务器会限制登录频率,出现大量 Connection Refused 或者 Timeout 造成资源浪费

SSH 用户名枚举漏洞 (CVE-2018-15473)可以极大缩短爆破的时长,也是大家经常忽略的一个问题。

Redis 服务登陆检查

  1. Redis 不需要用户名,所以要求通用爆破框架自动忽略用户名的处理。
  2. 出现 Redis 未授权访问的时候,就不应该进行爆破了。
  3. 如果出现大量 Connection Refused,将意味着 “防火墙机制” 启动了,这个时候暂停爆破或者说停止对这个目标的探测其实是最好的办法。

MySQL 服务登陆检查

  1. 如果 MySQL 开启了登陆 IP 白名单,将会出现 “is not allowed to connect” 的问题。这个时候应该停止对该目标的检测。

需要注意的“金色传说”细节

细节一:单目标并发与多目标并发

大量的实践都证明,一些不够“精致”的爆破手段喜欢增加并发,并发无脑加到了“单个目标”上,导致爆破很快遭到察觉和封禁。

比较合适的手段应该是可以同时爆破“多个目标”,每个目标低并发。这样在有多个目标的时候,并不会影响效率,而且单个目标也不会过快 “打草惊蛇”。

细节二:随机 Sleep 来规避 “反制爆破的策略”

在我们“多个目标并发”的爆破策略下,有时候还是难以解决被 Ban 的问题。虽然我们并有从根源上解决这个 “被 ban” 的问题。

但是以我作为一个 “研发” 的角度来讲,我如果要 ban 爆破行为的话,我会设置一个时间窗口,短时间时间窗口被打满我会认为发生了爆破事件

如果可以再 “放缓” 针对单个目标的测试强度,其实有可能可以缓解这个问题,所以我们可以通过这种设置参数来解决这个问题。

细节三:未授权应该放在爆破前做检查

很多时候,我们无脑在爆破的时候,未授权和指纹检查其实已经可以发现一些可用的信息。遇到这种情况,我们可以决定到底要不要爆破。

通过未授权检测其实已经 “成功进入” 系统了,哪还有必要进行额外爆破呢?

yak 中的爆破框架 schema

http://yaklang.io 的爆破框架其实解决了上面提到的大多数细节问题,在 yak 的 brute 模块中,我们定义了如下内容:

每个服务,我们会设置默认用户名和密码,同时为每一个模块编写 “UnAuthVerify”:

  1. 这个函数的意义是,进行 “预检查”,在这个模块中,可以检查 TCP 的状态,检查 banner
  2. 当然这个函数的精髓其实是每一个 “目标” 只会执行一次

我们以 MySQL 来举例:

很多时候,我们虽然同时支持 “多目标并发” 和 “单目标并发”,但是多目标并发仍然绕不开 “too many open sockets/files” 魔咒,当遇到这种情况,用户需要手动修改本机的配置,ulimit 等。

项目进展

在项目推进的过程中,我们制定了一个短期的计划,分三大块,也并不是“机密”:

  1. 初步替代 BP 的核心功能,仔细打磨各种细节和使用体验,让“替代”不只是口号;
  2. 基础安全工具提供 GUI,降低成本;
  3. MITM 插件系统完善,基于 yak 语言实现 GUI 形式带插件的被动扫描;

到现在两个月有余,我们承诺将会把常见的基础安全工具全部提供足够易用的 GUI,爆破与未授权检测是这个承诺的一部分。虽然 brute 模块中的爆破类型仍然有限,但是这并不是终点,而是一个起点,肉眼可见的,我们可以编写 yak 脚本热加载到程序中,作为 yak 爆破框架的用户自定义插件,在在线的插件商店完备之后,这类操作将会带来无限的想象力。

我们提到的上述内容,并不以营利为目的,初衷仍然是免费的“安全能力基座 + 安全单兵装备”。

Yak官方资源

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值