无码av一区,麻豆乱码国产一区二区三区,亚洲一区二区三区麻豆,美日韩精品视频

Hashcat 是一款密碼爆破神器,信息安全必備工具之一,特此收藏此文章記錄總結(jié)

2024-12-24 17:32:08

Hashcat 是一款密碼爆破神器,信息安全必備工具之一,特此收藏此文章記錄總結(jié),以備不時之需,同時也可能幫助到看到本本文的網(wǎng)友。

簡介

Hashcat 是世界上最快的密碼破解程序,是一個支持多平臺、多算法的開源的分布式工具。

官方:https://hashcat.net/hashcat/

Github:https://github.com/hashcat/hashcat

安裝

Windows

https://github.com/hashcat/hashcat/releases 下載最新版壓縮包,解壓根據(jù)自己的平臺運行 hashcat64.exe 或者 hashcat32.exe

常用參數(shù)

-m 破解 hash 類型

指定要破解的 hash 類型,后面跟 hash 類型對應的數(shù)字

-a 破解模式

指定要使用的破解模式,其值參考后面對參數(shù):

- [ Attack Modes ] -

  # | Mode
 ===+======
  0 | Straight                # 直接字典破解
  1 | Combination             # 組合破解
  3 | Brute-force             # 掩碼暴力破解
  6 | Hybrid Wordlist + Mask  # 字典+掩碼破解
  7 | Hybrid Mask + Wordlist  # 掩碼+字典破解

–increment

啟用增量破解模式,讓 hashcat 在指定的密碼長度范圍內(nèi)執(zhí)行破解

–increment-min

密碼最小長度,后面直接等于一個整數(shù)即可,配置 increment 模式一起使用

–increment-max

密碼最大長度,后面直接等于一個整數(shù)即可,配置 increment 模式一起使用

–force

忽略破解過程中的警告信息

–remove

刪除已被破解成功的 hash

–username

忽略 hash 文件中的指定的用戶名,在破解 Linux 系統(tǒng)用戶密碼 hash 會用到

–potfile-disable

不在 potfile 中記錄破解成功的 hash

-I

--opencl-info 顯示有關檢測到的 OpenCL 平臺 / 設備的信息,如果有一塊好的顯卡的話破解速度會快很多。

-o

--outfile 指定破解成功后的 hash 及所對應的明文密碼的存放位置

-O

--optimized-kernel-enable 啟用優(yōu)化的內(nèi)核(限制密碼長度)

-d

--opencl-devices 指定 opencl 的設備,我這里支持的設備列表如下:


Code


* Device #1: Intel(R) Core(TM) i7-9750H CPU @ 2.60GHz, skipped.
* Device #2: Intel(R) UHD Graphics 630, 384/1536 MB allocatable, 24MCU
* Device #3: AMD Radeon Pro 555X Compute Engine, 1024/4096 MB allocatable, 12MCU

-D

--opencl-device-types 指定 opencl 的設備類型,Hashcat 支持如下設備類型:


bash


1 | CPU2 | GPU3 | FPGA, DSP, Co-Processor

一般常用 -D 2 指定 GPU 破解

掩碼破解

掩碼規(guī)則


bash


 ? | Charset===+=========
 l | abcdefghijklmnopqrstuvwxyz          # 小寫字母 a-z
 u | ABCDEFGHIJKLMNOPQRSTUVWXYZ          # 大寫字母 A-Z
 d | 0123456789                          # 數(shù)字 0-9
 h | 0123456789abcdef                    # 數(shù)字 + abcdef
 H | 0123456789ABCDEF                    # 數(shù)字 + ABCDEF
 s |  !"#$%&'()*+,-./:;<=>?@[\]^_`{|}~   # 特殊字符    
 a | ?l?u?d?s                            # 鍵盤上所有可見的字符
 b | 0x00 - 0xff                         # 可能是用來匹配像空格這種密碼的

自定義掩碼規(guī)則


bash


--custom-charset1 [chars]等價于 -1
--custom-charset2 [chars]等價于 -2
--custom-charset3 [chars]等價于 -3
--custom-charset4 [chars]等價于 -4

在掩碼中用 ?1、?2、?3、?4 來表示

一些案例:


bash


--custom-charset1 abcd123456!@-+

此時?1 就表示 abcd123456!@-+


bash


--custom-charset2 ?l?d

此時?2 就表示 ?l?d 即 ?h 數(shù)字 + 小寫字母:


bash


-3 abcdef -4 123456

此時 ?3?3?3?3?4?4?4?4 就表示為前四位可能是 abcdef,后四位可能是 123456

字典破解


Code


1q2w3e4r`的MD5值為`5416d7cd6ef195a0f7622a9c56b55e84


bash


hashcat -a 0 -m 0 '5416d7cd6ef195a0f7622a9c56b55e84' hashpass.txt -o success.txt

刪除已破解密碼

有時候破解的時候會出現(xiàn)如下提示:


Code


INFO: All hashes found in potfile! Use --show to display them.

