
背景
“爆破与未授权检测” 虽然并不是一个难做的工作,属于脏活累活,但是又是基础工作。实际在做过这个工作和模块编写的同学们都非常清楚,里面有很多细节可以抠,实现基础功能和做 “好 / 精致” 是两个概念,这个功能可以发挥的空间其实非常大。
服务特定决定合适的爆破方式
我们可以举一些典型的例子和处理方案来介绍 “爆破” 其实并没有那么简单。例如众多服务会自带防爆破的机制,在目标有了“特定反应(比如告诉你 not allowed)”的时候,就不应该继续执行任务了。
SSH 服务登陆检查
SSH 爆破分为好几个阶段:
- 判断 SSH 服务允许的认证方式( password / key / empty)
- 如果不允许密码认证,就无法爆破;
- 如果允许密码登陆,尝试一次 root 空密码,然后尝试其他密码。
- SSH 服务极度不适合针对同一个目标并发爆破,服务器会限制登录频率,出现大量 Connection Refused 或者 Timeout 造成资源浪费
SSH 用户名枚举漏洞 (CVE-2018-15473)可以极大缩短爆破的时长,也是大家经常忽略的一个问题。
Redis 服务登陆检查
- Redis 不需要用户名,所以要求通用爆破框架自动忽略用户名的处理。
- 出现 Redis 未授权访问的时候,就不应该进行爆破了。
- 如果出现大量 Connection Refused,将意味着 “防火墙机制” 启动了,这个时候暂停爆破或者说停止对这个目标的探测其实是最好的办法。

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

被折叠的 条评论
为什么被折叠?



