設定檔
--------
1. 假設你認為你要破解的某些密碼檔中有很多的使用者他們所設定的密碼都是以帳號
名稱再加上 '?!' 的話. 你只要新增一個 "Single Crack" 模式的規則, 把這一行
放在你的設定檔中:
[List.Rules:Single]
$?$!
提示: 如果你要將 John 原先所設定的預設值保留下來的話, 你可以簡單的修改這個節
段的名稱, 把它改成 John 沒有使用的名稱, 然後再建立一個跟舊節段一樣名稱
的節段, 但請注意新節段必需要把 'list.' 這個關鍵字移除 (不使用), 這樣在
執行的時候才不會出現錯誤.
相同的指令也能夠套用在字典檔破解規則上.
2. 如果你產生了一個自訂的字元集檔案(如上所述) 你也需要使用增強模式的參數定義
一個~/john.ini 的節段. 最簡單的情況之下看起來會像下面這樣 ('Custom'所指的
可以是其它的檔案, 用你所喜歡的名稱來命名):
[Incremental:Custom]
File = custom.chr
這會讓 John 只使用你用該密碼所製作出來的字元集, 如果你想要用所有 95 個字元的
話, 你也需要加入這一行:
CharCount = 95
加入這一行會告訴 John 擴充你的字元集檔, 如果 95個字元(ASCII codes 32 to 126)
中的某些字元沒有出現在你的字元集檔中, 字元加入的次序為: a-z, A-Z, 1-9, 0, 及
其它.
你也可以使用 CharCount 來限制 John 使用不同的字元數:
CharCount = 25
如果你在產生字元集檔時沒有使用任何的過濾器, 設定較低的 CharCount會剃除一些罕
見的字元, 能夠讓 John 更容易嘗試較複雜, 較長的密碼
要讓 John 只嘗試某些長度的密碼, 可以加入下面這幾行:
MinLen = 6
MaxLen = 8
把 'MinLen' 設定的長一點, 就像上面的範例一樣, 在機器有限制使用者密碼長度的時
候是很合理的 (然而, 注意 root 通常可以為使用者設定任何長度的密碼而不受此限).
相反的, 如果你覺得密碼應該不會是很長的, 你可能會想要把 'MaxLen'設定得小一點.
當只使用字母字元(alphabetical)的時候, 也許開啟簡單的內見過濾器會很有用, 如果
很多密碼設定得很簡單:
[Incremental:Wordlike]
CharCount = 26
MinLen = 3
Wordlike = Yeah
File = alpha.chr
3. 當使用 John 在安裝小於 4Mb 的機器上時, 你可能須要使用小一點的字元集, 在使
用 '-makechars' 來產生的字元集, 需要很大的記憶體來擴充 (要快一點執行的話)
在你同時讀進很多個密碼檔的時候也需要這樣子作, 在沒有足夠的記憶體時, 或讓
John 在破解很少的 salts 時稍微跑得快一點. 這都有可能會發生, 因為 John在每
個字讀入像上一次讀入的字, 或只有某些部分的字有改變時速度會快一些.當使用了
大的擴充字元集檔的時候, 字串通常每一次的測試都是比在~/john.ini 中的小字元
集大很多, 字串的差別會相差很大. 而且,大的字元集在擴充的時候花花費較多的時
間. 然而, 你需要注意的就是利益/時間是呈正比的, 要得到更多的密碼就要花更多
的時間,用最好的順序來跑大的擴充字集也是很重要的. 所以聰明的人會使用小一點
的字元集, 如果他們沒有別的選擇的話, 或是你原本就是想要嘗試所有可能的組合.
我故意把比較小的字元集由~/john.ini中拿掉, 這樣你才能夠在 'File=' 這一行中
寫上你會用到的字元集
4. 在其它特殊的情況之下, 你也許會使用自訂的較小字元集, 如果你知道使用者常把
他們的密碼加上'1', 你可以用這樣的範例:
[Incremental:Suffix1]
MinLen = 6
MaxLen = 6
Charset61 = abcdefghijklmnopqrstuvwxyz
Charset62 = abcdefghijklmnopqrstuvwxyz
Charset63 = abcdefghijklmnopqrstuvwxyz
Charset64 = abcdefghijklmnopqrstuvwxyz
Charset65 = abcdefghijklmnopqrstuvwxyz
Charset66 = 1
5. 你也可以用寫一個額外的字串過濾器來達到跟上例相同的結果:
[List.External:Filter1]
void filter() {
int i;
i = 0;
while (word[i] && word[i] >= 'a' && word[i] <= 'z') i++;
if (word[i] != '1' || word[i + 1]) word = 0;
}
這個過濾器只會把有相同字元且結尾是 '1'的濾除. 你可以把它用在其它不同的破解模
式中, 但是都會變得很慢, 因為大部分的字都會被濾掉. 最好是使用它來產生字元集然
後再來使用, (如果你已經有很多密碼已經破解了, 會跳過過濾器).
如果你在某些情況下無法使用頻率表(沒有找到規則), 你可以在額外破解模式中用相同
的程式:
[List.External:Suffix1]
int len, current[9];
void init() {
int i;
current[len = 6] = 0; current[i = len - 1] = '1';
while (i--) current[i] = 'a';
}
void generate() {
int i;
i = len + 1;
while (i--) word[i] = current[i];
i = len - 2;
while (++current[i] > 'z')
if (i) current[i--] = 'a'; else current = -1;
}
void restore() {
int i;
i = len + 1;
while (i--) current[i] = word[i];
}
========
F.A.Q.
========
Q: 為甚麼要命名為 "John"?
A: 為甚麼不?
Q: 為甚麼命名中有 "the Ripper" 這個字?
A: 那是 Lost Soul 的主意. 問他吧!
Q: John the Ripper 有比 Cracker Jack 還要好用嗎?
A: 我覺得比較好. John 支援了所有 Cracker Jack 所提供的功能, 而且也多了很多新
的功能. 還有, John 在 Pentium 上跑得 Jack 還快, 甚至在有些 486 機器上也比
Jack 快很多.
Q: John the Ripper 比 Crack 還好用嗎??
A: 看你自己. John 是有比較快, 而且有一些 Crack 沒有的功能. 但是 Crack 也是一
個不錯的程式.
Q: 為甚麼 John 不能在我的舊 386 上跑得比較快?
A: John 是在 486 以上的機器作最佳化的. 如果要為 386 的機器作最佳化要花很多的
時間. 如果你只有 386 機器的話, 你最好能在 InterNet 上找一台快一點的機器來
跑 John. (對啦! 就是不出 386 版本了! 當然, 386 面臨淘汰了嘛!)
Q: John 有針對 Pentium 進行最加化的版本嗎?
A: John 已經針對 Pentium 級的機器進行過最佳化了!
Q: 我要怎麼樣測試 John 的 crypt() 函式是否工作正常呢?
A: John 在每次執行的時後都會自己測試一次, 你不需自己測試.
Q: 我要怎麼樣使用 John 的 "single crack" 模式? 他好像不能使用字典檔.
A: 沒錯, John 跟 Cracker Jack 的 "single crack" 模式有很大的不同. RTFM.
Q: 為甚麼你不把 "single crack" 改良得跟 Jack 一樣好?
A: Jack 的 "single crack" 模式不是最好的, 它比 John 來要差. 我很高興有人會提
出這個問題... 也許是因為 Jack 的模式看起來比較複雜而令你有這樣的錯覺吧.
Q: 可不可以把 Jack 的 JPP.EXE, 改成可以在 Windows 95 上面跑?
A: 你不需要它了. 但是你大概真的須要再讀一下這篇文章中 "使用者字訂"這個章節,
有關於字點檔規則的部分. 而且, 我認真的建議你不要在 Windows 95 上作任何的
工作.
Q: 我要怎麼看已經破解的密碼? 在 CJack 中有 JACKPOT.EXE 這個檔呀.
A: 在命令列上使用 '-show' 這個指令.
Q: 為甚麼 John 不讀入我的密碼檔呢? 它只顯示 'Loaded 0 passwords'.
A: 你的密碼檔大概是 shadow 過的吧. 你需要抓到密碼檔跟 Shadow檔, 把它們組合在
一起, 然後再來使用 John. 當然, 如果你的密碼檔格式沒有被 John 支援的話也會
出現相同的訊息.
Q: 我要如何解開 shadow?
A: 你大概是說不須要 root 權限就拿到 shadow 檔吧. 嗯,這裡有一些小詭計, 但最好
你還是需要 root. 很抱歉, 我不是在提這些事, 或是告訴你該如何 "hack" root.
這不是這個 FAQ 的原意.
Q: 為甚麼 John 在增強模式不顯示進度指示呢?
A: 你真的想要一直看著 0%嗎? 如果你再問一次這個問題, 你大概需要再讀一次這份文
件了(增強模式方面的說明).
Q: 為甚麼 John 顯示的是無意義的 c/s 數值而不是秀出每秒的 crypt() 進度?
A: John 顯示出來的數值表示每秒組合 (login 及 password) 而不是每秒crypt(). 如
果你只想要試試編碼的速度的話, 使用'-test'這個選項. 注意破解中所顯示的 c/s
數值並不是無意義的-- 它表示你在個別密碼檔的實際破解速度, 而且可能可以在你
用 '-salts' 功能調整速度的時候.
Q: 使用增強破解模式時, 我查覺到 c/s 值小於其它的破解模式很多, 甚至跟 John 1.0
版比起來也少了很多, 這是怎麼回事呢?
A:你可能只有執行 John 幾分鐘吧. 新的增強模式每次在 John 切換到不同的密碼長度
時, 使用需要擴充的較大字元集. 這個長度轉換需要花費一點時間, 所以才造成 John
每一秒嘗試的密碼組合會更少. 很幸運的, 這是只有在 John破解了一段時間, 切換到
一個新的密碼長度, 重新開始執行破解工作時才會有這種情形, 我想你沒有必要在這
個密碼檔上使用. 總之, 如果你不喜歡這個新的方式, 你可以不要用這麼大的字元集
(把'file='這一行由 ~/john.ini 中移除) .
Q: John 有支援平行處理嗎?
A:我有一個像你所講的, 可以在網路上分開(逐步)處理的 Cracker 計畫 (很快就會完
成). John 並不能支援真正的平行處理, 但你仍然能夠以自訂字元集的方式設定每台
機器跑不同的字元集, 你也可以在增強破解模式加上字串過濾來達到相同的效果.
Q: John 內定的字元集是怎麼來的(在 ~/john.ini 跟 *.chr 檔的) 它的基礎來源?
A: 我參考了一個由世界上的不同機器超過六萬五千個真正密碼的列表, 我要謝謝這些
使用者幫忙設定他們的密碼.
Q: 我要到哪裡取得字典檔?
A: 你可以在 ftp://sable.ox.ac.uk/pub/wordlists. 找到一些.
Q: 我要如何跟作者取得連絡?
A: 你可以在這個文件最後的地方看到.
=========
感 謝
=========
在發展 John 的時候, 我使用了其它破解同好的方法及建議:
- Crack by Alec Muffett --
字典檔規則語法;
- Cracker Jack by Jackal --
使用者介面;
- Star Cracker by The SOrCErEr --
證明了一個很大的字元表也有執行的價值.
crypt() 編碼函式所使用的是 Alec Muffett 寫的, 跟 Crack v4.1 是同一個.
只有一些設定初始化函式沒有改寫, 其它的部分已經由我自己的想法改寫了新的
crypt() 來使用 (事實上, 目前的這個編碼函式使用了許多不同的運算方式).
特別感謝 Roman Rusakov 提供了 x86 組合語言版本的 crypt() 編碼函式, 這個
函式已經放在目前的版本中, 他的最佳化方式是最棒的!
DOS 版本是用 DJGPP v2 by DJ Delorie 及 GCC 2.7.2 (http://www.delorie.com)
編譯的, DPMI 伺服程式是使用 Charles W Sandmann (sandmann@clio.rice.edu; 1206
Braelinn, Sugar Land, TX 77479), 原始程式在 ftp://ftp.simtel.net/pub/simtelnet/
gnu/djgpp/v2misc/csdpmi3s.zip.
Cygnus Developer's Kit (http://www.cygnus.com/gnu-win32) 用來編譯 Win32 版本.
================
如何與作者連絡
================
發 E-mail 到 solar@ideal.ru 或 2:5020/398.9, 或者是在 EFnet IRC, 也可以找得到作
者, 作者在 IRC 的暱稱為 Solar_Diz.
在你還沒有完全看完這份文件以前, 請你不要隨便的提出你的問題, 而且也不要寄給作者一
些密碼檔, 作者並不提供破解密碼的服務 (CoolFire 亦有同感).
-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*
**** CoolFAQ ****
CoolFAQ 是最後一次出現在 CoolHC 中了,以後因為我不再由信件回答網友的問題,所
以日後的 CoolFAQ 將以 CoolHC相同的方式呈現給大家,我會將網友交流版中的精華加
以整理成為 CoolFAQ,然後再以文件的方式放置在首頁上供大家取閱。
Q1: John the Ripper.......
A1: 任何有關 John the Ripper 的問題請參考 CoolHC#8 中的中文使用說明或 John內
所附的原文說明.
咦?! 沒啦?! 對!! 沒了.... 因為如果要作者抽空寫的話。這份文件的推出日期就要再
繼續的延後下去了,有很多人之前已經先看過了這份文件的 PreView 版,可能發現並
沒有多很多的東西,沒辦法... 沒時間...
我只希望大家能多利用網路上的 MailList 或我們的留言版來討論,很多的問題透過大
家的討論通常都會有很令人滿意的答案出現、
-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-
**** 後語 ****
** 所有的資訊都是"免費" 的, 所以你沒有權利要求任何的 "售後服務", 該給各位的我會
放在首頁上, 任何的討論也都再首頁上進行, 不要再來信要求破解某些站台, 或是寄一
些密碼檔來要求我幫忙跑. 甚至再來信詢問一些軟體破解的相關問題 (你需要的是取得
一套 News Client 軟體, 訂閱 tw.bbs.comp.hacker) 當然我希望真的有心要討論系統
安全的網友來信討論.
** 不要 Crack 這個首頁的 ISP!!!! 否則 FETAG Sofeware's Hacking Page 將會完全關
閉, 再也不尋找其它的地方來放置, 希望給你的是使用電腦的 "知識", 不要利用它來
奪取任何的"權利", 本首頁著重的是教育, 而不是一眛的教導攻擊的方法, 希望大家
對於政府機關(org.tw) 或教育機構 (edu.tw) 不要作任何的破壞!! 還有我的 ISP.:D
謝謝大家的支持~
** 工作室成立了一家科技公司,將在北投為大家服務,當然服務的內容不外乎是電腦
相關硬體、軟體及網路相關的問題,將會在明年年初左右開幕,詳情請於明天參考
工作室首頁 http://www.showtower.com.tw/~fetag
當然以後大家也就會更忙碌了,也就是說首頁維護的時間就更少了,不過我們還是
希望能提供給大家更多的資訊,所以如果以後有任何新的資訊,我們會在首頁上公
佈,儘量不以寫文章的方式,這樣可以節省下很多編輯的時間。
------
再次重申, Crack 別人站台之後不要破壞別人站台中的資料, 此篇文章僅作為教育目的,
不主張你隨便入侵他人主機. 請勿將這類技術使用於破壞上 (又... 如果第三次世界大戰
開打, 你可以任意破壞敵國的電腦網路... 我全力支持), 最嚴重的情況(如果你真的很討
厭該主機的話)... 就將它 Shut Down.... 好了! 別太暴力了!(全文完)

    全站熱搜

    Neo Chao 發表在 痞客邦 留言(0) 人氣()