常用
-a 指定要使用的破解模式,其值参考后面对参数。“-a 0”字典攻击,“-a 1” 组合攻击;“-a 3”掩码攻击。
-m 指定要破解的hash类型,如果不指定类型,则默认是MD5
-o 指定破解成功后的hash及所对应的明文密码的存放位置,可以用它把破解成功的hash写到指定的文件中
--force 忽略破解过程中的警告信息,跑单条hash可能需要加上此选项
--show 显示已经破解的hash及该hash所对应的明文
--increment 启用增量破解模式,你可以利用此模式让hashcat在指定的密码长度范围内执行破解过程
--increment-min 密码最小长度,后面直接等于一个整数即可,配置increment模式一起使用
--increment-max 密码最大长度,同上
--outfile-format 指定破解结果的输出格式id,默认是3
--username 忽略hash文件中的指定的用户名,在破解linux系统用户密码hash可能会用到
--remove 删除已被破解成功的hash
-r 使用自定义破解规则
按s键可以查看破解的状态,
p键暂停
r键继续破解
q键退出破解
(1)普通
-m, —hash-type=NUM 哈希类别,其NUM值参考其帮助信息下面的哈希类别值,其值为数字。如果不指定m值则默认指md5,例如-m 1800是sha512 Linux加密。
-a, --attack-mode=NUM 攻击模式,其值参考后面对参数。“-a 0”字典攻击,“-a 1” 组合攻击;“-a 3”掩码攻击。
-V, —version 版本信息
-h, --help 帮助信息。
--quiet 安静的模式, 抑制输出
(2)基准测试
-b, --benchmark 测试计算机破解速度和显示硬件相关信息
(3)杂项
--hex-salt salt值是用十六进制给出的
--hex-charset 设定字符集是十六进制给出
--runtime=NUM 运行数秒(NUM值)后的中止会话
--status 启用状态屏幕的自动更新
--status-timer=NUM 状态屏幕更新秒值
--status-automat 以机器可读的格式显示状态视图
--session 后跟会话名称,主要用于中止任务后的恢复破解。
(4)文件
-o, --outfile=FILE 定义哈希文件恢复输出文件
--outfile-format=NUM 定义哈希文件输出格式,见下面的参考资料
--outfile-autohex-disable 禁止使用十六进制输出明文
-p, --separator=CHAR 为哈希列表/输出文件定义分隔符字符
--show 仅仅显示已经破解的密码
--left 仅仅显示未破解的密码
--username 忽略hash表中的用户名,对linux文件直接进行破解,不需要进行整理。
--remove 移除破解成功的hash,当hash是从文本中读取时有用,避免自己手工移除已破解的hash
--stdout 控制台模式
--potfile-disable 不写入pot文件
--debug-mode=NUM 定义调试模式(仅通过使用规则进行混合),参见下面的参考资料
--debug-file=FILE 调试规则的输出文件(请参阅调试模式)
-e, --salt-file=FILE 定义加盐文件列表
--logfile-disable 禁止logfile
(4) 资源
-c, --segment-size=NUM 字典文件缓存大小(M)
-n, --threads=NUM 线程数
-s, --words-skip=NUM 跳过单词数
-l, --words-limit=NUM 限制单词数(分布式)
(5)规则
-r, --rules-file=FILE 使用规则文件: -r 1.rule,
-g, --generate-rules=NUM 随机生成规则
--generate-rules-func-min= 每个随机规则最小值
--generate-rules-func-max=每个随机规则最大值
--generate-rules-seed=NUM 强制RNG种子数
(6)自定义字符集
-1, --custom-charset1=CS 用户定义的字符集
-2, --custom-charset2=CS 例如:
-3, --custom-charset3=CS --custom-charset1=?dabcdef : 设置?1 为0123456789abcdef
-4, --custom-charset4=CS -2mycharset.hcchr : 设置 ?2 包含在mycharset.hcchr
(7)攻击模式
大小写转换攻击:
--toggle-min=NUM 在字典中字母的最小值
--toggle-max=NUM 在字典中字母的最大值
使用掩码攻击模式:
--increment 使用增强模式
--increment-min=NUM 增强模式开始值
--increment-max=NUM 增强模式结束值
排列攻击模式
--perm-min=NUM 过滤比NUM数小的单词
--perm-max=NUM 过滤比NUM数大的单词
查找表攻击模式:
-t, --table-file=FILE 表文件
--table-min=NUM 在字典中的最小字符值
--table-max=NUM 在字典中的最大字符值
打印攻击模式:
--pw-min=NUM 如果长度大于NUM,则打印候选字符
--pw-max=NUM 如果长度小于NUM,则打印候选字符
--elem-cnt-min=NUM 每个链的最小元素数
--elem-cnt-max=NUM 每个链的最大元素数
--wl-dist-len 从字典表中计算输出长度分布
--wl-max=NUM 从字典文件中加载NUM个单词,设置0禁止加载。
--case-permute 在字典中对每一个单词进行反转
(8)参考
输出文件格式:
1 = hash[:salt]
2 = plain 明文
3 = hash[:salt]:plain
4 = hex_plain
5 = hash[:salt]:hex_plain
6 = plain:hex_plain
7 = hash[:salt]:plain:hex_plain
8 = crackpos
9 = hash[:salt]:crackpos
10 = plain:crackpos
11 = hash[:salt]:plain:crackpos
12 = hex_plain:crackpos
13 = hash[:salt]:hex_plain:crackpos
14 = plain:hex_plain:crackpos
15 = hash[:salt]:plain:hex_plain:crackpos
内置的字符集:
?l = abcdefghijklmnopqrstuvwxyz 代表小写字母
?u = ABCDEFGHIJKLMNOPQRSTUVWXYZ 代表大写字母
?d = 0123456789 代表数字
?s = !"#$%&'()*+,-./:;<=>?@[\]^_`{|}~ 代表特殊字符
?a = ?l?u?d?s 大小写数字及特殊字符的组合
?b = 0x00 - 0xff 空格
?h | 0123456789abcdef [0-9a-f]
?H | 0123456789ABCDEF [0-9A-F]
攻击模式
0 = Straight (字典破解)
1 = Combination (组合破解)
2 = Toggle-Case (大小写转换)
3 = Brute-force(掩码暴力破解)
4 = Permutation(序列破解)
5 = Table-Lookup(查表破解)
6 = Hybrid dict + mask 字典加掩码破解
7 = Hybrid mask + dict 掩码+字典破解
- [示例哈希]
(https://hashcat.net/wiki/doku.php?id=example_hashes "example_hashes")
完整参数
- [options] - (选项)
选项 说明例子
-m, --hash-type Num Hash-type哈希类型,请参见下面的参考 -m 1000
-a, --attack-mode Num Attack-mode攻击模式,请参阅下面的参考 -a 3
-V, --version 打印版本
-h, --help 打印帮助
--quiet
抑制输出
--hex-salt
假设盐是以十六进制给出的
--hex-wordlist 假设wordlist中的单词是以十六进制给出的
--force 忽略警告
--status 启用状态屏幕的自动更新
--status-timer Num 将状态屏幕更新设置为X --status-timer=1
--machine-readable 以机器可读格式显示状态视图
--keep-guessing 在破解之后继续猜测哈希
--loopback 添加新的平原来导入目录
--weak-hash-threshold Num 阈值X何时停止检查w --weak=0
--markov-hcstat File 指定hcstat文件以使用 --markov-hc=my.hcstat
--markov-disable 禁用马尔科夫链,模拟经典的蛮力
--markov-classic 启用经典马尔科夫链,没有每个位置
-t, --markov-threshold Num 阈值X何时停止接受新的马尔可夫链 -t 50
--runtime Num 运行时间为X秒后中止会话 --runtime=10
--session Str 定义特定的会话名称 --session=mysession
--restore 从--session恢复会话
--restore-disable 不要写恢复文件
--restore-file-path File 恢复文件的具体路径 --restore-file-path=my.restore
-o, --outfile File 为恢复的散列定义outfile -o outfile.txt
--outfile-format Num 为恢复的散列定义outfile格式的X --outfile-format=7
--outfile-autohex-disable 禁止在输出平面中使用$ HEX []
--outfile-check-timer Num 将outfile检查之间的秒设置为X --outfile-check=30
-p, --separator Char hashlists和outfile的分隔符char -p :
--stdout 不要破解散列,而是只打印候选
--show 将hashlist与potfile比较; 显示破解的哈希
--left 将hashlist与potfile比较; 显示未破裂的哈希
--username 启用忽略散列文件中的用户名
--remove 一旦它们被破解,就可以清除哈希值
--remove-timer Num 更新输入哈希文件每X秒 --remove-timer=30
--potfile-disable 不要写potfile
--potfile-path Dir potfile的具体路径 --potfile-path=my.pot
--encoding-from Code(代码) 强制X |从内部词汇表编码 --encoding-from=iso-8859-15
--encoding-to Code 强制内部词汇表编码到X --encoding-to=utf-32le
--debug-mode Num 定义调试模式(仅通过使用规则混合) --debug-mode=4
--debug-file File 输出文件用于调试规则 --debug-file=good.log
--induction-dir Dir 指定用于回送|的归纳目录 --induction=inducts
--outfile-check-dir Dir 指定outfile目录来监视平原 --outfile-check-dir=x
--logfile-disable 禁用日志文件
--hccapx-message-pair Num 仅加载匹配X |的hccapx中的消息对 --hccapx-message-pair=2
--nonce-error-corrections Num BF的大小范围来取代AP的随机数最后一个字节 --nonce-error-corrections=16
--truecrypt-keyfiles File 要使用的密钥文件,用逗号分隔 --truecrypt-key=x.png
--veracrypt-keyfiles File 要使用的密钥文件,用逗号分隔 --veracrypt-key=x.txt
--veracrypt-pim Num VeraCrypt个人迭代multiplier --veracrypt-pim=1000
-b, --benchmark 运行基准
--speed-only 返回预期的攻击速度,然后退出
--progress-only 返回理想的进度步骤和时间来处理
-c, --segment-size 以MB为单位设置大小以从wordfile缓存到X -c 32
--bitmap-min Num 将位图允许的最小位设置为X --bitmap-min=24
--bitmap-max Num 将位图允许的最大位设置为X --bitmap-max=24
--cpu-affinity Str 锁定到CPU设备,用逗号分隔 --cpu-affinity=1,2,3
-I, --opencl-info 显示有关检测到的OpenCL平台/设备的信息 -I
--opencl-platforms Str 使用OpenCL平台,用逗号分隔 --opencl-platforms=2
-d, --opencl-devices Str 使用OpenCL设备,用逗号分隔 -d 1
-D, --opencl-device-types Str 使用OpenCL设备类型,用逗号分隔 -D 1
--opencl-vector-width Num 手动覆盖OpenCL矢量宽度到X --opencl-vector=4
-w, --workload-profile Num 启用特定的工作负载配置文件,请参阅下面的池 -w 3
-n, --kernel-accel Num 手动调整工作负载,将外环步长设置为X -n 64
-u, --kernel-loops Num 手动调整工作负载,将内环步长设置为X -u 256
--nvidia-spin-damp Num 解决方法NVIDIA?(英伟达?)CPU烧录循环错误,以百分比表示 --nvidia-spin-damp=50
--gpu-temp-disable 禁用温度和fanspeed读取和触发器
--gpu-temp-abort Num 如果GPU温度达到X摄氏度,则中止 --gpu-temp-abort=100
--gpu-temp-retain Num 尝试将GPU温度保持在X摄氏度 --gpu-temp-retain=95
--powertune-enable 启用功率调整。 完成|时恢复设置
--scrypt-tmto Num 手动覆盖scrypt的TMTO值为X --scrypt-tmto=3
-s, --skip Num 从一开始就跳过X个单词 -s 1000000
-l, --limit Num 限制X字从开始+跳过的单词 -l 1000000
--keyspace 显示密钥空间基础:mod值并退出
-j, --rule-left Rule(规则) 单词规则应用于左词表| |中的每个单词 -j 'c'
-k, --rule-right Rule 单词规则应用于右词表| |中的每个单词 -k '^-'
-r, --rules-file File 多个规则应用于来自词表|的每个词 -r rules/best64.rule
-g, --generate-rules Num 生成X随机规则 -g 10000
--generate-rules-func-min Num 强制每个规则的最小X函数
--generate-rules-func-max Num 强制每个规则的最大X个函数
--generate-rules-seed Num 强制将RNG种子设置为X
-1, --custom-charset1 CS 用户定义的字符集?1 -1 ?l?d?u
-2, --custom-charset2 CS 用户定义的字符集?2 -2 ?l?d?s
-3, --custom-charset3 CS 用户定义的字符集?3
-4, --custom-charset4 CS 用户定义的字符集?4
-i, --increment 启用屏蔽增量模式
--increment-min Num 在X |开始掩码递增 --increment-min=4
--increment-max Num 在X |处停止屏蔽递增 --increment-max=8