這表明在之前該密碼已經(jīng)被我們破解成功了,Hashcat 故不再顯示出來,可以在后面添加參數(shù) --show 來顯示密碼:


bash


hashcat -a 0 -m 0 'cbc8f5435c87e13c5d14e6ce92358d68' hashpass.txt --show
cbc8f5435c87e13c5d14e6ce92358d68:123456@abc

Hashcat 存放已經(jīng)成功破解的密碼文件位置為:~/.hashcat/hashcat.potfile

如果想要直接顯示破解的密碼的話,可以直接刪除掉該文件。

批量破解


bash


# 刪除之前破解成功的記錄rm ~/.hashcat/hashcat.potfile# hash.txt為要破解的密碼 hashpass.txt為字典 導出破解的結(jié)果到success.txt 并從hash.txt刪除掉破解成功的hashcat -a 0 -m 0 hash.txt hashpass.txt -o success.txt --remove

組合破解

多字典破解


bash


hashcat -a 1 -m 0 '5416d7cd6ef195a0f7622a9c56b55e84' hashpass1.txt hashpass1.txt

字典 + 掩碼破解


bash


echo -n admin888 |openssl md5
7fef6171469e80d32c0559f88b377245

破解 admin888 的 MD5 值:


bash


hashcat -a 6 -m 0 '7fef6171469e80d32c0559f88b377245' hashpass.txt -O

掩碼 + 字典破解


bash


hashcat -a 7 -m 0 '7fef6171469e80d32c0559f88b377245' 'admi?l?d?d?d' hashpass.txt  -O

破解案例

8 位 MD5 加密的數(shù)字破解

對 23323323 進行 MD5 加密:


bash


$ echo -n 23323323 |openssl md5
5a745e31dbbd93f4c86d1ef82281688b

使用 Hashcat 來進行破解:


bash


hashcat -a 3 -m 0 --force '5a745e31dbbd93f4c86d1ef82281688b' '?d?d?d?d?d?d?d?d' -O

8 位 MD5 加密的大小寫字母破解


bash


$ echo -n PassWord |openssl md5
a9d402bfcde5792a8b531b3a82669585

使用 Hashcat 來進行破解:


bash


hashcat -a 3 -m 0 -1 '?l?u' --force  'a9d402bfcde5792a8b531b3a82669585' '?1?1?1?1?1?1?1?1' -O

這里面定義了個自定義規(guī)則 -1,此時 ?1 就表示 ?l?u,即大小寫字母。

5-7 位 MD5 加密的大小寫字母 + 數(shù)字破解

Admin88 的 MD5 值為 2792e40d60bac94b4b163b93566e65a9


bash


hashcat -a 3 -m 0 -1 '?l?u?d' --force  '2792e40d60bac94b4b163b93566e65a9' --increment --increment-min 5 --increment-max 7 '?1?1?1?1?1?1?1' -O

這里面定義了個自定義規(guī)則 -1,此時 ?1 就表示 ?l?u?d,即大小寫字母 + 數(shù)字。

admin 開頭 10 位 MD5 加密的大小寫字母 + 數(shù)字破解

admin23323 的 MD5 值為 a9991129897a44e0d1c2855c3d7dccc4


bash


hashcat -a 3 -m 0 -1 '?l?u?d' --force  'a9991129897a44e0d1c2855c3d7dccc4' 'admin?1?1?1?1?1' -O

MySQL4.1/MySQL5

查看 MySQL 的密碼:


mysql


mysql> select Password from mysql.user;
+-------------------------------------------+
| Password                                  |
+-------------------------------------------+
| *81F5E21E35407D884A6CD4A731AEBFB6AF209E1B |
| *81F5E21E35407D884A6CD4A731AEBFB6AF209E1B |
| *81F5E21E35407D884A6CD4A731AEBFB6AF209E1B |
| *81F5E21E35407D884A6CD4A731AEBFB6AF209E1B |
+-------------------------------------------+
4 rows in set (0.00 sec)

然后開始使用字典破解:


bash


hashcat -a 0 -m 300 --force '81F5E21E35407D884A6CD4A731AEBFB6AF209E1B' hashpass.txt -O

Linux /etc/shadow sha512crypt $6$, SHA512 (Unix)

查看 /etc/shadow 密碼文件:


bash



