ophcrack-cli使用教程

ophcrack-cli 是 Kali Linux 中一款专注于 Windows 密码破解 的命令行工具,核心技术基于彩虹表(Rainbow Tables)------一种通过预计算哈希值与明文对应关系的数据库,实现快速反向查询哈希对应的明文密码,无需传统暴力破解的逐一枚举,大幅提升破解效率。

其核心功能与特点如下:

  • 破解对象:主要针对 Windows 系统的 LM 哈希和 NTLM 哈希(从 SAM 文件、pwdump 格式文件或 Meterpreter 导出的哈希中提取),支持 Windows XP、Vista、Windows 7 等主流早期系统,通过扩展彩虹表可覆盖更多版本。
  • 核心优势:依赖彩虹表的"预计算"特性,破解速度远快于暴力破解;支持命令行无界面运行,适合远程服务器或渗透测试场景;提供会话保存、多线程、结果导出等功能,适配复杂破解需求。
  • 使用场景:渗透测试中的 Windows 系统密码审计、系统运维中的遗忘密码恢复(需合法授权)、安全合规检测中的弱密码排查。
  • 注意事项:需提前准备对应系统版本的彩虹表(Kali 默认提供基础免费表,复杂密码需下载完整版);仅可用于合法授权的目标,未经授权破解涉嫌违法。

二、命令行参数中文解析(按功能分类)

1. 模式控制参数

参数 英文说明 中文解析 示例
-a disable audit mode (default) 禁用审计模式(默认),审计模式会额外分析密码复杂度,禁用后仅专注于密码破解 ophcrack -a -g -f hash.txt
-A enable audit mode 启用审计模式,破解时同步输出密码是否符合复杂度要求(如长度、字符类型) ophcrack -A -g -f hash.txt
-b disable bruteforce 禁用暴力破解模式,仅依赖彩虹表比对哈希,不进行额外枚举 ophcrack -b -g -d /tables -f hash.txt
-B enable bruteforce (default) 启用暴力破解模式(默认),彩虹表匹配失败时,自动触发简单弱密码枚举 ophcrack -B -g -d /tables -f hash.txt
-g disable GUI 禁用图形界面,强制以命令行模式运行(Kali 无 GUI 环境可省略,有 GUI 需加此参数) ophcrack -g -d /tables -f hash.txt

2. 彩虹表与哈希加载参数

参数 英文说明 中文解析 示例
-d dir specify tables base directory 指定彩虹表基础目录,工具从该目录读取子表(如 xp_free_fast、vista_free) -d /usr/share/ophcrack/tables/(Kali 默认表目录)
-t table1[,a[,b,...]][:table2[...]] specify which table to use (with -d) 指定使用的彩虹表: table1/table2:表目录名; a,b:子表编号(可选,不填则用全表); 多表用":"分隔 -t xp_free_fast,0,3:vista_free(用 xp 表 0/3 子表 + vista 全表)
-f file load hashes from file (pwdump/session) 从文件加载哈希: pwdump 格式:Windows 哈希标准导出格式; session 格式:ophcrack 保存的会话文件(恢复任务) -f hash.txt(加载 pwdump 哈希);-f session.sav(恢复会话)
-w dir load hashes from encrypted SAM in dir 从指定目录加载加密 SAM 文件(需同时存在 SYSTEM 文件,用于解密哈希) -w /root/sam_files/(目录含 SAM 和 SYSTEM 文件)

3. 结果与日志参数

参数 英文说明 中文解析 示例
-e do not display empty passwords 不显示空密码(过滤未设置密码的用户结果) ophcrack -g -e -f hash.txt
-i hide usernames 隐藏用户名,仅输出密码 ophcrack -g -i -f hash.txt
-I show usernames (default) 显示用户名(默认),输出"用户名-密码"对应关系 ophcrack -g -I -f hash.txt
-l file log all output to file 将所有输出(进度、结果、报错)记录到日志文件 -l crack_log.txt
-o file write output to file (pwdump format) 将破解结果以 pwdump 格式写入文件(格式:用户名:RID:LM哈希:NTLM哈希:密码::) -o result.pwdump
-x file export data to file (CSV format) 将结果以 CSV 格式导出(用户名,密码,LM哈希,NTLM哈希),便于 Excel 分析 -x result.csv
-u display statistics when cracking ends 破解结束后显示统计信息(总哈希数、破解成功数、耗时、速度) ophcrack -g -u -f hash.txt

