banner
NEWS LETTER

John the Ripper

Scroll down

工具地址

John the Ripper

单词表规则语法


工具介绍

John the Ripper 是一款开源密码安全审计和密码恢复工具,适用于多种操作系统。John the Ripper jumbo支持数百种哈希和密码类型,包括:Unix 系统(Linux、*BSD、Solaris、AIX、QNX 等)、macOS、Windows、“Web 应用”(例如 WordPress)、组件(例如 Notes/Domino)和数据库服务器(SQL、LDAP 等)的用户密码;网络流量捕获(Windows 网络身份验证、WiFi WPA-PSK 等);加密私钥(SSH、GnuPG、加密货币钱包等);文件系统和磁盘(macOS .dmg 文件和“稀疏包”、Windows BitLocker 等);存档(ZIP、RAR、7z)以及文档文件(PDF、Microsoft Office 等)。

搭建流程

Kali


使用方法

命令

命令 解释
john --wordlist=<WORDLIST_PATH> <FILE_PATH> 自动破解(可能不太可靠)
john --list=formats 列出 John 的所有格式
john --format=<FORMAT> --wordlist=<WORDLIST_PATH> <FILE_PATH> 特定格式破解
john --single --format=<FORMAT> <FILE_PATH> 单一破解模式
john --wordlist=<WORDLIST_PATH> --rule=<RULES> <FILE_PATH> 使用自定义规则
unshadow <PASSWD_PATH> <SHADOW_PATH> > <OUTPUT_FILE> 转换 passwd 和 shadow 文件
zip2john <OPTIONS> <ZIP_PATH> > <OUTPUT_FILE> 转换 Zip 文件
rar2john <RAR_PATH> > <OUTPUT_FILE> 转换 RAR 文件
ssh2john <ID_RSA_PATH> > <OUTPUT_FILE> 转换 id_rsa 文件

参数

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
john --format=<FORMAT> --wordlist=<WORDLIST_PATH> <FILE_PATH>
# <FORMAT>: raw-md5,哈希的格式,如果处理标准哈希类型,要加上raw-,推荐搭配 hash-identifier,hashID 或者 Hashes.com 来先识别哈希类型
# <WORDLIST_PATH>: /usr/share/wordlists/rockyou.txt,使用的单词表的路径,建议搭配 SecLists
# <FILE_PATH>: hash.txt,包含要破解的哈希的文件,如果位于同一目录中,无需路径,只需文件名即可。



john --wordlist=<WORDLIST_PATH> --rule=<RULES> <FILE_PATH>
# <RULES>: PasswordRules,设置规则,通常位于 /opt/john/john.conf 或者 /etc/john/john.conf,可在 john.conf 文件中定义。
# 第一行以 [List.Rules:PasswordRules] 开头来定义规则的名称
# 必须定义哪些字符被附加、添加或包含。通过在 [] 中添加字符集,遵循 "" 的修饰符模式,具体查看例子
# c:按位置将字符大写
# [0-9]:包括数字 0-9
# [0]:仅包含数字 0
# [A-z]:包含大写和小写
# [A-Z]:仅包含大写字母
# [a-z]:仅包含小写字母...
# 可以组合使用定义想修改的单词的位置和内容



unshadow <PASSWD_PATH> <SHADOW_PATH> > <OUTPUT_FILE>
# <PASSWD_PATH>: /etc/passwd,从目标机器获取的文件副本,也可用文件中的相关行
# <SHADOW_PATH>: /etc/shadow,从目标机器获取的文件副本,也可用文件中的相关行
# <OUTPUT_FILE>: unshadowed.txt,输出为 txt 文件

zip2john <OPTIONS> <ZIP_PATH> > <OUTPUT_FILE>
# <OPTIONS>: 将特定的校验和选项传递给 zip2john,通常不用
# <ZIP_PATH>: zipfile.zip,输入 Zip 文件的路径

