前言:

今天拿了個linux的主機,提下來了,以前提成root之后就沒深入過,這次想着先把root密碼破解出來;

以前交洞的時候只是單純證明存在/etc/passwd和/etc/shadow,但從沒管過里面的hash;

看網上教程也很多,我也記錄一下我的學習成果吧。

0x02

大家都知道,linux系統中有一個用戶密碼配置文件 /etc/shadow ,里面存放着用戶名以及一串密文:

形如:

另外一個 /etc/passwd 文件是用戶賬戶配置文件,只保存用戶賬戶的基本信息,並不保存密碼信息。

形如:

0x03

由於咱們要破解是root密碼,則只需要把/etc/shadow的root的加密密碼拿出來即可;

最后小數點不要漏掉,因為這些文件內容格式都是:分割的,其余的都是內容;

這里來解釋一下$分割的各個部分的含義:

將這段加密密碼保存到一個文件里,文件后綴.hash;

咱們這里保存為1.hash。

0x04

kali下的一款hash破解工具 hashcat ,網上說的天花亂墜,我這直接記錄關於咱們破解root密碼的具體用法,其他用法類似,具體百度吧;

hashcat據官網說牛逼得很,每秒最快可爆破80億數據;

咱們這里利用他的暴力破解,就是常說的爆破,這也是得看字典;

具體命令:

解釋一下:

這里碰到了一點小問題,hash-identifier 來看root密碼檢查是 SHA-256 加密,但這個並不是我這台機子linux的加密方式,使用這個是不能開始爆破的;

20160820221925

但這可以先記住一點:

具體標記如下:

這里可以直接看magic標記值來直接判斷,這里是6,所以是SHA-512的magic值1800;

回車開始爆破。

0x05

拿本地操作一下,放了個6000小字典,里面放上了虛擬機root的密碼;

20160820221718

可以看到,很快就爆破出來了,每秒近700次,還是挺快的;

結果會在當前目錄生產兩個文件found.txt和hashcat.pot;

里面內容一樣,都是爆破出來的結果;

20160820221758

0x06

1.hashcat支持市面上存在的近乎全部的hash加密,–help可以看到;

2.在並不知道密文的情況下,我們可以先使用hash-identifier來幫助檢測下,雖然有的不准確;

3.各種加鹽(salt)的順序,以及hash值的具體得來的方式不同,也會導致加密的類型產生差別;

如同:

4.這里linux的密碼只看$分割,其余字符都是內容,有點 . 也得帶上。