4. 性能与会话参数

参数 英文说明 中文解析 示例
-n num specify the number of threads 指定线程数,建议与 CPU 核心数匹配(如 4 核用 -n 4),提升并行效率 -n 8(启用 8 线程)
-p num preload (0=none,1=index,2=index+end,3=all default) 彩虹表预加载模式(控制内存占用与速度): 0=不预加载;1=预加载索引;2=索引+末尾;3=全加载(最快,内存占用最高) -p 3(全预加载,适合内存充足场景)
-s disable session auto-saving 禁用会话自动保存,中断后无法恢复进度 ophcrack -g -s -f hash.txt
-S session_file specify session file to save progress 指定会话文件,定期保存破解进度,中断后用 -f 加载恢复 -S crack_session.sav

5. 调试与辅助参数

参数 英文说明 中文解析 示例
-c config_file specify the config file to use 指定配置文件(预设表目录、输出格式等),避免重复输入参数 -c my_config.conf
-D display lots of debugging information 显示详细调试信息(表加载、哈希比对、线程状态),用于排查故障 ophcrack -g -D -f hash.txt
-h display this information 显示帮助信息(所有参数说明与示例) ophcrack -h
-q quiet mode 安静模式,仅输出破解成功的结果,不显示进度与冗余信息 ophcrack -g -q -f hash.txt
-v verbose 详细模式,输出表加载、哈希匹配等过程信息(比默认详细,少于 -D) ophcrack -g -v -f hash.txt

附:官方示例解析

官方示例命令 中文解析
ophcrack -g -d /path/to/tables -t xp_free_fast,0,3:vista_free -f in.txt 1. -g:命令行模式; 2. -d /path/to/tables:彩虹表基础目录; 3. -t:使用 xp_free_fast 表的 0、3 子表 + vista_free 全表; 4. -f in.txt:加载 in.txt 中的 pwdump 格式哈希; 功能:破解 in.txt 中的哈希,用指定彩虹表匹配

三、ophcrack-cli 完整使用教程

1. 前提准备:获取 Windows 密码哈希

ophcrack-cli 需先获取目标 Windows 系统的 LM/NTLM 哈希,常见 3 种获取方式:

  1. 本地导出(Windows 系统权限)

    在目标 Windows 系统中,用 pwdump7.exe 工具导出(需管理员权限):
    pwdump7.exe > hash.txt

    生成的 hash.txt 为 pwdump 格式,包含"用户名:RID:LM哈希:NTLM哈希::"。

  2. 远程导出(渗透测试场景)

    通过 Meterpreter 会话导出(获取目标主机 Meterpreter 后):
    run post/windows/gather/hashdump

    输出结果复制到 Kali 的 hash.txt 中。

  3. 离线提取(SAM 文件)

    从 Windows 系统盘复制 C:\Windows\System32\config\SAMSYSTEM 文件到 Kali,用 samdump2 提取哈希:
    samdump2 SYSTEM SAM > hash.txt

2. 彩虹表准备:下载与存放

Kali 默认仅提供基础彩虹表(如 xp_free_fast、vista_free),复杂密码需下载完整版,步骤如下:

  1. 查看默认表目录
    Kali 默认彩虹表路径:/usr/share/ophcrack/tables/,包含 xp_free_fast(XP 简单密码表)、vista_free(Vista 基础表)。
  2. 下载扩展彩虹表
    访问 ophcrack 官网彩虹表页面,下载对应系统的表(如 Windows 7 需下载 win7_x64 系列),解压后放到自定义目录(如 /root/ophcrack_tables/)。

3. 基础场景:破解 pwdump 格式哈希

场景 :已获取 hash.txt(pwdump 格式,XP 系统哈希),用 Kali 默认 xp_free_fast 表破解,输出日志与统计信息。

复制代码
# 命令
ophcrack -g -d /usr/share/ophcrack/tables/ -t xp_free_fast -f hash.txt -l crack_log.txt -u -v

# 参数解析
# -g:命令行模式
# -d:指定默认彩虹表目录
# -t xp_free_fast:使用 XP 免费快速表
# -f hash.txt:加载 pwdump 哈希文件
# -l crack_log.txt:日志保存到 crack_log.txt
# -u:结束后显示统计信息
# -v:详细输出过程

