Nebula level06

The flag06 account credentials came from a legacy unix system.

To do this level, log in as the level06 account with the password level06. Files for this level can be found in /home/flag06.

看起來是要破解 flag06 的密碼

印象中舊版 linux 存放使用者密碼的地方是 /etc/passwd,而且任何人能 read 的那種 (現在都是擺在 /etc/shadow 裡面,而且需要權限才可以看)

因為一次 cat 出來會太多… 一樣用 grep 來找我們要的

可以發現只有 flag06 的不是 x (因為是 legacy unix)

直接把那一串打進去就…

fail 掉了 σ ゚∀ ゚) ゚∀゚)σ

其實那一串是密碼 hash 之後的結果,比對密碼的時候通常先 hash 之後才比對 hash 之後的結果,因為儲存密碼明文是很不安全的

所以這時候就要想辦法把密碼弄出來


首先我們要先搞懂這串東東是怎麼生出來的

man 5 passwd

man 5 是因為 manual 有分成好幾類,其中我們要看的說明是關於系統檔案的 (關於 man 的說明可以用 man man 去看)

看完之後就會能知道那串東東是用 crypt 生出來的

繼續 man crypt … 發現這就是那個 hash function,不過沒有人會在說明裡放如何破解 …吧

是時候求助 google 大神了


翻了好久終於發現一個叫 John the Ripper 的破解套件,提供各種 hash function 的破解功能

因為在虛擬機沒有權限,不能安裝套件,就先用我自己的電腦載下來 (Nebula 有提供 root 權限讓有需要的人使用 … 不過有點小作弊的感覺,就沒有用)

sudo apt-get install john

翻一翻說明文件之後來試試看

把剛才的密碼連同使用者名字丟進來,再依照格式 john [password file] --format=NAME 測試

馬上就跑完了 … (゚∀。)?

看看跑出來了啥東東

也太廢了吧 0A0 難怪跑這麼快

丟進去看看…過了,跑 getflag

結束~


題外話:

我在打這篇的時候有用 john 破破看我自己的密碼…打到這邊都還沒被破解,蠻欣慰(?)的

john /etc/shadow --format=crypt

要知道那個 hello 根本沒有停頓直接跑出來… σ`∀´)σ

可見密碼還是要弄的難一點才不容易被暴力解開掉