John the Ripper:支持多平臺(tái)的密碼破解器
John the Ripper是一個(gè)流行的口令破解工具,它支持Windows和Linux平臺(tái),是一個(gè)開源軟件。如果我們想使用專門針對(duì)特定操作系統(tǒng)優(yōu)化、并生成相應(yīng)本地代碼的商業(yè)版本的該產(chǎn)品,那么讀者可以使用John the Ripper Pro,主頁地址為http://www.openwall.com/john/pro/。讀者可以根據(jù)需要購買或下載破解字典表。本文以Linux下的John the Ripper為例,說明使用該程序破解Linux下/etc/shadow口令文件的方法。
下載鏈接:http://down.51cto.com/data/146315
>>去網(wǎng)絡(luò)安全工具百寶箱看看其它安全工具
首先我們了解一下John the Ripper都有什么選項(xiàng),如表1所示,其中方括號(hào)中的內(nèi)容為可選項(xiàng)。
選 項(xiàng)
|
描 述
|
--single
|
single crack模式,使用配置文件中的規(guī)則進(jìn)行破解
|
--wordlist=FILE
--stdin
|
字典模式,從FILE或標(biāo)準(zhǔn)輸入中讀取詞匯
|
--rules
|
打開字典模式的詞匯表切分規(guī)則
|
--incremental[=MODE]
|
使用增量模式
|
--external=MODE
|
打開外部模式或單詞過濾,使用[List.External:MODE]節(jié)中定義的外部函數(shù)
|
--stdout[=LENGTH]
|
不進(jìn)行破解,僅僅把生成的、要測(cè)試是否為口令的詞匯輸出到標(biāo)準(zhǔn)輸出上
|
--restore[=NAME]
|
恢復(fù)被中斷的破解過程,從指定文件或默認(rèn)為$JOHN/john.rec的文件中讀取破解過程的狀態(tài)信息
|
--session=NAME
|
將新的破解會(huì)話命名為NAME,該選項(xiàng)用于會(huì)話中斷恢復(fù)和同時(shí)運(yùn)行多個(gè)破解實(shí)例的情況
|
--status[=NAME]
|
顯示會(huì)話狀態(tài)
|
--make-charset=FILE
|
生成一個(gè)字符集文件,覆蓋FILE文件,用于增量模式
|
--show
|
顯示已破解口令
|
--test
|
進(jìn)行基準(zhǔn)測(cè)試
|
--users=[-]LOGIN|UID[,..]
|
選擇指定的一個(gè)或多個(gè)賬戶進(jìn)行破解或其他操作,列表前的減號(hào)表示反向操作,說明對(duì)列出賬戶之外的賬戶進(jìn)行破解或其他操作
|
--groups=[-]GID[,..]
|
對(duì)指定用戶組的賬戶進(jìn)行破解,減號(hào)表示反向操作,說明對(duì)列出組之外的賬戶進(jìn)行破解。
|
--shells=[-]SHELL[,..]
|
對(duì)使用指定shell的賬戶進(jìn)行操作,減號(hào)表示反向操作
|
--salts=[-]COUNT
|
至少對(duì)COUNT口令加載加鹽,減號(hào)表示反向操作
|
--format=NAME
|
指定密文格式名稱,為DES/BSDI/MD5/BF/AFS/LM之一
|
--save-memory=LEVEL
|
設(shè)置內(nèi)存節(jié)省模式,當(dāng)內(nèi)存不多時(shí)選用這個(gè)選項(xiàng)。LEVEL取值在1~3之間
|
除了口令破解程序之外,在這個(gè)軟件包中,還包含了其他幾個(gè)實(shí)用工具,它們對(duì)于實(shí)現(xiàn)口令破解都有一定的幫助,這些工具都放置在run目錄下,下面分別予以簡(jiǎn)要介紹。
unshadow PASSWORD-FILE SHADOW-FILE
unshadow命令將passwd文件和shadow文件組合在一起,其結(jié)果用于John破解程序。通常應(yīng)該使用重定向方法將這個(gè)程序的結(jié)果保存在文件中,之后將文件傳遞給John破解程序。
unafs DATABASE-FILE CELL-NAME
unafs從二進(jìn)制AFS數(shù)據(jù)庫中提取口令散列值,并生成John可用的輸出,通常應(yīng)該把這個(gè)輸出重定向到文件中。
unique OUTPUT-FILE
刪除字典表中的重復(fù)詞匯,但不改變字典表中各詞條項(xiàng)的順序。
現(xiàn)在,我們使用unshadow命令得到一個(gè)破解程序好用的口令文件。下面的命令完成這個(gè)任務(wù):
- unshadow /etc/passwd /etc/shadow > passwd.1
它將/etc/passwd和/etc/shadow文件組合起來,結(jié)果保存到新的文件passwd.1中。
現(xiàn)在,運(yùn)行John the Ripper。默認(rèn)情況下,John使用passwd.lst作為攻擊用的字典文件,我們可以編輯這個(gè)文件或創(chuàng)建自己的口令文件。示例8-1給出了使用默認(rèn)字典文件破解口令的命令及其輸出。
示例1:使用默認(rèn)配置運(yùn)行John the Ripper。
- linux:/usr/bin/john-1.
- 6/run # ./john passwd.1Loaded 6 passwords with 6 different salts (Standard DES [24/32 4K])
- newuser (user2)
- foobar (user4)
- 123456 (user3)
- Mickey (user1)
- guesses: 4 time: 0:00:00:02 (3) c/s: 135389 trying: sampida - chillier
示例1說明,破解了該主機(jī)上4個(gè)用戶的口令。作為滲透測(cè)試人員,我們應(yīng)該創(chuàng)建一個(gè)能夠破解的口令表,如表2所示。
表2 已破解口令
用 戶
|
口 令
|
User1
|
Mickey
|
User2
|
Newuser
|
續(xù)表
用 戶
|
口 令
|
User3
|
123456
|
User4
|
Foobar
|
通過在命令行中使用show選項(xiàng),可以觀察破解的口令,如示例2所示。
示例2:使用John the Ripper顯示破解后的口令。
- linux:/usr/bin/john-1.6/run # ./john -show passwd.1
- user1:Mickey:502:100::/home/user1:/bin/bash
- user2:newuser:503:100::/home/user2:/bin/bash
- user3:123456:504:100::/home/user3:/bin/bash
- user4:foobar:505:100::/home/user4:/bin/bash
- 4 passwords cracked, 2 left
如果我們想查看原始加密口令和破解后的口令,那么隨時(shí)可以打開文件john.pot來觀看,如示例3所示。
示例3:顯示原始加密口令和破解后的口令。
- linux:/usr/bin/john-1.6/run # cat ./john.pot
- VYvDtYmDSCOPc:newuser
- G54NKwmDHXwRM:foobar
- t5zO9hJzkv7ZA:123456
- Ae.SZDrP7fCPk:Mickey