# 结果查看
# 1. 直接查看终端输出(含"用户名:密码")
# 2. 打开 crack_log.txt 查看完整日志
# 3. 统计信息示例:"Cracked 3 of 5 hashes (60.00%) in 12 seconds"

4. 进阶场景:多彩虹表组合 + 会话保存

场景:破解 Vista/Windows 7 哈希,需同时用 vista_free 表和自定义 win7_x64 表,且需保存会话防止中断(如破解耗时较长)。

复制代码
# 命令
ophcrack -g -d /root/ophcrack_tables/ -t vista_free:win7_x64,1,2 -f hash.txt -S win7_session.sav -o win7_result.pwdump -n 4

# 参数解析
# -d /root/ophcrack_tables/:自定义表目录(含 vista_free 和 win7_x64 子目录)
# -t vista_free:win7_x64,1,2:同时使用 vista_free 全表 + win7_x64 表的 1、2 号子表(针对性破解复杂密码)
# -S win7_session.sav:会话进度保存到 win7_session.sav(中断后可恢复)
# -o win7_result.pwdump:破解结果以 pwdump 格式保存(便于其他工具调用)
# -n 4:启用 4 线程(匹配 4 核 CPU,提升速度)

# 中断后恢复会话命令
ophcrack -g -f win7_session.sav -S win7_session.sav -v

# 结果查看
# 1. 打开 win7_result.pwdump 查看"用户名:RID:LM哈希:NTLM哈希:密码::"格式结果
# 2. 恢复会话后,工具自动从上次中断位置继续破解

5. 离线场景:从 SAM 文件直接破解

场景:已获取目标 Windows 系统的 SAM 和 SYSTEM 文件(存放于 /root/sam_backup/ 目录),无需提前提取哈希,直接加载文件破解。

复制代码
# 前提:确保 /root/sam_backup/ 目录下存在 SAM 和 SYSTEM 两个文件
ls /root/sam_backup/  # 验证文件是否存在(输出:SAM  SYSTEM)

# 命令
ophcrack -g -d /usr/share/ophcrack/tables/ -t xp_free_fast -w /root/sam_backup/ -e -q -x sam_result.csv

# 参数解析
# -w /root/sam_backup/:从该目录加载 SAM 和 SYSTEM 文件,自动提取并解密哈希
# -e:不显示空密码(过滤未设置密码的用户)
# -q:安静模式(仅输出破解成功的结果,减少冗余信息)
# -x sam_result.csv:结果以 CSV 格式导出(便于 Excel 整理,格式:用户名,密码,LM哈希,NTLM哈希)

# 结果查看
# 1. 终端直接显示破解成功的"用户名:密码"
# 2. 用 Excel 打开 sam_result.csv 查看结构化数据

6. 性能优化场景:全预加载 + 多线程(高配置服务器)

场景:Kali 运行在 8 核 16GB 内存服务器上,破解 Windows 7 复杂哈希,需最大化利用硬件资源提升速度。

复制代码
# 命令
ophcrack -g -d /root/ophcrack_tables/ -t win7_x64 -f hash.txt -n 8 -p 3 -D -l high_perf_log.txt

# 参数解析
# -n 8:启用 8 线程(匹配 8 核 CPU,并行处理哈希比对)
# -p 3:彩虹表全预加载(将所有表数据加载到内存,避免磁盘 IO 瓶颈,需 8GB+ 内存)
# -D:详细调试模式(查看线程运行状态、表加载进度,便于优化)
# 其他参数:-d 指定自定义表目录,-f 加载哈希文件,-l 保存日志

# 性能验证
# 破解开始后,通过 top 命令查看 CPU 占用(应为 800% 左右,即 8 核满负载)
# 日志中可查看"Candidates per second: 50000+"(每秒比对 5 万+ 候选密码,比默认配置提升 2-3 倍)

7. 特殊场景:仅破解指定用户哈希

场景:hash.txt 中包含多个用户哈希,仅需破解管理员用户(如 Administrator、admin),减少无关计算。

复制代码
# 步骤 1:筛选指定用户的哈希(生成新文件 admin_hash.txt)
grep -E "Administrator|admin" hash.txt > admin_hash.txt

# 步骤 2:破解筛选后的哈希
ophcrack -g -d /usr/share/ophcrack/tables/ -t xp_free_fast -f admin_hash.txt -o admin_result.txt -u

