Hashcat密碼破解
hashcat號稱世界上最快的密碼破解,世界上第一個(gè)和唯一的基于GPGPU規(guī)則引擎,免費(fèi)多GPU(高達(dá)128個(gè)GPU),多哈希,多操作系統(tǒng)(Linux和Windows本地二進(jìn)制文件),多平臺(OpenCL和CUDA支持),多算法,資源利用率低,基于字典攻擊,支持分布式破解等等,目前最新版本為4.01,下載地址https://hashcat.net/files/hashcat-4.1.0.7z,hashcat目前支持各類公開算法高達(dá)247類,市面上面公開的密碼加密算法基本都支持!
hashcat系列軟件在硬件上支持使用CPU、NVIDIA GPU、ATI GPU來進(jìn)行密碼破解。在操作系統(tǒng)上支持Windows、Linux平臺,并且需要安裝官方指定版本的顯卡驅(qū)動(dòng)程序,如果驅(qū)動(dòng)程序版本不對,可能導(dǎo)致程序無法運(yùn)行。NVIDIA users GPU破解驅(qū)動(dòng)需要ForceWare 331.67以及更高版本(官方 GeForce 驅(qū)動(dòng)程序 | NVIDIA),AMD 用戶則需要Catalyst 14.9以及更高版本,可以通過Catalyst 自動(dòng)偵測和下載檢測工具來檢測系統(tǒng)應(yīng)該下載那個(gè)版本,下載地址:http://support.amd.com/en-us/download/auto-detect-tool,選擇合適的版本安裝即可。其官方github 網(wǎng)站地址為:GitHub - hashcat/hashcat: World's fastest and most advanced password recovery utility。
1.準(zhǔn)備工作
(1)kali linux操作系統(tǒng)或者虛擬機(jī)
(2)windows7操作系統(tǒng)或者虛擬機(jī)
(3)準(zhǔn)備字典,可以自己生成字典工具,也可以從互聯(lián)網(wǎng)獲取字典,推薦二個(gè)字典下載網(wǎng)站:http://contest-2010.korelogic.com/wordlists.html. Passwords - SkullSecurity
(4)在windows7中新增一個(gè)用戶antian365,密碼為password。在單擊“開始”-“運(yùn)行”中輸入“cmd”并按“Shift+Ctrl+Enter”組合鍵,輸入命令“ netuser antian365 password /add”。或者以管理員權(quán)限啟動(dòng)“cmd.exe”程序也可,測試完畢后可以通過命令刪除該帳號“net user antian365 /del”
(5)下載saminside
官方網(wǎng)站目前已經(jīng)停止saminside軟件的開發(fā)了,可以到華軍軟件園下載: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軟件使用參數(shù)
2.1 hashcat使用參數(shù)
直接運(yùn)行hashcat(分為32和64位版本)會(huì)提示使用參數(shù):
Usage:hashcat64 [options]... hash|hashfile|hccapxfile [dictionary|mask|directory]...
也即hashcat [選項(xiàng)] 破解的哈希值或hash文件、hccapx文件 [字典|掩碼|目錄] ...
Hccapxfile對應(yīng)無線包,其對應(yīng)破解哈希類型為“-m 2500 = WPA/WPA2”。
2.2 查看幫助
使用hashcat --help命令可以獲取詳細(xì)的幫助信息,可以使用hashcat --help>help.txt來參考具體的參數(shù)使用幫助。
2.3 選項(xiàng)
(1)普通
-m, —hash-type=NUM 哈希類別,其NUM值參考其幫助信息下面的哈希類別值,其值為數(shù)字。如果不指定m值則默認(rèn)指md5,例如-m 1800是sha512 Linux加密。
-a, --attack-mode=NUM 攻擊模式,其值參考后面對參數(shù)。“-a 0”字典攻擊,“-a 1” 組合攻擊;“-a 3”掩碼攻擊。
-V, —version 版本信息
-h, --help 幫助信息。
--quiet 安靜的模式, 抑制輸出
(2)基準(zhǔn)測試
-b, --benchmark 測試計(jì)算機(jī)破解速度和顯示硬件相關(guān)信息
(3)雜項(xiàng)
--hex-salt salt值是用十六進(jìn)制給出的
--hex-charset 設(shè)定字符集是十六進(jìn)制給出
--runtime=NUM 運(yùn)行數(shù)秒(NUM值)后的中止會(huì)話
--status 啟用狀態(tài)屏幕的自動(dòng)更新
--status-timer=NUM 狀態(tài)屏幕更新秒值
--status-automat 以機(jī)器可讀的格式顯示狀態(tài)視圖
--session 后跟會(huì)話名稱,主要用于中止任務(wù)后的恢復(fù)破解。
(4)文件
-o, --outfile=FILE 定義哈希文件恢復(fù)輸出文件
--outfile-format=NUM 定義哈希文件輸出格式,見下面的參考資料
--outfile-autohex-disable 禁止使用十六進(jìn)制輸出明文
-p, --separator=CHAR 為哈希列表/輸出文件定義分隔符字符
--show 僅僅顯示已經(jīng)破解的密碼
--left 僅僅顯示未破解的密碼
--username 忽略hash表中的用戶名,對linux文件直接進(jìn)行破解,不需要進(jìn)行整理。
--remove 移除破解成功的hash,當(dāng)hash是從文本中讀取時(shí)有用,避免自己手工移除已經(jīng)破解的hash
--stdout 控制臺模式
--potfile-disable 不寫入pot文件
--debug-mode=NUM 定義調(diào)試模式(僅通過使用規(guī)則進(jìn)行混合),參見下面的參考資料
--debug-file=FILE 調(diào)試規(guī)則的輸出文件(請參閱調(diào)試模式)
-e, --salt-file=FILE 定義加鹽文件列表
--logfile-disable 禁止logfile
(4) 資源
-c, --segment-size=NUM 字典文件緩存大小(M)
-n, --threads=NUM 線程數(shù)
-s, --words-skip=NUM 跳過單詞數(shù)
-l, --words-limit=NUM 限制單詞數(shù)(分布式)
(5)規(guī)則
-r, --rules-file=FILE 使用規(guī)則文件: -r 1.rule,
-g, --generate-rules=NUM 隨機(jī)生成規(guī)則
--generate-rules-func-min= 每個(gè)隨機(jī)規(guī)則最小值
--generate-rules-func-max=每個(gè)隨機(jī)規(guī)則最大值
--generate-rules-seed=NUM 強(qiáng)制RNG種子數(shù)
(6)自定義字符集
-1, --custom-charset1=CS 用戶定義的字符集
-2, --custom-charset2=CS 例如:
-3, --custom-charset3=CS --custom-charset1=?dabcdef : 設(shè)置?1 為0123456789abcdef
-4, --custom-charset4=CS -2mycharset.hcchr : 設(shè)置 ?2 包含在mycharset.hcchr
文件
(7)攻擊模式
大小寫轉(zhuǎn)換攻擊:
--toggle-min=NUM 在字典中字母的最小值
--toggle-max=NUM 在字典中字母的最大值
* 使用掩碼攻擊模式:
--increment 使用增強(qiáng)模式
--increment-min=NUM 增強(qiáng)模式開始值
--increment-max=NUM 增強(qiáng)模式結(jié)束值
* 排列攻擊模式
--perm-min=NUM 過濾比NUM數(shù)小的單詞
--perm-max=NUM 過濾比NUM數(shù)大的單詞
* 查找表攻擊模式:
-t, --table-file=FILE 表文件
--table-min=NUM 在字典中的最小字符值
--table-max=NUM 在字典中的最大字符值
* 打印攻擊模式:
--pw-min=NUM 如果長度大于NUM,則打印候選字符
--pw-max=NUM 如果長度小于NUM,則打印候選字符
--elem-cnt-min=NUM 每個(gè)鏈的最小元素?cái)?shù)
--elem-cnt-max=NUM 每個(gè)鏈的最大元素?cái)?shù)
--wl-dist-len 從字典表中計(jì)算輸出長度分布
--wl-max=NUM 從字典文件中加載NUM個(gè)單詞,設(shè)置0禁止加載。
--case-permute 在字典中對每一個(gè)單詞進(jìn)行反轉(zhuǎn)
(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
* 調(diào)試模式輸出文件 (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
* 內(nèi)置的字符集:
?l = abcdefghijklmnopqrstuvwxyz 代表小寫字母
?u = ABCDEFGHIJKLMNOPQRSTUVWXYZ 代表大寫字母
?d = 0123456789 代表數(shù)字
?s = !"#$%&'()*+,-./:;<=>?@[]^_`{|}~ 代表特殊字符
?a = ?l?u?d?s 大小寫數(shù)字及特殊字符的組合
?b = 0x00 - 0xff
攻擊模式
0 = Straight (字典破解)
1 = Combination (組合破解)
2 = Toggle-Case (大小寫轉(zhuǎn)換)
3 = Brute-force(掩碼暴力破解)
4 = Permutation(序列破解)
5 = Table-Lookup(查表破解)
6 = Hybrid dict + mask 字典加掩碼破解
7 = Hybrid mask + dict 掩碼+字典破解
8 = Prince(王子破解)
* 哈希類型
有關(guān)哈希具體值示例可以參考example_hashes [hashcat wiki]
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 密碼破解推薦原則
破解時(shí)采取先易后難的原則,建議如下:
(1)利用收集的公開字典進(jìn)行破解
(2)使用1-8位數(shù)字進(jìn)行破解。
(3)使用1-8位小寫字母進(jìn)行破解
(4)使用1-8位大寫字母進(jìn)行破解
(5)使用1-8位混合大小寫+數(shù)字+特殊字符進(jìn)行破解
3.2 hashcat破解規(guī)則
(1)字典攻擊
-a 0 password.lst
(2)1到8為數(shù)字掩碼攻擊
-a 3 --increment --increment-min 1--increment-max 8 ?d?d?d?d?d?d?d?d –O
?d代表數(shù)字,可以換成小寫字母?l,大寫字母?u,特殊字符?s,大小寫字母+特殊字符?a,–O表示最優(yōu)化破解模式,可以加該參數(shù),也可以不加該參數(shù)。
(3)8為數(shù)字攻擊
-a 3 ?d?d?d?d?d?d?d?d
同理可以根據(jù)位數(shù)設(shè)置為字母大寫、小寫、特殊字符等模式。
(4)自定義字符
現(xiàn)在純數(shù)字或者純字母的密碼是比較少見的,根據(jù)密碼專家對泄漏密碼的分析,90%的個(gè)人密碼是字母和數(shù)字的組合,可以是自定義字符了來進(jìn)行暴力破解,Hashcat支持4個(gè)自定義字符集,分別是 -1 -2 -3 -4。定義時(shí)只需要這樣-2 ?l?d ,然后就可以在后面指定?2,?2表示小寫字母和數(shù)字。這時(shí)候要破解一個(gè)8位混合的小寫字母加數(shù)字:
Hashcat.exe -a 3 --force -2 ?l?d hassh值或者h(yuǎn)ash文件 ?2?2?2?2?2?2?2?2
例如破解dz小寫字母+數(shù)字混合8位密碼破解:
Hashcat -m 2611 -a 3 -2 ?l?d dz.hash ?2?2?2?2?2?2?2?2
(5)字典+掩碼暴力破解
Hashcat還支持一種字典加暴力的破解方法,就是在字典前后再加上暴力的字符序列,比如在字典后面加上3為數(shù)字,這種密碼是很常見的。使用第六種攻擊模式:
a-6 (Hybrid dict + mask)
如果是在字典前面加則使用第7中攻擊模式也即( a-7 = Hybridmask + dict),下面對字典文件加數(shù)字123進(jìn)行破解:
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)大小寫轉(zhuǎn)換攻擊,對password.lst中的單詞進(jìn)行大小寫轉(zhuǎn)換攻擊
H.exe-a 2 ffe1cb31eb084cd7a8dd1228c23617c8 password.lst
4.獲取并整理密碼hashes值
4.1 windows哈希值獲取及整理
(1)獲取Windows操作系統(tǒng)hash值
獲取Windows7操作系統(tǒng)的hash值有多個(gè)軟件,比如wce,mimikatz,cain以及saminside等,在windows vista以及以上版本都會(huì)有UAC權(quán)限控制機(jī)制。UAC(User Account Control,用戶帳戶控制)是微軟為提高系統(tǒng)安全而在Windows Vista中引入的新技術(shù),它要求用戶在執(zhí)行可能會(huì)影響計(jì)算機(jī)運(yùn)行的操作或執(zhí)行更改影響其他用戶的設(shè)置的操作之前,提供權(quán)限或管理員?密碼。通過在這些操作啟動(dòng)前對其進(jìn)行驗(yàn)證,UAC 可以幫助防止惡意軟件和間諜軟件在未經(jīng)許可的情況下在計(jì)算機(jī)上進(jìn)行安裝或?qū)τ?jì)算機(jī)進(jìn)行更改。因此獲取密碼的工具都需要以管理員身份運(yùn)行,選擇saminside.exe程序,右鍵單擊在彈出的菜單中選擇“以管理員身份運(yùn)行”,然后在saminside程序主界面中從左往右選擇第三個(gè)圖標(biāo),下來菜單第二個(gè)選項(xiàng)(Import local user using Scheduler)來獲取密碼,如圖1所示,即可獲取本機(jī)所有帳號的密碼hash值等信息。
圖1獲取密碼hash值
(2)整理hash值
在saminside中可以導(dǎo)出所有帳號的hash值,也可以復(fù)制單個(gè)帳號的hash值。單擊“File”菜單中的“導(dǎo)出用戶到pwdump文件”即可導(dǎo)出獲取的hash值,也可以選擇hash,右鍵單擊“復(fù)制”-“NT hash”獲取NT hash值。對于Windows Vista以上操作系統(tǒng)即使是普通的密碼也以“AAD3B”開頭的一串字符,這個(gè)值目前在“ophcrack”等工具中無法進(jìn)行破解,在saminside中會(huì)顯示為一串“0”字符,將NT hash值整理到一個(gè)文件中,并命名為win2.hash,如圖2所示。
圖2整理需要破解的hash值
4.2 linux哈希值整理
在linux下使用cat /ect/shadow>myshadow.txt
可以對myshadow.txt進(jìn)行整理僅僅保留加密部分值,例如:
$1$H4EQc23T$jseelsIklWRjQMiY8sNdf1
也可以保留用戶名部分,root:$1$KsRJO8kG$M9co4G7T6.5KcITsSCRNS/:15225:0:99999:7:::,如果帶用戶名,則在破解是需要加--username參數(shù)。
3.其它哈希值整理
一般來說一類密碼哈希值單獨(dú)保存為一個(gè)文件,有的密碼帶salt,因此需要完整的哈希值,例如discuz!論壇的密碼值為:
ffe1cb31eb084cd7a8dd1228c23617c8:f56463
前段值類似md5加密,后段值為salt,如果沒有salt值,其破解結(jié)果就相差甚遠(yuǎn)了。
對某些特殊的哈希加密,還需要借助一些工具軟件來進(jìn)行,例如office加密文檔,就需要從http://www.openwall.com/john/j/john-1.8.0-jumbo-1.tar.gz里面需要對應(yīng)的python文件進(jìn)行hash計(jì)算。例如office密碼哈希計(jì)算機(jī)工具文件office2john.py,使用office2john.py 1.doc即可計(jì)算其文檔加密值。
5.破解Windows下hash值
5.1 hashcat破解
將準(zhǔn)備好的字典password.lst、需要破解的hash值文件win.hash復(fù)制到hashcat程序所在文件夾下,執(zhí)行一下命令進(jìn)行破解:
hashcat-m 1000 -a 0 -o winpassok.txt win.hash password.lst --username
參數(shù)說明:
“-m 1000” 表示破解密碼類型為“NTLM”;
“-a 0”表示采用字典破解;
“-o”將破解后的結(jié)果輸出到winpassok.txt;
“--remove win.hash”表示從win.hash移除破解成功的hash,帶username不能跟remove同時(shí)使用,也就可以對單一密碼值進(jìn)行整理,然后使用該參數(shù)。
“password.lst”為密碼字典文件。
破解過程會(huì)顯示“[s]tatus[p]ause [r]esume [b]ypass [q]uit =>”,鍵盤輸入“s”顯示破解狀態(tài),輸入“p”暫停破解,輸入“r”繼續(xù)破解,輸入“b”表示忽略破解,輸入“q”表示退出,所有成功破解的結(jié)果都會(huì)自動(dòng)保存在 “hashcat.pot” 文件中。破解結(jié)束會(huì)顯示如圖3所示的信息。
圖3顯示破解信息
5.2 查看破解結(jié)果
(1)使用“type winpassok.txt”命令查看破解結(jié)果,如圖4所示,顯示該帳號的密碼為“password”。
圖4查看密碼破解結(jié)果
(2)“--show”命令查看。如果在破擊參數(shù)中沒有“-o winpassok.txt”則可以通過命令后加入“--show”進(jìn)行查看:
hashcat-m 1000 -a 0 win.hash password.lst--username –show
(3)hashcat.potfile查看結(jié)果。到hashcat程序目錄直接打開hashcat.potfile文件來查看已經(jīng)成功破解的密碼。
6.linux操作系統(tǒng)密碼破解
6.1 針對不同加密類型進(jìn)行破解
(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所示,執(zhí)行命令進(jìn)行破解:hashcat -m 500 passwd1_hash.txt password.lst
在破解過程中如果有成功的密碼,則會(huì)直接顯示,按s鍵可以查看破解的狀態(tài)信息,p鍵暫停,s鍵繼續(xù)破解,q鍵退出破解。
圖5破解linux md5密碼
hashcat.pot中會(huì)自動(dòng)保存破解成功的哈希密碼及其破解后的明文密碼。
7.破解office文檔
7.1 計(jì)算office加密文檔的hash值
下載http://www.openwall.com/john/j/john-1.8.0-jumbo-1.tar.gz,從其壓縮包中獲取 office2john.py文件,然后執(zhí)行
office2john.pyDocOld2010.doc
即可獲取DocOld2010.doc文檔的加密值,如圖6所示。
DocOld2010.doc:$oldoffice$1*d6aabb63363188b9b73a88efb9c9152e*afbbb9254764273f8f4fad9a5d82981f*6f09fd2eafc4ade522b5f2bee0eaf66d:::1:
:DocOld2010.doc
圖6計(jì)算office哈希值
去掉前后的DocOld2010.doc和對應(yīng)的“:”,其真正的哈希值為:
$oldoffice$1*d6aabb63363188b9b73a88efb9c9152e*afbbb9254764273f8f4fad9a5d82981f*6f09fd2eafc4ade522b5f2bee0eaf66d
將其保存為hash文件。
7.2 破解Office加密Offcie版本對應(yīng)哈希類型
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位數(shù)字破解
Hashcat64-m 9700 hash -a 3 ?d?d?d?d?d?d?d?d -w 3 –O
(2)1-8位數(shù)字破解
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位小寫+ 大寫+數(shù)字+特殊字符破解
Hashcat-m 9700 hash -a 3 ?b?b?b?b?b -w 3
(8)使用字典進(jìn)行破解
使用password.lst字典進(jìn)行暴力破解,-w 3參數(shù)是指定電力消耗
Hashcat -m 9700 -a 0 -w 3 hash password.lst
如圖7所示,對hash文件通過數(shù)字破解完成后,繼續(xù)進(jìn)行1-8位小寫字母的破解,在該圖中會(huì)顯示掩碼值,破解進(jìn)度,破解開始時(shí)間,破解預(yù)計(jì)耗費(fèi)時(shí)間,以及破解顯卡或者CPU的溫度,一般設(shè)置到90攝氏度就自動(dòng)終止,以免燒壞計(jì)算機(jī)。
圖7開始破解
7.4 查看破解結(jié)果
在執(zhí)行破解成功后,hashcat會(huì)自動(dòng)終止破解,并顯示破解狀態(tài)為Cracked,Recvoered中也會(huì)顯示是否破解成功,如圖8所示,經(jīng)過34分鐘的破解,成功將某一個(gè)加密文檔破解。
圖8破解word文件成功
還可以通過查看hashcat.potfile以及執(zhí)行破解命令后加“--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文件查看破解結(jié)果
圖10執(zhí)行命令查看破解結(jié)果
8.暴力破解ssh的known_hosts中的IP地址
8.1 破解known_hosts中的IP地址
經(jīng)過研究發(fā)現(xiàn)known_hosts中會(huì)對連接的IP地址進(jìn)行HMAC SHA1加密,可以通過hexhosts攻擊進(jìn)行轉(zhuǎn)換,然后通過hashcat進(jìn)行暴力破解,其密碼類型為160(HMAC-SHA1 (key = $salt))。
(1)計(jì)算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文件復(fù)制到hexhosts文件目錄。
(2)組合攻擊暴力破解
hashcat-a 1 -m 160 known_hosts.hash ips_left.txt ips_right.txt --hex-salt
組合攻擊是將ips_left.txt和ips_right.txt進(jìn)行組合,形成完整的IP地址進(jìn)行暴力破解。
ips_left.txt和ips_right.txt文件可以用以下代碼進(jìn)行生成:
ip-gen.sh:
#!/bin/bash
for 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)使用掩碼進(jìn)行攻擊
hashcat -a 3 -m 160 known_hosts.hash ipv4.hcmask--hex-salt
ipv4.hcmask文件內(nèi)容可去ipv4.hcmask - Pastebin.com下載。
圖11破解known_hosts中加密的IP地址
8.2 破解md5加密的IP地址
在CDN等網(wǎng)絡(luò)或者配置中往往會(huì)對IP地址進(jìn)行MD5加密,由于其位數(shù)3×4+3(xxx.xxx.xxx.xxx)=17位,通過正常的密碼破解其時(shí)間耗費(fèi)非常長,但通過分析其IP地址的規(guī)律,發(fā)現(xiàn)其地址XXX均為數(shù)字,因此可以通過hashcat的組合和掩碼進(jìn)行攻擊。
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中會(huì)對其IP地址進(jìn)行加密,可以參考的破解代碼如下:
>>>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.破解總結(jié)及技巧
9.1 GPU破解模式使用自動(dòng)優(yōu)化
在使用GPU模式進(jìn)行破解時(shí),可以使用-O參數(shù)自動(dòng)進(jìn)行優(yōu)化
9.2 暴力破解一條md5值
(1)9位數(shù)字破解
Hashcat64.exe-a 3 --force d98d28ca88f9966cb3aaefebbfc8196f ?d?d?d?d?d?d?d?d?d
單獨(dú)破解一條md5值需要加force參數(shù)
(2)9位字母破解
Hashcat64.exe-a 3 --force d98d28ca88f9966cb3aaefebbfc8196f ?l?l?l?l?l?l?l?l?l
9.3 破解帶鹽discuz密碼
(1)數(shù)字破解
7位數(shù)字,7秒時(shí)間破解完成任務(wù)。
Hashcat64.exe-a 3 --force -m 2611 ffe1cb31eb084cd7a8dd1228c23617c8:f56463 ?d?d?d?d?d?d?d
8位數(shù)字破解,9秒時(shí)間破解完成任務(wù)。:
Hashcat64.exe-a 3 --force -m 2611 ffe1cb31eb084cd7a8dd1228c23617c8:f56463 ?d?d?d?d?d?d?d?d
9位數(shù)字破解,9秒時(shí)間破解完成任務(wù)。
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分鐘左右完成破解任務(wù)
(4)9位小寫字母
Hashcat64.exe-a 3 --force -m 2611 ffe1cb31eb084cd7a8dd1228c23617c8:f56463 ?l?l?l?l?l?l?l?l?l-O
9.5 字母加數(shù)字
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位數(shù)字破解
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)使用數(shù)字加字母混合6位進(jìn)行破解
Hashcat64.exe-a 3 --force -m 2611 -2 ?d?l ffe1cb31eb084cd7a8dd1228c23617c8:f56463?2?2?2?2?2?2 -O
(2)使用數(shù)字加字母混合7位進(jìn)行破解,破解時(shí)間4分16秒
Hashcat64.exe-a 3 --force -m 2611 -2 ?d?l ffe1cb31eb084cd7a8dd1228c23617c8:f56463?2?2?2?2?2?2?2 –O
(3)使用數(shù)字加字母混合8位進(jìn)行破解
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
使用字典文件夾下的字典進(jìn)行破解:
Hashcat32.exe-m 300 mysqlhashes.txt –remove -o mysql-cracked.txt ..dictionaries*
9.8 會(huì)話保存及恢復(fù)破解
(1)使用mask文件規(guī)則來破解密碼
hashcat-m 2611 -a 3 --session mydz dz.hash masks/rockyou-7-2592000.hcmask
(2)恢復(fù)會(huì)話
hashcat--session mydz --restore
9.9 掩碼破解
mask規(guī)則文件位于masks下,例如D:PentestBoxhashcat-4.1.0masks,執(zhí)行破解設(shè)置為:
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 運(yùn)用規(guī)則文件進(jìn)行破解
Hashcat -m 300 mysqlhashes.txt–remove -o mysql-cracked.txt ..dictionaries* -r rulesest64.rule
hashcat -m 2611 -a 0 dz.hashpassword.lst -r rulesest64.rule -O
上一篇: 在openwrt系統(tǒng)中設(shè)置開機(jī)自啟服務(wù)
下一篇: 沒有了!