密码破解

在线密码破解

  • hydra
  • medusa

离线密码破解

身份认证

  • 禁止明文传输密码
  • 每次认证使用hash算法加密密码传输(hash算法加密容易,解密困难)
  • 服务器端用户数据库应加盐保存

破解思路

  • 嗅探获取密码hash
  • 利用漏洞登陆服务器,从数据库获取密码hash
  • 识别hash类型
    • 长度、字符集
  • 利用离线破解工具碰撞密码hash

优势

  • 离线不会触发密码锁定机制
  • 不会产生大量登陆失败日志引起管理员注意

HASH识别工具

  • hash-identifier

  • hashid

  • 可能识别错误或无法识别

Windows Hash获取工具

  • 利用漏洞:pwdump、fgdump、mimikatz、wce
  • 物理接触:samdump2
    • 在物理机上插入U盘,启动kaliLive虚拟机
    • 挂载windows硬盘
      • mount /dev/sda1 /mnt
    • 到sam数据库目录下
      • cd /mnt/Windows/System32/config
    • 执行samdump2
      • samdump2 SYSTEM SAM -o sam.hash

离线密码破解–Hashcat

  • 开源多线程密码破解工具
  • 支持80多种算法的破解
    • hashcat -h
  • 六种模式
    • -0 Straight:字典破解
    • -1 Combination:将字典中密码进行组合
    • -2 Toggle case:尝试字典中所有密码的大小写字母组合
    • -3 Brute force:指定字符集(或全部字符集)所有组合
    • -4 Permutation:字典中密码的全部字符置换组合(比如123:123 321 132 213 231)
    • -5 Table-lookup:程序为字典中所有密码自动生成掩码
  • 支持掩码方式的密码字典

oclhashcat

  • 号称世界上最快,基于GPU的密码破解软件
  • 免费开源、支持多平台、支持分布式、150+hash算法
  • 硬件支持
    • 虚拟机中无法使用
    • 支持CUDA技术的Nvidia显卡
    • 支持OpenCl技术的AMD显卡
    • 安装相应的驱动
  • 限制
    • 最大密码长度55字符
    • 使用Unicode的最大密码长度27字符
  • oclHashcat64 -m 0 hash.txt -a ?a?a?a?a?a?a
    • -?l =abcdefghijklmnopqrstuvwxyz
    • -?u =ABCDEFGHIJKLMNOPQRSTUVWXYZ
    • -?d =0123456789
    • -?s =!”#$%&’()’;:,>?<\等
    • -a =?l?u?d?s
    • -b =0x00-0xff

RainbowCrack

  • 基于时间记忆权衡技术生成彩虹表
    • 也可以直接去网站下载彩虹表
  • 提前计算密码的Hash值,通过比对hash值破解密码
  • 计算hash的速度很慢,修改版支持CUDA、GPU
  • KALI中包含的RainbowCrack工具
    • rtgen:预计算、生成彩虹表,耗时的阶段
    • rtsort:对rtgen生成顿彩虹表进行排序
    • rcrack:查找彩虹表破解密码
    • 以上命令必须顺序使用
  • 彩虹表
    • 密码明文、hash值、hash算法、字符集、明文长度范围

John

  • 破解linux和windows密码
  • johney图形化的john

Ophcrack

  • 基于彩虹表的LM、NTLM密码破解软件