本文介紹了John the ripper這款密碼破解工具
http://netsecurity.51cto.com/art/201406/442674.htm
John the ripper是一款大受歡迎的、基于字典的密碼破解工具攒钳。它使用內(nèi)容全是密碼的單詞表病毡,然后使用單詞表中的每一個密碼,試圖破解某個特定的密碼散列内狗。換句話說,它又叫蠻力密碼破解义锥,這是一種最基本的密碼破解方式柳沙。不過它也是最耗費時間、最耗費處理器資源的一種方法拌倍。嘗試的密碼越多赂鲤,所需的時間就越長。
John有別于Hdra之類的工具柱恤。Hydra進行盲目的蠻力攻擊数初,其方法是在FTP服務(wù)器或Telnet服務(wù)器上的服務(wù)后臺程序上嘗試用戶名/密碼組合。不過梗顺,John首先需要散列泡孩。所以,對黑客來說更大的挑戰(zhàn)是寺谤,先搞到需要破解的散列仑鸥。如今吮播,使用網(wǎng)上隨處可得的免費彩虹表(rainbow table),比較容易破解散列眼俊。只要進入到其中一個網(wǎng)站意狠,提交散列;要是散列由一個常見單詞組成摄职,那么該網(wǎng)站幾乎立馬就會顯示該單詞获列。彩虹表基本上將常見單詞及對應(yīng)散列存儲在一個龐大的數(shù)據(jù)庫中谷市。數(shù)據(jù)庫越大,涵蓋的單詞就越多击孩。
但是如果你想在自己的系統(tǒng)上本地破解密碼巩梢,那么John是值得一試的好工具之一创泄。John躋身于Kali Linux的十大安全工具。在Ubuntu上括蝠,它可以通過新立得軟件包管理器(synaptic package manager)來安裝鞠抑。
我在本文中將向各位介紹如何使用unshadow命令連同John忌警,在Linux系統(tǒng)上破解用戶的密碼法绵。在Linux上朋譬,用戶名/密鑰方面的詳細信息存儲在下面這兩個文件中。
/etc/passwd
/etc/shadow
實際的密碼散列則存儲在/etc/shadow中;只要對該機器擁有根訪問權(quán),就可以訪問該文件窑业。所以阴汇,試著從你自己的Linux系統(tǒng)來訪問該文件数冬〗诨保或者先創(chuàng)建一個使用簡單密碼的新用戶搀庶。我會在自己的Linux系統(tǒng)上創(chuàng)建一個名為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:~#
為了方便演示哥倔,最好使用一個簡單的密碼秸架,那樣你沒必要等待太長的時間。由于我們的新用戶已創(chuàng)建完畢咆蒿,現(xiàn)在可以破解其密碼了东抹。
unshadow
unshadow命令基本上會結(jié)合/etc/passwd的數(shù)據(jù)和/etc/shadow的數(shù)據(jù),創(chuàng)建1個含有用戶名和密碼詳細信息的文件沃测。用法相當簡單缭黔。
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)在這個新文件將由John來破解蒂破。就單詞表而言馏谨,我們將使用Kali Linux上的John隨帶的密碼列表。它位于下面這個路徑:
/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:~#
所以在上面這個命令中附迷,John能夠破解散列惧互,為我們破解出用戶“happy”的密碼“chess”。現(xiàn)在喇伯,John能夠破解喊儡,就因為密碼“chess”出現(xiàn)在密碼列表中。要是該密碼沒有出現(xiàn)在密碼列表中稻据,那么John就會失敗艾猜。
使用show選項,列出所有被破解的密碼捻悯。
root@kali:~# john --show ~/file_to_crack
happy:chess:1000:1001:,,,:/home/happy:/bin/bash
1 password hash cracked, 1 left
root@kali:~#
剩余的1個密碼是用戶root的密碼箩朴。所提供的單詞表中沒有一個密碼破解得了。
不用單詞表
要是不使用密碼列表就想借助John破解密碼秋度,最簡單的辦法就是這樣:
root@kali:~# john ~/file_to_crack
按照說明文檔
這會先嘗試“簡單破解”(single crack)模式炸庞,然后使用帶規(guī)則的單詞表,最后是嘗試“增強破解”(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/