ARTICLE DETAIL

资讯详情

深耕网站视觉设计与运营推广的一线实战洞察。

Windows下John the Ripper jumbo版密码审计与哈希破解实战

Windows下John the Ripper jumbo版密码审计与哈希破解实战 简介这是一款名为John the Ripper的密码破解工具主要面向安全测试与密码恢复场景适用于六十四位视窗操作环境。该工具支持多种常见加密算法例如消息摘要类的MD4、MD5以及传统对称加密DES等可针对Unix或Linux系统中的密码哈希进行分析与破解。该压缩包为zip格式整体大小约为六十二点三五兆字节页面未列出包内具体文件数量和类型但根据增强版常见结构解压后一般会包含主程序、配置规则、字典列表、内置函数库及使用文档。借助这些内容读者可以快速搭建口令分析环境并结合自身需要调整规则或字典进行破解练习其中还涉及对RAR压缩包口令的提取与破解。目前已有六千六百零三人学习或下载适合安全运维人员、渗透测试学习者、竞赛参赛者以及在校学生作为入门与进阶的实用工具。 打开WinRAR看到john-1.9.0-jumbo-1-win64.zip这个文件名第一反应往往是又是个老古董安全工具。这句话对一半John the Ripper 确实是个有年头名字的项目但“jumbo”这个后缀意味着它不是那个只能破传统Unix密码的最小版本而是集成了几百种哈希格式的增强版。对Windows用户来说这个zip包就是最省事的入口解压就能用不用编译不用装Linux也不用折腾依赖。先说说它到底能干什么。John the Ripper下面直接叫John是一个密码恢复和审计工具它不是效果拉满的黑客软件而是帮你验证密码强度、恢复丢失口令、排查弱口令的“瑞士军刀”。系统管理员审计员工弱密码、安全测试员做授权检测、或者你自己忘了某个压缩包密码想正规恢复都会用到它。1.9.0-jumbo-1-win64这个包就是John在Windows 64位系统上的完整发行版覆盖从NT哈希到ZIP、RAR、PDF、Office文档、数据库口令的一大堆格式。这篇是写给两类人看的一类是第一次下载这个zip包想知道怎么把它跑起来的新手另一类是用过Linux版想在Windows机器上快速搭一套审计环境的老手。我在不少Windows环境里折腾过这个包踩过的坑都会写出来照着做基本不会卡住。1. 先弄清楚这套工具到底是什么版本1.1 文件名里的信息够你看三分钟john-1.9.0-jumbo-1-win64.zip可以拆成四段读john是项目名1.9.0是主线版本号jumbo-1是jumbo补丁的版本号win64是编译目标平台。1.9.0属于官方核心分支的一个稳定快照大概对应2019年前后的代码状态。而jumbo这个前缀指的是Openwall社区维护的“jumbo patch”版本——可以理解成官方核心版的豪华追加包。我见过不少人下载了核心版之后抱怨“怎么连ZIP都跑不了”实际上就是没搞清楚jumbo和core的区别。1.2 为什么我一直推荐jumbo版如果你在Kali Linux里用过john大概率已经是jumbo版了因为Kali打的包几乎都带jumbo。核心版只支持少数几种Unix口令格式DES、MD5crypt、Blowfish等而jumbo版把支持范围扩大到几百种哈希格式NT、LM、MySQL、PostgreSQL、ZIP压缩包、RAR、7z、PDF、Word/Excel、SSH私钥、macOS plist、BitLocker等等。没有这些格式支持你在Windows上拿到的哈希文件根本喂不进John。我最早用核心版处理一个ZIP压缩包折腾半天干瞪眼换成jumbo版之后用自带的zip2john.exe把压缩包里的哈希转出来再丢给John问题就简单了一半。所以下载这个包你真正赚到的是“格式全家桶”而不是那点版本号差异。1.3 Win64区分发版的实际优势有人喜欢说“跑hashcat更快”但现实中你是Windows用户或者你手头只有一台Windows工作机那win64版的John就是起步成本最低的选择。不需要虚拟机、不需要WSL解压后在cmd里直接敲exe就能跑。win64版在64位Windows上用原生64位编译内存访问和整数运算效率比32位版本高纯CPU破解场景下更有利。它还通过OpenCL接口调用本机显卡去分担一部分哈希计算前提是显卡驱动里带了OpenCL运行时。如果你是刚入手直接拿这个包练手完全够用后面真想追求极限再考虑hashcat也不迟。2. 解压、目录结构和初始化2.1 解压后该放在哪个目录我第一次解压时图省事放到了C:\Program Files下面结果后面调exe时被目录权限问题折腾了几分钟。其实没必要放受系统保护的目录建议在D盘或E盘建一个纯英文路径例如D:\tools\john\。这工具本身不需要安装是绿色运行方式。提示整个目录路径尽量不要出现中文、空格和特殊字符。Windows自带命令行偶尔能容忍但John的一些辅助脚本对路径的解析方式很原始空格很容易让参数切分出问题。2.2 run目录下的关键文件解压后会看到一个run目录这是真正的核心。下面这些文件你必须认识john.exe主程序所有破解操作都由它完成。john.conf配置文件所有默认规则、掩码、字符集都在里面。john.pot破解历史记录文件已经解出的口令会存到这里。password.lst自带的一份弱口令字典。一系列*2john.exe把各种格式文件转换成John可识别哈希的工具例如zip2john.exe、rar2john.exe、pdf2john.exe、office2john.py、ssh2john.py等。拿到包之后别急着跑破解先用一条命令确认环境正常john.exe --listformats命令会刷出几百行格式列表说明自检通过。如果你看到类似“Unknown”或“file not found”的提示多半是解压不完整或杀毒软件误删了文件。实测Windows Defender偶尔会把*2john工具删掉解压前最好先在杀毒软件里加个排除目录。2.3 环境变量配置不配环境变量也能用但你如果经常在不同目录下操作我建议把run目录加进PATH。在“系统属性 - 环境变量 - PATH”里新增一条D:\tools\john\run以后直接敲john就能运行不用每次cd来cd去。配完新环境变量后记得重开cmd窗口不然老窗口拿不到新配置。另外如果cmd里敲john还是报“不是内部或外部命令”手动把%JOHN_HOME%之类的变量去掉直接写死路径最不容易出错。3. 实战从哈希识别到完整破解3.1 先造一个测试哈希没有真实环境时我习惯在虚拟机里建一个测试账号把它的哈希提出来练手。拿最基础的Windows NT哈希举例。先用管理员权限运行cmd导出本机SAM和SYSTEM注册表信息reg.exe save hklm\sam sam.hiv reg.exe save hklm\system system.hiv然后借用John自带的samdump2也可以配合其他工具把里面的哈希倒出来存成一个passwords.txt。内容大致是冒号分隔的账号名、RID、LM hash、NT hash比如admin:1001:aad3b435b51404eeaad3b435b51404ee:39cd85e8acb31f3d8e8a0e6:...。具体哈希值不重要关键是格式里带冒号分隔John对NT格式直接认。3.2 识别哈希类型拿到一坨不知道格式的哈希时第一件事是识别不要瞎猜。jumbo版的优势是几乎自带识别能力直接跑john而不指定--format它也会自动尝试常见的几种格式多数时候能猜对。稳妥做法是先用john --listformats对照或者用hashid识别。这里有一张速查表是我实践中常用的格式对应关系哈希/文件类型John格式名备注Windows NT密码NTSAM/NTDS里最常见Windows LMLM很古老现代环境很少遇到Unix MD5md5crypt/etc/shadow常见Unix bcryptbcrypt以$2y$等开头ZIP压缩包用zip2john生成转换为PKZIP哈希RAR压缩包用rar2john生成转换为RAR哈希Office文档用office2john.py生成依赖OpenSSL支持SQL Servermssql数据库认证哈希MySQLmysql/mysql-sha1老版本常见格式名别记错--formatNT能跑--formatnt也能跑John对大小写比较宽容但拼错直接报Unknown format。所以我对不确定的哈希先不指定format让John自动判断看到提示方括号里的格式名再决定下一步。3.3 三种常用破解模式单机实战时我一般只用三种模式覆盖大多数场景。第一种是字典模式也是最常用的john --wordlistpassword.lst --formatNT passwords.txt它把password.lst里的每一条当成候选密码逐个计算哈希和当前结果对比。弱口令基本一轮就出来。第二种是字典加规则适合口令有变形的情况john --wordlistpassword.lst --rules --formatNT passwords.txt规则就是john.conf里预置的一堆字符串变换逻辑比如把a变成、在单词末尾加数字、大小写来回切。你设密码是有套路的规则就是专门对付套路的。这个模式下速度会慢因为每个词会衍生出几十甚至几百个变体但命中率明显高。第三种是增量模式相当于暴力穷举john --incremental --formatNT passwords.txt这个模式在指定字符集范围内穷举所有组合适合字典和规则都打不中的情况。主要缺点是耗时很长我在生产环境里的习惯是先用前两种模式24小时没结果再考虑增量。除了这三种掩码模式值得单独掌握。它可以告诉John“我按某种字符模式来猜”john --mask?l?l?l?l?d?d --formatNT passwords.txt?l表示小写字母?d表示数字。这条命令只跑“4个小写字母2个数字”的组合比全量增量快几个数量级。jumbo版还支持在john.conf里自定义占位符例如定义?Labcdefghijklmnopqrstuvwxyz灵活度很高。3.4 查看进度和结果破解过程中按回车可以查看当前进度按q退出且不中断会话之后用--restore恢复。破解完毕后再看结果john --show --formatNT passwords.txt--show只显示已经解出的口令不会重新跑。如果全部解完会列出明文如果还剩未解出的会提示“0 password hashes cracked, 3 left”之类的话。还有个细节john.pot文件会把已破解结果保存下来下次跑同一条命令时它在pot里命中过的哈希不会重复计算。4. 常见问题与性能优化4.1 加载不到哈希的几种原因No password hashes loaded是我遇到最多的报错几乎每次新手提问都绕不开。整理一下常见原因文件路径写错。检查是否进入正确的目录或文件是否存在。format指定错了。NT哈希用了--formatLM或者ZIP文件转换出来却用--formatNT都会导致识别失败。哈希文件里混了无关文本。有些工具导出的文件带表头说明John默认要求很严格解析失败的行会直接跳过最后一条都不剩。文件编码问题。从网页复制哈希时可能带着不可见字符建议用记事本另存为ANSI编码或在cmd里用type看一下文件内容是否干净。这里面最坑的是第二种。如果我不确定格式会先不加--format参数让John自动侦测。它虽然慢一些但至少会输出Loaded 3 password hashes with 3 different salts (NT [MD4 256/256 AVX2 8x3])这种信息看到方括号里的NT就知道格式对了。4.2 中文路径和空格遇到的坑Windows环境下很多人喜欢把工具丢在“D:\安全测试工具\john\”然后写路径时忘了加引号。我的建议很简单从一开始就避免。把整个run目录放到纯英文路径比如C:\john\run省掉后面一堆编码问题。另外写bat批处理脚本时注意转义。用cmd做for循环批量处理文件时如果文件名带了空格循环变量引用最好都加上双引号否则John拿到一个被拆散的参数直接报错。这类问题在日志里很难看耗神得很不如提前做好路径规划。4.3 多核与GPU配置默认John只会用一部分资源。Windows上实测跑大量哈希时用--fork参数让多个进程并行效果明显john --fork8 --formatNT passwords.txt这里的8表示8个并行进程不是8个线程也不一定是越多越好。如果机器是4核8线程我更推荐--fork4让每个进程吃满两个超线程核心性能曲线更平滑。GPU方面jumbo版在检测到OpenCL时会在格式列表里出现OpenCL变体。查看本机显卡是否被识别john --listopencl-devicesOpenCL跑NT哈希确实比CPU快但对bcrypt这类内存依赖型哈希GPU优势没那么大。不要迷信显卡先看哈希格式再决定要不要开OpenCL。4.4 字典、规则和性能的取舍我常给团队讲一句话破密的核心不是软件是字典和规则。软件只是把所有候选值过一遍哈希速度基本固定真正决定能否解出来是你字典里有没有这个词、规则能不能变形出对方常用的风格。给一个通用性能参考表哈希类型纯CPU8核约速度单GPU约速度建议方案NT几百万/秒几亿/秒GPU优化空间大MD5几十万~几百万/秒上亿/秒GPU占优bcrypt几千/秒几千到几万/秒主要靠字典质量ZIP压缩包几十~几百/秒几千/秒字典规则优先表格里的数字是相对值不同硬件差异很大别当成精确基准。跑长周期任务前先确认字典里有没有常见弱口令再把规则调到合理档位最后才轮到增量模式。我个人的习惯顺序是默认字典 - 加rules - 自建针对性字典 - 增量/掩码。每走一步都先观察进度不要一上来就上终极武器。另一个实用技巧是碰到大体积哈希文件时先用小样本测试字典效果确定命中率再全量跑。否则几百万条哈希加上复杂的规则集可能跑几小时才发现规则太激进白白浪费资源。另外这类工具请务必只在你拥有明确授权的系统上做审计这个前提比任何参数都重要。最后再分享一点我的体会用John这套win64包折腾了大半年最大的感触是别把破解工具当成黑科技。它只是把你猜的候选口令做哈希比对真正考验的是判断力知道目标格式是什么、选什么策略、用哪本字典比盲目调高穷举位数重要得多。下载解压这个zip只是一个开始我建议你拿一个自己设定的测试哈希把字典模式、规则、掩码全流程跑一遍等看到结果栏里出现明文口令时你对这套工具的信心自然就有了。后面再遇到ZIP、Office、数据库口令思路都是同一个套路先转格式再选策略最后看结果。只要你把这套流程走顺了完全可以举一反三。本文还有配套的精品资源点击获取
返回列表