《破解一組8位的小寫英文+數字密碼,只要 48小時》。講到破解這件事情,我也算很早開始就有在不專業的研究了。最早是要破解 DOS 的遊戲,記得那時常用的工具叫 SoftICE,可以攔解一些斷點和修改程式,印象中好像還真的破解了幾個。後來沒玩遊戲就比較少研究了,到了 Windows / 網路時代。一方面是 Windows 程式比較不好破(應該),再來就是網路上高手如雲,基本上要自已動手的機會很少。工作這麼多年來,好像也只破解過一套工具。
今天要講的則是破解復原壓縮檔的密碼。某天做夢夢到升級到 win10 後,某要錢的輸入法功能怪怪的,又一直找不到破解版。正當想要付錢買的時候,想說換個keyword找找看好了,把關鍵字從「破解」換成「序號」,果然就找到直接放在網路上,但是有加密。
夢醒後,想說這也是個有趣的題目,就上網找了一下如何破解壓縮檔加密。最後找到了一套 John the Ripper,並且實驗成功破解 ZIP 檔。但大家也不用過度樂觀(或悲觀),僅管現代電腦速度飛快,但要破解密碼還是需要大量的時間,會被破解的密碼,通常都是太短或太簡單的。
ZIP 破解速度
這邊講的ZIP加密法是 ZIPCrypto Deflate,這是ZIP比較通用的加密方法,也是比較好破解的。另外新的 AES256,可能會很難破,還沒研究過。所謂的很難破,是一秒可以試的密碼個數會變少,直接影響暴力法所需的時間。本篇講的是利用暴利法破解,另外用字典法也可以有效提高破解機的機會,或利用GPU加速破解。
我在一台 6C12T 的 Xeon 做測試,以暴力法破解,一秒約可試 1600萬組密碼。感覺還多的, 但密碼的複雜度決定了破解的難度。以一組8個字密碼來看,下面分析一下密碼組合與破解的時間的關係:
- 全部都是數字:一共有 10^8 = 1億種組合, 7秒會被破解
- 全部小寫英文:一共有 26^8 = 2100億種組合, 3.6小時會被破解
- 小寫英文+數字:36^8 = 2兆8000億種組合, 48小時會被破解
- 大小寫英文+數字:62^8 = 218兆組種合,157天會被破解
- 大小寫英文+數字+符號(10種) = 722兆組種合,522天會被破解
從上面的速度來看,大概只有最複雜的情況勉強可以覺得有一絲絲安全。與其用這麼複雜的密碼,其實最好的方法是加長長度,以 case 3, 小寫英文+數字,這樣還不算太難記。12位的密碼要花 9390 年才有辦法破解。可見密碼的長度效果還是遠遠勝過複雜度,1234567890a0這樣的一組密碼,暴力法可能就一年都解不出來了。
2020/1/20 更新 – 檔案太小可能會無法破解,若您是要進行測試,測試檔請至少100Byte大小。
2019/1/3 更新 – AES 與 ZIPCrypto 識別與速度
上面的兩張圖分別是 AES 與 ZIPCrypto 的破解資訊。有需要破解的朋友,可以用這個訊息來判別破解的難易度。
- AES: 可以看到有個 PBKDF2 的字,每秒嘗試次數 8500 個密碼
- ZIPCrypto: 看到寫個 PKZIP 的,每秒嘗試次數 590000 個密碼
可以看到速度相差非常的多,差距在100倍以上。不過時間是破解最好的朋友,破解AES連續擺上個1天可以嘗試 8500*86400 = 7億3千萬組密碼,10天=73億組。如果真的有非常重要的資料,還是可以試試看,至少有點機會。
John the Ripper 實際操作
Linux
講了這麼多理論,來實際用一下吧。使用 Linux 的朋友,可以直接抓 John the Ripple 的原始碼下來編譯。會用到 libssl 的套件,記得用 apt 裝一下。進 src 目錄跑 ./configure;make, 最後編譯出來的檔案就會在上層的 run 目錄裡了。
Windows
Windows 上的朋友可以直接抓這個 連結 ,或直接去 官網 抓。記得抓 Jumbo community-enhanced 的版本,裡面附的工具才會齊。
這邊我會建議用 Linux 來執行,因為 Windows 的版本基本上是用Cygwin模擬Linux 系統,速度大概只有Linux 的 1/3。
解壓縮/編譯完後,主要的工具都在 run 目錄內。
Windows 特制版
為了讓使用 Windows 的朋友更方便,我打包了一版簡化的版本讓讀者更容易使用。這版是基於 1.80j1 的社群加強 combo 版,另外我自己寫了兩個批次檔來簡化這些步驟。展示的影片如下:
本來檔案是直接讓網友們下載,但礙於某些因素,不方便再公開下載。若有需要請來信告知,我會將檔案連結寄給你。
影片
流程
假設有個壓縮檔名叫 test.zip,將它也放在 run 目錄下。首先我們先用 zip2john 來取出它的密碼的Hash值,並把它存成檔案 test.zip.hash。裡面的訊息其實包含 Hash 值,跟檔案的位置,所以接下來的命令直接對這個檔案操作就好了。過程中按任意鍵,可以看速度/進度。最後如果有發現密碼,再加上 “–show” 就可以顯示出密碼了。當然例子中是比較好解的,對於複雜的密碼,解到天荒地老也是有可能的。他有個參數 “–session” 和 “–restore” 可以儲存/恢復進度,需要的人可以試試。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 |
$ ./zip2john test.zip > test.zip.hash # 取得 ZIP 密碼的 HASH ver 2.0 test.zip->keychain2john.exe PKZIP Encr: cmplen=1735, decmplen=5646, crc=D6C98125 $ ./john test.zip.hash # 開始破解密碼,按任意鍵顯示進度 Using default input encoding: UTF-8 Loaded 1 password hash (PKZIP [32/64]) Will run 4 OpenMP threads Press 'q' or Ctrl-C to abort, almost any other key for status 0g 0:00:00:02 3/3 0g/s 393867p/s 393867c/s 393867C/s tumom..samukk 0g 0:00:00:05 3/3 0g/s 2936Kp/s 2936Kc/s 2936KC/s r1cly11..stepanita 0g 0:00:00:09 3/3 0g/s 6395Kp/s 6395Kc/s 6395KC/s 7kjm..sapphine 0g 0:00:00:11 3/3 0g/s 7682Kp/s 7682Kc/s 7682KC/s 5 t67..saneyb17 0g 0:00:00:16 3/3 0g/s 10126Kp/s 10126Kc/s 10126KC/s cyt060..cmd4as 0g 0:00:00:21 3/3 0g/s 11558Kp/s 11558Kc/s 11558KC/s advduring..matfta7 0g 0:00:00:32 3/3 0g/s 13262Kp/s 13262Kc/s 13262KC/s cfao80..cfl2co 1234567a (test.zip) 1g 0:00:00:34 DONE 3/3 (2018-04-05 22:15) 0.02862g/s 13542Kp/s 13542Kc/s 13542KC/s cylv205!..1233252a Use the "--show" option to display all of the cracked passwords reliably Session completed # 破解完成 $ ./john test.zip.hash --show # 顯示密碼 test.zip:1234567a:::::test.zip # 密碼看到了!1234567a 1 password hash cracked, 0 left |
行 1 : 取得 ZIP 密碼的 HASH 值, 並存入 test.zip.hash
行 3:指定使用 test.zip.hash 為破解資料,進行破解。此時按任意鍵會顯示速度,可以看到他的速度是慢慢增加,可能是使用了更多的CPU核心。
行 18:破解完成
行 19:破解完成後不會立即顯示密碼,需加上 “–show” 來顯示密碼。
行 20:密碼破解成功。
可以看到一共只花了34秒,可見簡單的數字+小寫英文的密碼有多弱,直接打連續的數字也會被加速破解!
請問如果副檔名為7z格式的加密壓縮檔能透過此法解嗎?因為有人提及此法可適用於副檔名為7Z的加密壓縮檔…但我試了你的檔案破7Z格式的壓縮檔卻出現錯誤
7z 應該也有支援,不過因為我碰到的是zip檔,所以只研究zip的部份。7z 你可能需要上網找找命令怎麼下,或看john程式的說明。
謝謝 已破解某輸入法壓縮檔
哈,跟我夢到的是同一個嗎
可以破解中文密碼嗎
這部份我還真沒想過,以目前文章的作法是不行破的。但我想 John the ripper 做的到才對,中文字一般是2個英文字,5個中文就是10個英文了,所以會被蠻難破的才對。但常用中文字其實才3000多個,如果善選測試字元,再搭配語意猜測(類似輸入法選下一個字),應該會比純英文容易。
Hello~
可否跟您索取WINDOWS 特制版呢?
我用WINDOWS版…好幾天都沒動靜= =
所以想跟您索取WINDOWS 特制版…
麻煩您了!!謝謝~
已將鏈結寄到您留言的信箱。特制版只是比較方便使用,如果您已經會用 Windows 版,那幫助可能不大。也許你也可以試試字典法,可以參考我另一篇文章(https://moon-half.info/p/3175)。破密碼就是這樣,成功是好運,不成功是應該的~~~
您好:
我想跟您索取WINDOWS特製版
謝謝您!
你好, 檔案下載連結已寄至您的留言信箱。
感谢分享!感谢分享1感谢分享1感谢分享1感谢分享1
你好
版大我想跟您索取WINDOWS 特制版
我的信箱chiho****@gmail.com
麻煩您了
你好, 已寄至您的信箱。內文可以不用留 email, 在留言的表單填就可以了,內文留email容易收到垃圾信~~
您好:
可否向版大您索取WINDOWS特製版
謝謝您! 麻煩您了!
你好,已回覆連結至您的信箱。
您好,我想跟您索取WINDOWS特製版
謝謝您! !
已將連結寄往您留言信箱
1、这个windows特别版有什么特点吗?
https://ci.appveyor.com/project/claudioandre-br/johntheripper/build/job/ypdb6jfu9ak2vh53/artifacts
与这个链接的文件区别什么?
2、还有
https://ci.appveyor.com/project/claudioandre-br/johntheripper/build/job/x55c7yg7nq8r66hd
这个用Visual Studio 2017编译的版本,怎么没有编译好的文件,我的英文不太好,在网站上翻找了也没有找到。
我的windows特別版主要是為了方便一般用戶,不用懂這些細節,做了一些操作方式的優化。只要把zip檔拖拉到.bat上,就會自動嘗試破解了。其它並沒有做什麼特別的處理。
版主您好:
想向您索取 WINDOWS特制版
感謝~ 麻煩您了
已回覆至您的信箱
您好,
這裡想像您要 WINDOWS特制版
非常感謝
連結已回覆至您的信箱。
你好我想要跟你要 WINDOWS特制版
3Q
已將連結回覆致您的信箱。
你好我想要跟你要 WINDOWS特制版
己回覆至您的信箱。
跪求WINDOWS 特制版
too12345674@yahoo.com.tw
已回覆至您的信箱。
您好,我希望能獲得windows特製版,謝謝。
己回覆致您的信箱
你好我想要跟你要 WINDOWS特制版
己回覆至您的信箱
你好我想要跟你要 WINDOWS特制版
己回覆至您的信箱
大大您好,方便跟您要 WINDOWS特制版嗎?謝謝您
已回覆至您的信箱
大大您好,方便跟你要windows特別版嗎?謝謝您
已重新提供於文章內,請自行下載。
您好,可以獲得 WINDOWS特制版嗎?
已重新提供於文章內,請自行下載。
你好,下載後開始下載雨繼續下載兩個的檔案名呈現亂碼怎麼辦?
請您換個瀏覽器看看了~~
RAR的可以找回嗎?
軟體應該有此功能,但我只研究過zip的
能不能幫我製作 一個用於7z的特製版?
我已經試了一整天都沒有辦法成功使用……
感謝您的幫助 !
7z 破解難度很高,速度很慢,我建議別抱太大希望…
想問一下他給我的數據(開始破解之前的碼)他給我了這樣的訊號:
0 [main] john 69708 find_fast_cwd: WARNING: Couldn’t compute FAST_CWD pointer. Please report this problem to
the public mailing list cygwin@cygwin.com
Loaded 1 password hash (PKZIP [32/32])
Will run 16 OpenMP threads
Press ‘q’ or Ctrl-C to abort, almost any other key for status
但是有正常執行。請問這樣有出錯嗎?
時間有點久我也不太記得這訊息正不正常,不過你可以先試個簡單密碼(123456 or abcd),看是否可以破解。簡單密碼應該可以很快知道結果
你好可以给我一份特制版吗?谢谢632811853@qq.com
連結目前已在文章內的連結了
您好,請問這個win10適用嗎?
我試用了幾次他都很快地跑出
1 [main] john 3668 find_fast_cwd: WARNING: Couldn’t compute FAST_CWD pointer. Please report this problem to
the public mailing list cygwin@cygwin.com
0 password hashes cracked, 0 left
請問怎麼解決?
你好,我試了一下 win10 還真的不行…快速的做了一些研究,還是沒辦法解決這個問題,可能要先請你使用 win7 來使用了。
我剛又測了一下,win10其實也是可以的,因為第一次測試時,檔案太小 (1byte) 才無法破解。把測試檔弄大一點 (100bytes) 就可以了,請你再試試看。
您好,
能夠分享特製版鏈接嗎?
已在文中的連結內~
我依照你所做的方法做(做了一個測試檔嘗試),但是出現No password hashes loaded (see FAQ)…
是有甚麼問題嗎?
6KB的測試檔都不行…
你照著影片的方法也不行嗎?用7zip,壓縮時選zipcrypto方式加密, 這樣試試看
D:\mh_john_the_ripper\run>zip2john target.zip 1>hash.lst
D:\mh_john_the_ripper\run>john –session=session hash.lst
No password hashes loaded (see FAQ)
“#####################”
“# 顯示破解結果 #”
“#####################”
D:\mh_john_the_ripper\run>john –show hash.lst
0 password hashes cracked, 0 left
D:\mh_john_the_ripper\run>pause
您好,我使用後是這個狀況,這樣是沒有破解成功嗎,感謝您的釋疑。
這沒有成功,不過也看不太出來什麼問題,建議可以從展示影片的範例開始~~ 確定自己壓的可以解開,再確認一下真正要破解的檔案是 ZIP 的 ZipCrypto 加密嗎
可以发一份windows特制版吗?谢谢你
已在文章中提供連結
可以跟你要 Wndows 特製版的連結嗎 ?
謝謝
已在文章中提供連結
您好,想索取您的 Wndows 特製版的連結嗎 ?
謝謝
已在文內提供喔
哈囉 你好,請問能提供我win7 可以用的特製版嗎 謝謝您
jamorantwhite@gmail.com
在內文中已有連結喔
C:\Documents and Settings\XPMUser>cd “C:\mh_john_the_ripper\繼續破解.bat”/../run
C:\mh_john_the_ripper\run>john –restore=session
fopen: session.rec: No such file or directory
“#####################”
“# 顯示破解結果 #”
“#####################”
C:\mh_john_the_ripper\run>john –show hash.lst
0 password hashes cracked, 0 left
C:\mh_john_the_ripper\run>pause
請按任意鍵繼續 . . .
請問這樣是什麼意思
要有先跑一次開始破解,如果中斷後才跑繼續破解. 這是它找不到中斷的資料
請問出現以下資訊是否還有正確作業中
mh_john_the_ripper\run>zip2john target.zip 1>hash.lst
0 [main] zip2john 126360 find_fast_cwd: WARNING: Couldn’t compute FAST_CWD pointer. Please report this problem tothe public mailing list cygwin@cygwin.com
mh_john_the_ripper\run>john –session=session hash.lst
0 [main] john 125984 find_fast_cwd: WARNING: Couldn’t compute FAST_CWD pointer. Please report this problem to
the public mailing list cygwin@cygwin.com
Loaded 1 password hash (ZIP, WinZip [PBKDF2-SHA1 4x SSE2])
Will run 8 OpenMP threads
Press ‘q’ or Ctrl-C to abort, almost any other key for status
這是有在破解了,不過看起來不是一般的 ZipCrypto,速度會”極慢”,破解的機會不高. 按任意鍵應該可以顯示進度
您好,我想跟您索取WINDOWS特製版
謝謝您! !