root@kali-linux:~# cat /etc/shadowroot:$6$4ojiBMDPrehqrLkX$d2T7Cn8LKkLk4SDXgCh1IEqjhnsUekXaNUXSxiZIwUTndSqyd.9sEcu80sX9DuEHGmHOeoMev2O0ACYtjMett1:18201:0:99999:7:::
daemon:*:18024:0:99999:7:::
bin:*:18024:0:99999:7:::
sys:*:18024:0:99999:7:::
sync:*:18024:0:99999:7:::
games:*:18024:0:99999:7:::
man:*:18024:0:99999:7:::
lp:*:18024:0:99999:7:::
mail:*:18024:0:99999:7:::
news:*:18024:0:99999:7:::
uucp:*:18024:0:99999:7:::
proxy:*:18024:0:99999:7:::
www-data:*:18024:0:99999:7:::
backup:*:18024:0:99999:7:::
list:*:18024:0:99999:7:::
irc:*:18024:0:99999:7:::
gnats:*:18024:0:99999:7:::
nobody:*:18024:0:99999:7:::
_apt:*:18024:0:99999:7:::
systemd-timesync:*:18024:0:99999:7:::
systemd-network:*:18024:0:99999:7:::
systemd-resolve:*:18024:0:99999:7:::
mysql:!:18024:0:99999:7:::
ntp:*:18024:0:99999:7:::
messagebus:*:18024:0:99999:7:::
arpwatch:!:18024:0:99999:7:::
Debian-exim:!:18024:0:99999:7:::
uuidd:*:18024:0:99999:7:::
redsocks:!:18024:0:99999:7:::
tss:*:18024:0:99999:7:::
rwhod:*:18024:0:99999:7:::
iodine:*:18024:0:99999:7:::
miredo:*:18024:0:99999:7:::
dnsmasq:*:18024:0:99999:7:::
postgres:*:18024:0:99999:7:::
usbmux:*:18024:0:99999:7:::
rtkit:*:18024:0:99999:7:::
stunnel4:!:18024:0:99999:7:::
sshd:*:18024:0:99999:7:::
Debian-snmp:!:18024:0:99999:7:::
sslh:!:18024:0:99999:7:::
pulse:*:18024:0:99999:7:::
speech-dispatcher:!:18024:0:99999:7:::
avahi:*:18024:0:99999:7:::
saned:*:18024:0:99999:7:::
inetsim:*:18024:0:99999:7:::
colord:*:18024:0:99999:7:::
geoclue:*:18024:0:99999:7:::
king-phisher:*:18024:0:99999:7:::
Debian-gdm:*:18024:0:99999:7:::
dradis:*:18024:0:99999:7:::
beef-xss:*:18024:0:99999:7:::
systemd-coredump:!!:18082::::::

可以看到 root 是有密碼的,前面使用的是 $6 表面 hash 的加密方式為:sha512crypt $6$, SHA512 (Unix)。


bash


# 掩碼破解root密碼 不在potfile中記錄破解成功的hash 指定設備2(核顯)來跑密碼 并開啟優(yōu)化hashcat -a 3 -m 1800 --force  '$6$4ojiBMDPrehqrLkX$d2T7Cn8LKkLk4SDXgCh1IEqjhnsUekXaNUXSxiZIwUTndSqyd.9sEcu80sX9DuEHGmHOeoMev2O0ACYtjMett1' '?l?l?l?l' -O -d 2 --potfile-disable# 掩碼破解root密碼 忽略用戶名 不在potfile中記錄破解成功的hash 指定設備2(核顯)來跑密碼 并開啟優(yōu)化hashcat -a 3 -m 1800 --force  'root:$6$4ojiBMDPrehqrLkX$d2T7Cn8LKkLk4SDXgCh1IEqjhnsUekXaNUXSxiZIwUTndSqyd.9sEcu80sX9DuEHGmHOeoMev2O0ACYtjMett1' '?l?l?l?l' -O -d 2 --username --potfile-disable

macOS 下自帶的 CPU 和獨顯無法破解,這里國光本人手動切換了 -d 2 用核顯才成功跑出來:

字典破解 Windows LM Hash


bash


hashcat -a 0 -m 3000 --force '921988ba001dc8e14a3b108f3fa6cb6d' password.txt

字典破解 Windows NTLM Hash


bash


hashcat -a 0 -m 1000 --force 'e19ccf75ee54e06b06a5907af13cef42' password.txt

分布破解

參數(shù)類型說明國光的理解示例
–brain-server
Enable brain server啟用主服務器
-z, –brain-client
Enable brain client, activates -S啟用分布式客戶端
–brain-client-featuresNumDefine brain client features, see below定義客戶端功能–brain-client-features=3
–brain-hostStrBrain server host (IP or domain)主服務器的 IP 或者域–brain-host=127.0.0.1
–brain-portPortBrain server port主服務器端口–brain-port=13743
–brain-passwordStrBrain server authentication password主服務器的認證密碼–brain-password=e8acfc7280c48009
–brain-sessionHexOverrides automatically calculated brain session自動覆蓋已經(jīng)計算的主會話–brain-session=0x2ae611db
–brain-session-whitelistHexAllow given sessions only, separated with commas僅允許給定的對話,以逗號分隔–brain-session-whitelist=0x2ae611db

客戶端功能


bash


- [ Brain Client Features ] -  # | Features
 ===+========
  1 | Send hashed passwords                       # 發(fā)送已破解的密碼
  2 | Send attack positions                       # 發(fā)送已破解的位置
  3 | Send hashed passwords and attack positions  # 發(fā)送已破解的密碼和已破解的位置


上一條:hashcat的使用方法 技術分享
下一條:Hashcat使用教程之破解模式參數(shù)設置(超詳細干貨,值得收藏)