前言:

这一周做了一个弱口令专项,之前没有做过,以为很简单,没怎么准备,但是后边结果不好,现在结束了,结合一下这段时间的心得和一些师傅文章的文章来总结一下,因为文章为项目完结后,所以图片都是来自别的师傅的配图,部分也是直接引用师傅的文章方便后期查阅学习。

正文

在前期查看了一些攻略,但是还是低估了这次资产的数量和其他师傅的能力,第一天就交了7八个弱口令,而自己这边在网上找的很多自动化工具都因为各种环境问题不能使用。

弱口令专项无非web类和服务类

WEB类弱口令后台猜解:

  • web类弱口令需要做充足的信息收集,找到后台入口进行密码猜解。
  • 在弱口令枚举时可能会碰到验证码认证,此时可以使用一些验证码机器识别工具进行验证码绕过 。

服务类-SSH&RDP远程终端猜解:

如果是定向打击可以针对性的定制字典,但是如果是大范围扫描的话,只能用用一些通用的字典去试探。如:

  • 键盘顺序输入qwer@1234;
  • 很多厂商会以厂商名缩写+@123或者厂商名缩写+年份等;
  • 撞库,多个平台共用一个密码;
  • 姓名+@+年份;
  • 单位名称+@+年份;
  • 系统默认密码;

那么首先我们找到后台后,我们需要面对的是各种反暴力手段,包括不限于

  • 编码&加密&验签类(使用现有编码&加密、使用自写加密、对数据包进行验签)
  • 验证码类(图形验证码、滑动验证码、计算验证码等等)
  • 错误次数限制类(根据单个用户名错误次数 根据总错误次数)
  • 特殊登录方式&多因素认证类(手机、邮箱验证码登录 qq、微信、钉钉扫码登陆等)

那么首先如果是专项行动的话遇上这些显然不能直接去破解了需要针对性的采取采取措施去应对,L@2uR1te师傅在他的文章介绍的很细致针对各种常见的方式都有详细的讲解文章地址。本文主要是先讨论那些反暴力措施不严格的,能够直接暴力的。那么首先我们针对一个目标首先我们需要思考是账号密码同时爆破呢还是先喷洒呢?

那么首先要根据系统分为两种情况,一种是有返回包明显反馈的,另外一种是没有明显反馈的,例如统一返回“用户名或密码错误”。

知道存活用户的喷洒-爆破流程

针对这种情况,肯定是先喷洒再爆破,特别是一些老系统,他会在返回包中做出部分提示,包括不限与账户密码错误,不存在该用户等来佐证那些用户存在,后续也可以通过状态码和返回包长度来判断那些用户存在。比如最常见的通过长度和返回内容进行判断,这里我们假设第一轮用123456去进行喷洒:总之,大部分情况下密码正确、密码错误但用户名正确、密码和用户名都错误,三种情况会分别对应不同的返回长度或者不同的响应内容(有时候也会对应不同的响应码),多注意即可。这里值得重点说明的一种情况就是,假设返回长度、状态码都一样或者很类似,但是响应内容不同,我们喷洒了几万个用户名,总不能一个个点开去看结果吧?这种情况我们要怎么去筛选存活用户呢?可以根据返回包具体的特征,使用burp的这种情况可以借助Grep -Extract功能,我们注意到代表用户是否存在的响应内容是放在某个标签内的,可以借助这个功能做匹配。很多时候登录接口做了处理,返回“用户名或密码错误”,且无法通过返回长度、响应码进行判断的时候,可以另寻别的接口尝试对用户的存在情况进行判断。实战环境里不只能用登录接口去判断用户的存在情况,还有一些比较常见的例如如果开放注册用户接口、修改密码接口,判断用户存在基本一找一个准。也可以使用findsomething看看有没有比较未授权的一些接口来辅助判断。

不知道存活用户的喷洒-爆破流程

那么遇到最多的情况,应该就是无论是用户名不存在,还是用户名存在但密码错误,统一返回“用户名或密码错误”。这一类系统最为头疼,在这次专项行动中,针对这类系统采用的是采取少量手工尝试,产生了几个就跳过。这一部分看了一些师傅的思路基本上也是少量字典交叉爆破,最好准备一些量级不大的精品字典交叉爆破。这里我也准备了一下字典目前是3500*10大概3w多次尝试,同时还有可以在用户名字字典后边加上123,如果反暴力不严格的话也可以先用大量字典和少量字典尝试

之所以有这一步,是我发现实战中有些站点生成用户后,喜欢把用户的密码设置成用户名拼音+123,有时候还会设置成密码就是用户名,还有很多用户在设置自己密码的时候就是很喜欢用户名拼音+123的规则,所以我在实战中多加这么一步真的出过不少洞。而且也不只是拼接123,还可以试试下面这些密码规律结合用户名字典去做喷洒:

用户名+@123 用户名+@年份 用户名首字母大写+@123

可以让喷洒成功率提高很多。

特殊情况之手机号作为用户名

这种在这次专项行动中,没有发现明显提到需要用手机号登录的,但是也有尝试,这里我选择使用的是手机号生成工具非常好用,如果是一个地方系统可以生成当地的手机号,这样也挺不错的,能够很好的提高出货的效率。makephonedict

.特殊情况之邮箱作为用户名

这种情况就更有意思了。这种情况我喜欢先确定目标公司的企业邮箱是什么,一般都和他们的主域名有关。比如某知名视频网站bixxbixx.com,企业邮箱大概率是@bixxbixx.com,这些爱企查都很好查的。我们在针对使用邮箱作为用户名的情况时,实际上可以在我们用户名字典的基础上直接拼接一下目标的企业邮箱后缀,比如:

图片

这样基本也能去找到很多邮箱用户名,因为大部分企业邮箱的规律也就是 员工姓名拼音+邮箱后缀。

如果你并不满足于此,实际上还有一些网站可以找目标相关的邮箱,例如

https://phonebook.cz
www.skymem.info
https://hunter.io/

等等

图片

同理啊,目标的“联系我们”相关界面也是有可能有邮箱相关信息的

图片

总结

本次弱口令也给我了一些启示,面对大量资产如和快速产出,如果一个一个的手工测试或者半手工,那样能有什么产出呢?我想应该有爬虫工具,目前自己没有找到一些合适的工具,所以给自己埋一个坑吧,后边自己写一个。这次行动也让我意识到本地字典的重要性,字典这个东西,需要自己不断跟新,如果临时去找可能会有诸多限制,所以借着这次机会也帮我完善了一些自己的本地字典。

参考文章

感谢以下师傅的文章帮助,都是非常值得观看的文章

一些提高密码喷洒与爆破出货率的小技巧

爆破及喷洒过程中与常见限制机制的对抗思路

Web攻防之暴力破解(何足道版)