hashcat號稱世界上最快的密碼破解,世界上第一個和唯一的基於GPGPU規則引擎,免費多GPU(高達128個GPU),多哈希,多操作系統(Linux和Windows本地二進制文件),多平台(OpenCL和CUDA支持),多算法,資源利用率低,基於字典攻擊,支持分布式破解等等,目前最新版本為4.01,下載地址https://hashcat.net/files/hashcat-4.1.0.7z,hashcat目前支持各類公開算法高達247類,市面上面公開的密碼加密算法基本都支持!
hashcat系列軟件在硬件上支持使用CPU、NVIDIA GPU、ATI GPU來進行密碼破解。在操作系統上支持Windows、Linux平台,並且需要安裝官方指定版本的顯卡驅動程序,如果驅動程序版本不對,可能導致程序無法運行。NVIDIA users GPU破解驅動需要ForceWare 331.67以及更高版本(http://www.geforce.cn/drivers),AMD 用戶則需要Catalyst 14.9以及更高版本,可以通過Catalyst 自動偵測和下載檢測工具來檢測系統應該下載那個版本,下載地址:http://support.amd.com/en-us/download/auto-detect-tool,選擇合適的版本安裝即可。其官方github 網站地址為:https://github.com/hashcat/hashcat。
1.准備工作
(1)kali linux操作系統或者虛擬機
(2)windows7操作系統或者虛擬機
(3)准備字典,可以自己生成字典工具,也可以從互聯網獲取字典,推薦二個字典下載網站:http://contest-2010.korelogic.com/wordlists.html. https://wiki.skullsecurity.org/Passwords
(4)在windows7中新增一個用戶antian365,密碼為password。在單擊“開始”-“運行”中輸入“cmd”並按“Shift+Ctrl+Enter”組合鍵,輸入命令“ netuser antian365 password /add”。或者以管理員權限啟動“cmd.exe”程序也可,測試完畢后可以通過命令刪除該帳號“net user antian365 /del”
(5)下載saminside
官方網站目前已經停止saminside軟件的開發了,可以到華軍軟件園下載:http://gwbnsh.onlinedown.net/down2/saminside.v2.6.1.0.chs.rar
(6)字典合並及排序處理
cat *.dic >file.txt
Linux下使用
sort –u file.txt>password.lst
2.HashCat軟件使用參數
2.1 hashcat使用參數
直接運行hashcat(分為32和64位版本)會提示使用參數:
Usage:hashcat64 [options]… hash|hashfile|hccapxfile [dictionary|mask|directory]…
也即hashcat [選項] 破解的哈希值或hash文件、hccapx文件 [字典|掩碼|目錄] …
Hccapxfile對應無線包,其對應破解哈希類型為“-m 2500 = WPA/WPA2”。
2.2 查看幫助
使用hashcat –help命令可以獲取詳細的幫助信息,可以使用hashcat –help>help.txt來參考具體的參數使用幫助。
2.3 選項
(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
* 調試模式輸出文件 (for hybrid mode only, by using rules):
1 = save finding rule
2 = save original word
3 = save original word and finding rule
4 = save original word, finding rule andmodified plain
* 內置的字符集:
?l = abcdefghijklmnopqrstuvwxyz 代表小寫字母
?u = ABCDEFGHIJKLMNOPQRSTUVWXYZ 代表大寫字母
?d = 0123456789 代表數字
?s = !”#$%&’()*+,-./:;<=>?@[\]^_`{|}~ 代表特殊字符
?a = ?l?u?d?s 大小寫數字及特殊字符的組合
?b = 0×00 – 0xff
攻擊模式
0 = Straight (字典破解)
1 = Combination (組合破解)
2 = Toggle-Case (大小寫轉換)
3 = Brute-force(掩碼暴力破解)
4 = Permutation(序列破解)
5 = Table-Lookup(查表破解)
6 = Hybrid dict + mask 字典加掩碼破解
7 = Hybrid mask + dict 掩碼+字典破解
8 = Prince(王子破解)
* 哈希類型
有關哈希具體值示例可以參考https://hashcat.net/wiki/doku.php?id=example_hashes
0 = MD5
10 = md5($pass.$salt)
20 = md5($salt.$pass)
30 = md5(unicode($pass).$salt)
40 = md5($salt.unicode($pass))
50 = HMAC-MD5 (key = $pass)
60 = HMAC-MD5 (key = $salt)
100 = SHA1
110 = sha1($pass.$salt)
120 = sha1($salt.$pass)
130 = sha1(unicode($pass).$salt)
140 = sha1($salt.unicode($pass))
150 = HMAC-SHA1 (key = $pass)
160 = HMAC-SHA1 (key = $salt)
200 = MySQL323
300 = MySQL4.1/MySQL5
400 = phpass, MD5(WordPress), MD5(phpBB3),MD5(Joomla)
500 = md5crypt, MD5(Unix), FreeBSD MD5,Cisco-IOS MD5
900 = MD4
1000 = NTLM
1100 = Domain Cached Credentials (DCC), MSCache
1400 = SHA256
1410 = sha256($pass.$salt)
1420 = sha256($salt.$pass)
1430 = sha256(unicode($pass).$salt)
1431 = base64(sha256(unicode($pass)))
1440 = sha256($salt.unicode($pass))
1450 = HMAC-SHA256 (key = $pass)
1460 = HMAC-SHA256 (key = $salt)
1600 = md5apr1, MD5(APR), Apache MD5
1700 = SHA512
1710 = sha512($pass.$salt)
1720 = sha512($salt.$pass)
1730 = sha512(unicode($pass).$salt)
1740 = sha512($salt.unicode($pass))
1750 = HMAC-SHA512 (key = $pass)
1760 = HMAC-SHA512 (key = $salt)
1800 = SHA-512(Unix)
2400 = Cisco-PIX MD5
2410 = Cisco-ASA MD5
2500 = WPA/WPA2
2600 = Double MD5
3200 = bcrypt, Blowfish(OpenBSD)
3300 = MD5(Sun)
3500 = md5(md5(md5($pass)))
3610 = md5(md5($salt).$pass)
3710 = md5($salt.md5($pass))
3720 = md5($pass.md5($salt))
3800 = md5($salt.$pass.$salt)
3910 = md5(md5($pass).md5($salt))
4010 = md5($salt.md5($salt.$pass))
4110 = md5($salt.md5($pass.$salt))
4210 = md5($username.0.$pass)
4300 = md5(strtoupper(md5($pass)))
4400 = md5(sha1($pass))
4500 = Double SHA1
4600 = sha1(sha1(sha1($pass)))
4700 = sha1(md5($pass))
4800 = MD5(Chap), iSCSI CHAP authentication
4900 = sha1($salt.$pass.$salt)
5000 = SHA-3(Keccak)
5100 = Half MD5
5200 = Password Safe SHA-256
5300 = IKE-PSK MD5
5400 = IKE-PSK SHA1
5500 = NetNTLMv1-VANILLA / NetNTLMv1-ESS
5600 = NetNTLMv2
5700 = Cisco-IOS SHA256
5800 = Android PIN
6300 = AIX {smd5}
6400 = AIX {ssha256}
6500 = AIX {ssha512}
6700 = AIX {ssha1}
6900 = GOST, GOST R 34.11-94
7000 = Fortigate (FortiOS)
7100 = OS X v10.8+
7200 = GRUB 2
7300 = IPMI2 RAKP HMAC-SHA1
7400 = sha256crypt, SHA256(Unix)
7900 = Drupal7
8400 = WBB3, Woltlab Burning Board 3
8900 = scrypt
9200 = Cisco $8$
9300 = Cisco $9$
9800 = Radmin2
10000 = Django (PBKDF2-SHA256)
10200 = Cram MD5
10300 = SAP CODVN H (PWDSALTEDHASH) iSSHA-1
11000 = PrestaShop
11100 = PostgreSQL Challenge-ResponseAuthentication (MD5)
11200 = MySQL Challenge-Response Authentication(SHA1)
11400 = SIP digest authentication (MD5)
99999 = Plaintext
特殊哈希類型
11 = Joomla < 2.5.18
12 = PostgreSQL
21 = osCommerce, xt:Commerce
23 = Skype
101 = nsldap, SHA-1(Base64), Netscape LDAPSHA
111 = nsldaps, SSHA-1(Base64), Netscape LDAPSSHA
112 = Oracle S: Type (Oracle 11+)
121 = SMF > v1.1
122 = OS X v10.4, v10.5, v10.6
123 = EPi
124 = Django (SHA-1)
131 = MSSQL(2000)
132 = MSSQL(2005)
133 = PeopleSoft
141 = EPiServer 6.x < v4
1421 = hMailServer
1441 = EPiServer 6.x > v4
1711 = SSHA-512(Base64), LDAP {SSHA512}
1722 = OS X v10.7
1731 = MSSQL(2012 & 2014)
2611 = vBulletin < v3.8.5
2612 = PHPS
2711 = vBulletin > v3.8.5
2811 = IPB2+, MyBB1.2+
3711 = Mediawiki B type
3721 = WebEdition CMS
7600 = Redmine Project Management Web App
3.密碼破解推薦原則
3.1 密碼破解推薦原則
破解時采取先易后難的原則,建議如下:
(1)利用收集的公開字典進行破解
(2)使用1-8位數字進行破解。
(3)使用1-8位小寫字母進行破解
(4)使用1-8位大寫字母進行破解
(5)使用1-8位混合大小寫+數字+特殊字符進行破解
3.2 hashcat破解規則
(1)字典攻擊
-a 0 password.lst
(2)1到8為數字掩碼攻擊
-a 3 –increment –increment-min 1–increment-max 8 ?d?d?d?d?d?d?d?d –O
?d代表數字,可以換成小寫字母?l,大寫字母?u,特殊字符?s,大小寫字母+特殊字符?a,–O表示最優化破解模式,可以加該參數,也可以不加該參數。
(3)8為數字攻擊
-a 3 ?d?d?d?d?d?d?d?d
同理可以根據位數設置為字母大寫、小寫、特殊字符等模式。
(4)自定義字符
現在純數字或者純字母的密碼是比較少見的,根據密碼專家對泄漏密碼的分析,90%的個人密碼是字母和數字的組合,可以是自定義字符了來進行暴力破解,Hashcat支持4個自定義字符集,分別是 -1 -2 -3 -4。定義時只需要這樣-2 ?l?d ,然后就可以在后面指定?2,?2表示小寫字母和數字。這時候要破解一個8位混合的小寫字母加數字:
Hashcat.exe -a 3 –force -2 ?l?d hassh值或者hash文件 ?2?2?2?2?2?2?2?2
例如破解dz小寫字母+數字混合8位密碼破解:
Hashcat -m 2611 -a 3 -2 ?l?d dz.hash ?2?2?2?2?2?2?2?2
(5)字典+掩碼暴力破解
Hashcat還支持一種字典加暴力的破解方法,就是在字典前后再加上暴力的字符序列,比如在字典后面加上3為數字,這種密碼是很常見的。使用第六種攻擊模式:
a-6 (Hybrid dict + mask)
如果是在字典前面加則使用第7中攻擊模式也即( a-7 = Hybridmask + dict),下面對字典文件加數字123進行破解:
H.exe -a 6 ffe1cb31eb084cd7a8dd1228c23617c8 password.lst ?d?d?d
假如ffe1cb31eb084cd7a8dd1228c23617c8的密碼為password123,則只要password.lst包含123即可。
(6)掩碼+字典暴力破解
H.exe -a 7 ffe1cb31eb084cd7a8dd1228c23617c8 password.lst ?d?d?d
假如ffe1cb31eb084cd7a8dd1228c23617c8的密碼為123password,則只要password.lst包含password即可。
(7)大小寫轉換攻擊,對password.lst中的單詞進行大小寫轉換攻擊
H.exe-a 2 ffe1cb31eb084cd7a8dd1228c23617c8 password.lst
4.獲取並整理密碼hashes值
4.1 windows哈希值獲取及整理
(1)獲取Windows操作系統hash值
獲取Windows7操作系統的hash值有多個軟件,比如wce,mimikatz,cain以及saminside等,在windows vista以及以上版本都會有UAC權限控制機制。UAC(User Account Control,用戶帳戶控制)是微軟為提高系統安全而在Windows Vista中引入的新技術,它要求用戶在執行可能會影響計算機運行的操作或執行更改影響其他用戶的設置的操作之前,提供權限或管理員密碼。通過在這些操作啟動前對其進行驗證,UAC 可以幫助防止惡意軟件和間諜軟件在未經許可的情況下在計算機上進行安裝或對計算機進行更改。因此獲取密碼的工具都需要以管理員身份運行,選擇saminside.exe程序,右鍵單擊在彈出的菜單中選擇“以管理員身份運行”,然后在saminside程序主界面中從左往右選擇第三個圖標,下來菜單第二個選項(Import local user using Scheduler)來獲取密碼,如圖1所示,即可獲取本機所有帳號的密碼hash值等信息。
圖1獲取密碼hash值
(2)整理hash值
在saminside中可以導出所有帳號的hash值,也可以復制單個帳號的hash值。單擊“File”菜單中的“導出用戶到pwdump文件”即可導出獲取的hash值,也可以選擇hash,右鍵單擊“復制”-“NT hash”獲取NT hash值。對於Windows Vista以上操作系統即使是普通的密碼也以“AAD3B”開頭的一串字符,這個值目前在“ophcrack”等工具中無法進行破解,在saminside中會顯示為一串“0”字符,將NT hash值整理到一個文件中,並命名為win2.hash,如圖2所示。
圖2整理需要破解的hash值
4.2 linux哈希值整理
在linux下使用cat /ect/shadow>myshadow.txt
可以對myshadow.txt進行整理僅僅保留加密部分值,例如:
$1$H4EQc23T$jseelsIklWRjQMiY8sNdf1
也可以保留用戶名部分,root:$1$KsRJO8kG$M9co4G7T6.5KcITsSCRNS/:15225:0:99999:7:::,如果帶用戶名,則在破解是需要加–username參數。
3.其它哈希值整理
一般來說一類密碼哈希值單獨保存為一個文件,有的密碼帶salt,因此需要完整的哈希值,例如discuz!論壇的密碼值為:
ffe1cb31eb084cd7a8dd1228c23617c8:f56463
前段值類似md5加密,后段值為salt,如果沒有salt值,其破解結果就相差甚遠了。
對某些特殊的哈希加密,還需要借助一些工具軟件來進行,例如office加密文檔,就需要從http://www.openwall.com/john/j/john-1.8.0-jumbo-1.tar.gz里面需要對應的python文件進行hash計算。例如office密碼哈希計算機工具文件office2john.py,使用office2john.py 1.doc即可計算其文檔加密值。
5.破解Windows下hash值
5.1 hashcat破解
將准備好的字典password.lst、需要破解的hash值文件win.hash復制到hashcat程序所在文件夾下,執行一下命令進行破解:
hashcat-m 1000 -a 0 -o winpassok.txt win.hash password.lst –username
參數說明:
“-m 1000” 表示破解密碼類型為“NTLM”;
“-a 0”表示采用字典破解;
“-o”將破解后的結果輸出到winpassok.txt;
“–remove win.hash”表示從win.hash移除破解成功的hash,帶username不能跟remove同時使用,也就可以對單一密碼值進行整理,然后使用該參數。
“password.lst”為密碼字典文件。
破解過程會顯示“[s]tatus[p]ause [r]esume [b]ypass [q]uit =>”,鍵盤輸入“s”顯示破解狀態,輸入“p”暫停破解,輸入“r”繼續破解,輸入“b”表示忽略破解,輸入“q”表示退出,所有成功破解的結果都會自動保存在 “hashcat.pot” 文件中。破解結束會顯示如圖3所示的信息。
圖3顯示破解信息
5.2 查看破解結果
(1)使用“type winpassok.txt”命令查看破解結果,如圖4所示,顯示該帳號的密碼為“password”。
圖4查看密碼破解結果
(2)“–show”命令查看。如果在破擊參數中沒有“-o winpassok.txt”則可以通過命令后加入“–show”進行查看:
hashcat-m 1000 -a 0 win.hash password.lst–username –show
(3)hashcat.potfile查看結果。到hashcat程序目錄直接打開hashcat.potfile文件來查看已經成功破解的密碼。
6.linux操作系統密碼破解
6.1 針對不同加密類型進行破解
(1)linux sha512crypt $6$, SHA512 (Unix)加密方式:
hashcat -m 1800 sha512linux.txt p.txt
(2)linux sha256crypt $5$, SHA256 (Unix)加密方式:
hashcat -m 7400 sha256linux.txt p.txt
(3)linux下md5crypt, MD5 (Unix), Cisco-IOS $1$ (MD5)加密方式:
hashcat -m 500 linuxmd5.txt p.txt
(4)inux下bcrypt $2*$, Blowfish加密方式:
hashcat -m 3200 linuxmd5.txt p.txt
6.2 破解示例
如圖5所示,執行命令進行破解:hashcat -m 500 passwd1_hash.txt password.lst
在破解過程中如果有成功的密碼,則會直接顯示,按s鍵可以查看破解的狀態信息,p鍵暫停,s鍵繼續破解,q鍵退出破解。
圖5破解linux md5密碼
hashcat.pot中會自動保存破解成功的哈希密碼及其破解后的明文密碼。
7.破解office文檔
7.1 計算office加密文檔的hash值
下載http://www.openwall.com/john/j/john-1.8.0-jumbo-1.tar.gz,從其壓縮包中獲取 office2john.py文件,然后執行
office2john.pyDocOld2010.doc
即可獲取DocOld2010.doc文檔的加密值,如圖6所示。
DocOld2010.doc:$oldoffice$1*d6aabb63363188b9b73a88efb9c9152e*afbbb9254764273f8f4fad9a5d82981f*6f09fd2eafc4ade522b5f2bee0eaf66d:::1:
ocOld2010.doc
圖6計算office哈希值
去掉前后的DocOld2010.doc和對應的“:”,其真正的哈希值為:
$oldoffice$1*d6aabb63363188b9b73a88efb9c9152e*afbbb9254764273f8f4fad9a5d82981f*6f09fd2eafc4ade522b5f2bee0eaf66d
將其保存為hash文件。
7.2 破解Office加密Offcie版本對應哈希類型
Office97-03(MD5+RC4,oldoffice$0,oldoffice$1): -m 9700
Office97-03($0/$1, MD5 + RC4, collider #1): -m 9710
Office97-03($0/$1, MD5 + RC4, collider #2): -m 9720
Office97-03($3/$4, SHA1 + RC4): -m 9800
Office97-03($3, SHA1 + RC4, collider #1): -m 9810
Office97-03($3, SHA1 + RC4, collider #2): -m 9820
Office2007: -m 9400
Office2010: -m 9500
Office2013: -m 9600
7.3 破解示例
(1)8位數字破解
Hashcat64-m 9700 hash -a 3 ?d?d?d?d?d?d?d?d -w 3 –O
(2)1-8位數字破解
Hashcat-m 9700 hash -a 3 –increment –increment-min 1–increment-max 8 ?d?d?d?d?d?d?d?d
(3)1到8位小寫字母破解
Hashcat-m 9700 hash -a 3 –increment –increment-min 1–increment-max 8 ?l?l?l?l?l?l?l?l
(4)8位小寫字母破解
Hashcat-m 9700 hash -a 3 ?l?l?l?l?l?l?l?l -w 3 –O
(5)1-8位大寫字母破解
Hashcat-m 9700 hash -a 3 –increment –increment-min 1–increment-max 8 ?u?u?u?u?u?u?u?u
(6)8位大寫字母破解
Hashcat-m 9700 hash -a 3 ?u?u?u?u?u?u?u?u -w 3 –O
(7)5位小寫+ 大寫+數字+特殊字符破解
Hashcat-m 9700 hash -a 3 ?b?b?b?b?b -w 3
(8)使用字典進行破解
使用password.lst字典進行暴力破解,-w 3參數是指定電力消耗
Hashcat -m 9700 -a 0 -w 3 hash password.lst
如圖7所示,對hash文件通過數字破解完成后,繼續進行1-8位小寫字母的破解,在該圖中會顯示掩碼值,破解進度,破解開始時間,破解預計耗費時間,以及破解顯卡或者CPU的溫度,一般設置到90攝氏度就自動終止,以免燒壞計算機。
圖7開始破解
7.4 查看破解結果
在執行破解成功后,hashcat會自動終止破解,並顯示破解狀態為Cracked,Recvoered中也會顯示是否破解成功,如圖8所示,經過34分鍾的破解,成功將某一個加密文檔破解。
圖8破解word文件成功
還可以通過查看hashcat.potfile以及執行破解命令后加“–show”命令查看,也即:
Hashcat64-m 9700 hash -a 3 –increment –increment-min 1 –increment-max 8?l?l?l?l?l?l?l?l –show
如圖9,圖10所示,該word文件密碼為shirley。
圖9通過查看hashcat.potfile文件查看破解結果
圖10執行命令查看破解結果
8.暴力破解ssh的known_hosts中的IP地址
8.1 破解known_hosts中的IP地址
經過研究發現known_hosts中會對連接的IP地址進行HMAC SHA1加密,可以通過hexhosts攻擊進行轉換,然后通過hashcat進行暴力破解,其密碼類型為160(HMAC-SHA1 (key = $salt))。
(1)計算HMAC SHA1值
gitclone https://github.com/persona5/hexhosts.git
cdhexhosts
gcchexhosts.c -lresolv -w -o hexhosts
./hexhosts
獲取known_hosts的HMAC SHA1加密值:
a7453898831af52ada58c964832f6a36f04b9927:2be1fc63b56a3f49c6c25e61beeb0887bf5c4e9d
注意:known_hosts值一定要正確,可以將known_hosts文件復制到hexhosts文件目錄。
(2)組合攻擊暴力破解
hashcat-a 1 -m 160 known_hosts.hash ips_left.txt ips_right.txt –hex-salt
組合攻擊是將ips_left.txt和ips_right.txt進行組合,形成完整的IP地址進行暴力破解。
ips_left.txt和ips_right.txt文件可以用以下代碼進行生成:
ip-gen.sh:
#!/bin/bashfor a in `seq 0 255`
do
for b in `seq0 255`
do
echo”$a.$b.” >> ips_left.txt
echo”$a.$b” >> ips_right.txt
done
done
(3)使用掩碼進行攻擊
hashcat -a 3 -m 160 known_hosts.hash ipv4.hcmask–hex-salt
ipv4.hcmask文件內容可去https://pastebin.com/4HQ6C8gG下載。
圖11破解known_hosts中加密的IP地址
8.2 破解md5加密的IP地址
在CDN等網絡或者配置中往往會對IP地址進行MD5加密,由於其位數3×4+3(xxx.xxx.xxx.xxx)=17位,通過正常的密碼破解其時間耗費非常長,但通過分析其IP地址的規律,發現其地址XXX均為數字,因此可以通過hashcat的組合和掩碼進行攻擊。
hashcat-a 1 –m 0 ip.md5.txt ips_left.txt ips_right.txt
hashcat -a1 -m 0 ip.md5.txt ipv4.hcmask
另外在F5的cookie中會對其IP地址進行加密,可以參考的破解代碼如下:
>>>import struct
>>>cookie = “1005421066.20736.0000”
>>>(ip,port,end)=cookie.split(“.”)
>>>(a,b,c,d)=[ord(i) for i in struct.pack(“i”,int(ip))]
>>>print “Decoded IP: %s %s %s %s” % (a,b,c,d)
Decoded IP: 10.130.237.59
9.破解總結及技巧
9.1 GPU破解模式使用自動優化
在使用GPU模式進行破解時,可以使用-O參數自動進行優化
9.2 暴力破解一條md5值
(1)9位數字破解
Hashcat64.exe-a 3 –force d98d28ca88f9966cb3aaefebbfc8196f ?d?d?d?d?d?d?d?d?d
單獨破解一條md5值需要加force參數
(2)9位字母破解
Hashcat64.exe-a 3 –force d98d28ca88f9966cb3aaefebbfc8196f ?l?l?l?l?l?l?l?l?l
9.3 破解帶鹽discuz密碼
(1)數字破解
7位數字,7秒時間破解完成任務。
Hashcat64.exe-a 3 –force -m 2611 ffe1cb31eb084cd7a8dd1228c23617c8:f56463 ?d?d?d?d?d?d?d
8位數字破解,9秒時間破解完成任務。:
Hashcat64.exe-a 3 –force -m 2611 ffe1cb31eb084cd7a8dd1228c23617c8:f56463 ?d?d?d?d?d?d?d?d
9位數字破解,9秒時間破解完成任務。
Hashcat64.exe-a 3 –force -m 2611 ffe1cb31eb084cd7a8dd1228c23617c8:f56463 ?d?d?d?d?d?d?d?d?d
9.4 字母破解
(1)6位小寫字母
Hashcat64.exe-a 3 –force -m 2611 ffe1cb31eb084cd7a8dd1228c23617c8:f56463 ?l?l?l?l?l?l
(2)7位小寫字母
Hashcat64.exe-a 3 –force -m 2611 ffe1cb31eb084cd7a8dd1228c23617c8:f56463 ?l?l?l?l?l?l?l
(3)8位小寫字母
Hashcat64.exe-a 3 –force -m 2611 ffe1cb31eb084cd7a8dd1228c23617c8:f56463 ?l?l?l?l?l?l?l?l 9分鍾左右完成破解任務
(4)9位小寫字母
Hashcat64.exe-a 3 –force -m 2611 ffe1cb31eb084cd7a8dd1228c23617c8:f56463 ?l?l?l?l?l?l?l?l?l-O
9.5 字母加數字
Hashcat64.exe-a 3 –force -m 2611 -2 ?d?l ffe1cb31eb084cd7a8dd1228c23617c8:f56463?2?2?2?2?2?2?2
(3)7位大寫字母
Hashcat64.exe-a 3 –force –m 2611 ffe1cb31eb084cd7a8dd1228c23617c8:f56463 ?u?u?u?u?u?u?u
(4)6到8位數字破解
Hashcat64.exe-a 3 –force –m 2611 ffe1cb31eb084cd7a8dd1228c23617c8:f56463–increment –increment-min 6 –increment-max 8 ?l?l?l?l?l?l?l?l
9.6 使用自定義破解
(1)使用數字加字母混合6位進行破解
Hashcat64.exe-a 3 –force -m 2611 -2 ?d?l ffe1cb31eb084cd7a8dd1228c23617c8:f56463?2?2?2?2?2?2 -O
(2)使用數字加字母混合7位進行破解,破解時間4分16秒
Hashcat64.exe-a 3 –force -m 2611 -2 ?d?l ffe1cb31eb084cd7a8dd1228c23617c8:f56463?2?2?2?2?2?2?2 –O
(3)使用數字加字母混合8位進行破解
Hashcat64.exe-a 3 –force -m 2611 -2 ?d?l ffe1cb31eb084cd7a8dd1228c23617c8:f56463?2?2?2?2?2?2?2?2 -O
9.7 字典破解模式
Hashcat64.exe-a 0 –force -m 2611 ffe1cb31eb084cd7a8dd1228c23617c8:f56463 password.lst
使用字典文件夾下的字典進行破解:
Hashcat32.exe-m 300 mysqlhashes.txt –remove -o mysql-cracked.txt ..\dictionaries\*
9.8 會話保存及恢復破解
(1)使用mask文件規則來破解密碼
hashcat-m 2611 -a 3 –session mydz dz.hash masks/rockyou-7-2592000.hcmask
(2)恢復會話
hashcat–session mydz –restore
9.9 掩碼破解
mask規則文件位於masks下,例如D:\PentestBox\hashcat-4.1.0\masks,執行破解設置為:
masks/8char-1l-1u-1d-1s-compliant.hcmask
masks/8char-1l-1u-1d-1s-noncompliant.hcmask
masks/rockyou-1-60.hcmask
masks/rockyou-2-1800.hcmask
masks/rockyou-3-3600.hcmask
masks/rockyou-4-43200.hcmask
masks/rockyou-5-86400.hcmask
masks/rockyou-6-864000.hcmask
masks/rockyou-7-2592000.hcmask
9.10 運用規則文件進行破解
Hashcat -m 300 mysqlhashes.txt–remove -o mysql-cracked.txt ..\dictionaries\* -r rules\best64.rule
hashcat -m 2611 -a 0 dz.hashpassword.lst -r rules\best64.rule -O
9.11 分享幾個大字典下載地址
https://crackstation.net/buy-crackstation-wordlist-password-cracking-dictionary.htm
https://weakpass.com/download