rar2john <RAR_PATH> > <OUTPUT_FILE>
# <RAR_PATH>: rarfile.rar,输入 RAR 文件的路径

ssh2john <ID_RSA_FILE> > <OUTPUT_FILE>
# <ID_RSA_FILE>: id_rsa,输入 id_rsa 文件的路径

例子

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
john --wordlist=/usr/share/wordlists/rockyou.txt hash.txt
# 使用 rockyou.txt 字典,来尝试自动破解 hash.txt



john --list=formats | grep -iF "md5"
# 查询与 md5 相关,可指定的哈希函数

john --format=raw-md5 --wordlist=/usr/share/wordlists/rockyou.txt hash1.txt
# 指定 raw-md5 哈希函数,使用 rockyou.txt 字典,来尝试破解 hash1.txt

john --format=raw-SHA1 --wordlist=/usr/share/wordlists/rockyou.txt hash2.txt
# 指定 raw-SHA1 哈希函数,使用 rockyou.txt 字典,来尝试破解 hash2.txt

john --format=raw-SHA256 --wordlist=/usr/share/wordlists/rockyou.txt hash3.txt
# 指定 raw-SHA256 哈希函数,使用 rockyou.txt 字典,来尝试破解 hash3.txt

john --format=Whirlpool --wordlist=/usr/share/wordlists/rockyou.txt hash4.txt
# 指定 Whirlpool 哈希函数,使用 rockyou.txt 字典,来尝试破解 hash4.txt

john --format=nt --wordlist=/usr/share/wordlists/rockyou.txt ntlm.txt
# 指定 nt 哈希函数,使用 rockyou.txt 字典,来尝试破解 ntlm.txt



john --single --format=raw-md5 hash07.txt
# 指定单一破解模式,通过 John 自带重整规则来新建用户名单词表,指定 raw-md5 哈希函数,来尝试破解 hash07.txt
# 需要进行更改准备,以便 John 知道从哪个用户名进行创建单词表
# 更改 hash07.txt,例如原文件为 1efee03cdcb96d90ad48ccc7b8666033,需要自己再加上用户名和冒号,mike:1efee03cdcb96d90ad48ccc7b8666033,John 会通过单一攻击模式自动创建与 mike 相关的字典进行破解



unshadow local_passwd local_shadow > unshadowed.txt
# 将 passwd 和 shadow 文件一起转化为 unshadowed.txt,一般不需要指定 --format=,少数需要

john --wordlist=/usr/share/wordlists/rockyou.txt unshadowed.txt
# 使用 rockyou.txt 字典,指定 unshadowed.txt 文件尝试破解



zip2john zipfile.zip > zip_hash.txt
# 将 zipfile.zip 文件转化为 zip_hash.txt,一般不需要指定 <options>,少数需要

john --wordlist=/usr/share/wordlists/rockyou.txt zip_hash.txt
# 使用 rockyou.txt 字典,指定 zip_hash.txt 文件尝试破解,然后 unzip zipfile.zip 输入解压密码解压



/opt/john/rar2john rarfile.rar > rar_hash.txt
# 将 rarfile.rar 文件转化为 rar_hash.txt

john --wordlist=/usr/share/wordlists/rockyou.txt rar_hash.txt
# 使用 rockyou.txt 字典,指定 rar_hash.txt 文件尝试破解,然后 unrar -e rarfile.rar 输入解压密码解压



/opt/john/ssh2john.py id_rsa > id_rsa_hash.txt
# 将 id_rsa 文件转化为 id_rsa_hash.txt

john --wordlist=/usr/share/wordlists/rockyou.txt id_rsa_hash.txt
# 使用 rockyou.txt 字典,指定 id_rsa_hash.txt 文件尝试破解



cAz"[0-9] [!£$%@]"
# c:将首字母大写
# Az:附加到单词的末尾
# [0-9]:0-9 范围内的数字
# [!£$%@]:密码后跟以下符号之一
# [a]:仅包括 a

其他文章
请输入关键词进行搜索