# 命令解析
# grep -E "Administrator|admin":用正则筛选含 Administrator 或 admin 的行(即目标用户哈希)
# 后续破解命令:仅针对 admin_hash.txt 中的哈希,减少计算量,提升效率

# 结果查看
# 打开 admin_result.txt,仅包含 Administrator 和 admin 用户的"用户名:密码"结果

四、常见问题与解决方案

常见问题 原因分析 解决方案
"No tables found in directory /path/to/tables" 1. -d 指定的目录不存在;2. 目录下无对应表的子目录(如 -t xp_free_fast,但目录下无该子目录) 1. 用 ls /path/to/tables 验证目录是否存在;2. 确认表子目录名与 -t 指定的一致(如 xp_free_fast 需存在同名子目录);3. 重新下载彩虹表并解压到正确目录
"Out of memory"(内存不足) -p 3(全预加载)时,彩虹表体积过大(如 win7_x64 表约 10GB),内存不足 1. 降低预加载级别:将 -p 3 改为 -p 2(预加载索引+末尾)或 -p 1(仅预加载索引);2. 关闭其他占用内存的进程(如用 kill 命令结束无关程序);3. 若硬件允许,升级内存到 16GB+
"0 hashes cracked"(破解成功率为 0) 1. 彩虹表版本与 Windows 系统不匹配(如用 XP 表破解 Windows 10 哈希);2. 密码复杂度超出表覆盖范围(如 12 位混合字符密码,免费表仅支持 8 位以内);3. 哈希文件格式错误(非 pwdump 或 session 格式) 1. 确认目标系统版本,下载对应彩虹表(如 Windows 10 需专用表);2. 启用暴力破解补充(默认 -B 已启用,无需额外参数);3. 用 cat hash.txt 查看哈希格式,确保为"用户名:RID:LM哈希:NTLM哈希::"
会话恢复失败("Session file corrupted") 1. 会话文件(如 win7_session.sav)被误删或修改;2. 恢复时使用的彩虹表目录与保存会话时不一致 1. 确保会话文件完整,未被编辑;2. 恢复时 -d 指定的表目录需与保存会话时完全一致(如之前用 /root/tables,恢复时不可改为 /usr/share/tables)

五、注意事项与法律声明

  • 彩虹表合法性:仅使用开源免费彩虹表(如官网提供的 xp_free_fast、vista_free),避免使用盗版或侵权的商业彩虹表。
  • 授权要求:仅可对合法授权的目标系统使用(如企业内部运维、客户授权的渗透测试),未经授权破解他人系统密码,涉嫌违反《中华人民共和国网络安全法》《刑法》,需承担法律责任。
  • 表更新:Windows 10/11 系统的哈希算法(如 NTLMv2)已升级,传统彩虹表破解效率极低,建议搭配其他工具(如 hashcat)联合使用。
  • 数据安全:哈希文件、破解结果、会话文件包含敏感信息,需加密存储(如用 zip -e 加密),避免泄露。
相关推荐
紫雾凌寒2 小时前
Claude Code 自动模式:一种更安全的跳过权限审批的方式【译】
安全·ai·ai编程·claude·claudecode
Biomamba生信基地2 小时前
OpenClaw可能遇到的安全风险
安全·生物信息学·openclaw
金士镧(厦门)新材料有限公司2 小时前
PVC抑烟剂:让卷材更安全的隐形守护者
科技·安全·全文检索·生活·能源
骥龙2 小时前
第七篇:频道接入安全——严防未授权对话
人工智能·安全
feng_you_ying_li2 小时前
linux指令工具vim和gcc的介绍(6)
linux
charlie1145141912 小时前
2026年正点原子开发板移植方案——从0开始的Rootfs之路(5)WSL + NFS 网络启动踩坑记:从挂载失败到成功启动的完整历程
linux·网络·驱动开发·学习·嵌入式·嵌入式linux
头疼的程序员2 小时前
计算机网络:自顶向下方法(第七版)第七章 学习分享(四)
网络·学习·计算机网络
Wu Junwu2 小时前
Linux启动过程中的initramfs和rootfs详解
linux·根文件系统·内核编译
tiantianuser2 小时前
RDMA设计63:怎么进行网络嗅探功能测试
网络·fpga开发·rdma·高速传输·cmac·roce v2