借助John the ripper破解Linux密碼
譯文John the ripper是一款大受歡迎的、基于字典的密碼破解工具。它使用內(nèi)容全是密碼的單詞表,然后使用單詞表中的每一個(gè)密碼,試圖破解某個(gè)特定的密碼散列。換句話說,它又叫蠻力密碼破解,這是一種最基本的密碼破解方式。不過它也是最耗費(fèi)時(shí)間、最耗費(fèi)處理器資源的一種方法。嘗試的密碼越多,所需的時(shí)間就越長。
John有別于Hdra之類的工具。Hydra進(jìn)行盲目的蠻力攻擊,其方法是在FTP服務(wù)器或Telnet服務(wù)器上的服務(wù)后臺(tái)程序上嘗試用戶名/密碼組合。不過,John首先需要散列。所以,對(duì)黑客來說更大的挑戰(zhàn)是,先搞到需要破解的散列。如今,使用網(wǎng)上隨處可得的免費(fèi)彩虹表(rainbow table),比較容易破解散列。只要進(jìn)入到其中一個(gè)網(wǎng)站,提交散列;要是散列由一個(gè)常見單詞組成,那么該網(wǎng)站幾乎立馬就會(huì)顯示該單詞。彩虹表基本上將常見單詞及對(duì)應(yīng)散列存儲(chǔ)在一個(gè)龐大的數(shù)據(jù)庫中。數(shù)據(jù)庫越大,涵蓋的單詞就越多。
但是如果你想在自己的系統(tǒng)上本地破解密碼,那么John是值得一試的好工具之一。John躋身于Kali Linux的十大安全工具。在Ubuntu上,它可以通過新立得軟件包管理器(synaptic package manager)來安裝。
我在本文中將向各位介紹如何使用unshadow命令連同John,在Linux系統(tǒng)上破解用戶的密碼。在Linux上,用戶名/密鑰方面的詳細(xì)信息存儲(chǔ)在下面這兩個(gè)文件中。
/etc/passwd
/etc/shadow
實(shí)際的密碼散列則存儲(chǔ)在/etc/shadow中;只要對(duì)該機(jī)器擁有根訪問權(quán),就可以訪問該文件。所以,試著從你自己的Linux系統(tǒng)來訪問該文件?;蛘呦葎?chuàng)建一個(gè)使用簡(jiǎn)單密碼的新用戶。我會(huì)在自己的Linux系統(tǒng)上創(chuàng)建一個(gè)名為happy的新用戶,其密碼為chess。
root@kali:~# adduser happy
Adding user `happy' ...
Adding new group `happy' (1001) ...
Adding new user `happy' (1000) with group `happy' ...
Creating home directory `/home/happy' ...
Copying files from `/etc/skel' ...
Enter new UNIX password:
Retype new UNIX password:
passwd: password updated successfully
Changing the user information for happy
Enter the new value, or press ENTER for the default
Full Name []:
Room Number []:
Work Phone []:
Home Phone []:
Other []:
Is the information correct? [Y/n] y
root@kali:~#
為了方便演示,最好使用一個(gè)簡(jiǎn)單的密碼,那樣你沒必要等待太長的時(shí)間。由于我們的新用戶已創(chuàng)建完畢,現(xiàn)在可以破解其密碼了。
unshadow
unshadow命令基本上會(huì)結(jié)合/etc/passwd的數(shù)據(jù)和/etc/shadow的數(shù)據(jù),創(chuàng)建1個(gè)含有用戶名和密碼詳細(xì)信息的文件。用法相當(dāng)簡(jiǎn)單。
root@kali:~# unshadow
Usage: unshadow PASSWORD-FILE SHADOW-FILE
root@kali:~# unshadow /etc/passwd /etc/shadow > ~/file_to_crack
我們將unshadow命令的輸出結(jié)果重定向至名為file_to_crack的新文件。
借助John來破解
現(xiàn)在這個(gè)新文件將由John來破解。就單詞表而言,我們將使用Kali Linux上的John隨帶的密碼列表。它位于下面這個(gè)路徑:
/usr/share/john/password.lst
你也可以使用自己的密碼列表。
root@kali:~# john --wordlist=/usr/share/john/password.lst ~/file_to_crack
Warning: detected hash type "sha512crypt", but the string is also recognized as "crypt"
Use the "--format=crypt" option to force loading these as that type instead
Loaded 2 password hashes with 2 different salts (sha512crypt [64/64])
chess (happy)
guesses: 1 time: 0:00:00:21 DONE (Tue May 14 06:47:58 2013) c/s: 300 trying: sss
Use the "--show" option to display all of the cracked passwords reliably
root@kali:~#
所以在上面這個(gè)命令中,John能夠破解散列,為我們破解出用戶“happy”的密碼“chess”?,F(xiàn)在,John能夠破解,就因?yàn)槊艽a“chess”出現(xiàn)在密碼列表中。要是該密碼沒有出現(xiàn)在密碼列表中,那么John就會(huì)失敗。
使用show選項(xiàng),列出所有被破解的密碼。
root@kali:~# john --show ~/file_to_crack
happy:chess:1000:1001:,,,:/home/happy:/bin/bash1 password hash cracked, 1 left
root@kali:~#
剩余的1個(gè)密碼是用戶root的密碼。所提供的單詞表中沒有一個(gè)密碼破解得了。
不用單詞表
要是不使用密碼列表就想借助John破解密碼,最簡(jiǎn)單的辦法就是這樣:
root@kali:~# john ~/file_to_crack
按照說明文檔
這會(huì)先嘗試“簡(jiǎn)單破解”(single crack)模式,然后使用帶規(guī)則的單詞表,最后是嘗試“增強(qiáng)破解”(incremental)模式。
參閱模式方面的說明文檔:http://www.openwall.com/john/doc/MODES.shtml。
相關(guān)資源
http://www.openwall.com/john/doc/EXAMPLES.shtml
原文地址:http://www.binarytides.com/cracking-linux-password-with-john-the-ripper-tutorial/