1.配置環(huán)境與安裝
1.1所需環(huán)境和軟件
運行環(huán)境:
至少兩臺裝有kali-linux 的電腦。
kali-linux-1.0.7 內(nèi)核版本:3.14。
兩臺電腦需要能互聯(lián),且需要有靜態(tài)IP,可用PING命令測試。
所需軟件與簡介:
1. mpich2
MPI是一個跨語言的通訊協(xié)議,用于編寫并行計算機。支持點對點和廣播。MPI是一個信息傳遞應(yīng)用程序接口,包括協(xié)議和和語義說明,他們指明其如何在各種實現(xiàn)中發(fā)揮其特性。MPI的目標是高性能,大規(guī)模性,和可移植性。MPI在今天仍為高性能計算的主要模型。而MPICH是MPI標準的一種最重要的實現(xiàn),可以免費從網(wǎng)上下載。MPICH的開發(fā)與MPI規(guī)范的制訂是同步進行的,因此MPICH最能反映MPI的變化和發(fā)展。
2. openssh
OpenSSH 是 SSH (Secure SHell) 協(xié)議的免費開源實現(xiàn)。SSH協(xié)議族可以用來進行遠程控制, 或在計算機之間傳送文件。而實現(xiàn)此功能的傳統(tǒng)方式,如telnet(終端仿真協(xié)議)、 rcp ftp、 rlogin、rsh都是極為不安全的,并且會使用明文傳送密碼。OpenSSH提供了服務(wù)端后臺程序和客戶端工具,用來加密遠程控件和文件傳輸過程中的數(shù)據(jù),并由此來代替原來的類似服務(wù)。
3. john the ripper 1.8.0 (或者john the ripper 1.7.1)
John the Ripper免費的開源軟件,是一個快速的密碼破解工具,用于在已知密文的情況下嘗試破解出明文的破解密碼軟件,支持目前大多數(shù)的加密算法,如DES、MD4、MD5等。它支持多種不同類型的系統(tǒng)架構(gòu),包括Unix、Linux、Windows、DOS模式、BeOS和OpenVMS,主要目的是破解不夠牢固的Unix/Linux系統(tǒng)密碼。目前的最新版本是John the Ripper 1.8.0版,針對Windows平臺的最新免費版為John the Ripper 1.7.9版。
1.2安裝過程
把兩臺主機分為一個主節(jié)點,一個從節(jié)點,配置基本相同,先從主節(jié)點為例開始配置
1.2.1安裝配置MPICH
MPICH跟大多的Linux軟件一樣,有兩種安裝方式:apt-get和源碼編譯安裝
第一種比較簡單,可以網(wǎng)上自行搜索,命令為
sudo apt-get install mpich2
不再贅述。
第二種步驟如下:
1).下載源碼包
root@localhost:~/Desktop# cpmpich2-1.0.2p1.tar.gz ~/
復(fù)制到當(dāng)前用戶的主目錄 (~指的是你當(dāng)前用戶的主目錄,這里必須注意,兩臺主機需要配置相同的路徑,否則會找不到文件)
2).解壓
root@localhost:~# tar -zxvfmpich2-1.0.2p1.tar.gz
3).安裝
root@localhost:~/mpich2-1.0.2p1#./configure –prefix=/usr/mpich2-1.0.2
#/usr/mpich2-1.0.2 為安裝目錄
root@localhost:~/mpich2-1.0.2p1# make
root@localhost:~/mpich2-1.0.2p1# makeinstall
4).配置HOSTS文件
root@localhost:~/mpich2-1.0.2p1#leafpad /etc/hosts
#127.0.0.1 localhost
192.168.1.119 node1 #為主節(jié)點在局域網(wǎng)IP地址
192.168.1.105 node2 #為從節(jié)點在局域網(wǎng)IP地址
1.配置MPICH
有兩個配置文件需要建立
1).mpd.conf
root@localhost:~/mpich2-1.0.2p1#leafpad /etc/mpd.conf
(kali默認的是leafpad 用不習(xí)慣安裝個gedit 或者使用vi都可以)
編輯內(nèi)容為
secretword=密碼 –> 這個為集群密碼所有節(jié)點的密碼都需要一致才能進行集群通信
root@localhost:~# chmod 600/etc/mpd.conf
#這里必須設(shè)置chmod600 否則會報錯
2).mpd.hosts
用到前面HOSTS文件里配置的信息
root@localhost:~/mpich2-1.0.2p1#leafpad /etc/mpd.hosts
設(shè)置環(huán)境變量
exportPATH=$PATH:/usr/mpich2-1.0.2/bin/
測試環(huán)境變量
1.2.2配置SSH
安裝openssh-server
root@localhost:~# apt-get install openssh-server
啟動ssh服務(wù)
root@localhost:~# service ssh start
啟動成功
配置SSH免密碼登錄
root@localhost:~#ssh-keygen -t rsa #生成.ssh目錄 主節(jié)點和從節(jié)點分別運行
root@localhost:~#scp node2:~.ssh/* ~/.ssh 拷貝node2上的.ssh目錄到本地的.ssh
測試SSH,成功會進入控制臺
root@localhost:~# ssh node1
root@localhost:~# ssh node2
到此已經(jīng)配置完MPICH環(huán)境測試一下
在主節(jié)點上設(shè)置
root@localhost:~# hostname node1
在從節(jié)點上設(shè)置
root@localhost:~# hostname node2
root@localhost:~# mpdboot -n 2 -f mpd.hosts –verbose
然后測試
mpirun –n 2 hostname #輸出主機名
測試結(jié)果
1.2.3安裝支持MPI的John TheRipper
John在 1.7.7-jumbo-5版本開始已經(jīng)支持MPI,下面介紹一下支持MPI版本和MPI補丁版本各自的安裝方式
1) MPI補丁版本 例如john-1.7.3.1-all-2-mpi8
編譯john the ripper
解壓
root@node1:~/john-1.7.3.1-all-2-mpi8/src#make clean
root@node1:~/john-1.7.3.1-all-2-mpi8/src#make
選擇合適的版本
這里linux-x86-sse2適合我的電腦所以選擇編譯
root@node1:~/john-1.7.3.1-all-2-mpi8/src#make linux-x86-sse2
是否安裝成功可進入run 輸入./john –test進行測試
root@node1:~/john-1.7.3.1-all-2-mpi8#cd run/
root@node1:~/john-1.7.3.1-all-2-mpi8 /john -test
2) 支持MPI版本,例如最新版本
在Makefile中修改如下
CC = mpicc -DHAVE_MPI -DJOHN_MPI_BARRIER-DJOHN_MPI_ABORT
MPIOBJ = john-mpi.o
也就是將原來的 CC= gcc
改為
CC = mpicc -DHAVE_MPI-DJOHN_MPI_BARRIER -DJOHN_MPI_ABORT
并添加一行
MPIOBJ = john-mpi.o
然后
root@node1:~/john-1.8.0/src#make clean
root@node1:~/john-1.8.0/src#make
選擇合適的版本
是否安裝成功可進入run 輸入./john –test進行測試
最后測試一下MPI+Joan是否安裝成功,成功的話,就可以進行接下來激動人心的并行密碼破解了。
root@node1:~/john-1.8.0# cdrun/
root@node1:~/john-1.8.0 /john-test
2.利用John+MPI 破解密碼
2.1利用John+MPI 破解raw-MD5
這里演示john-1.7.3.1-all-2-mpi8版本
root@node1:~/# echo username:efa4231e24c356d525a259f0b204404e > test.md5
從節(jié)點上需要配置相同的文件
root@node2:~/#scp -r node1:~/test.md5 ~/ # #從節(jié)點,兩臺主機需要待破解文件,配置在相同路徑下
root@node1:~/#mpirun -n 2~/john-1.7.3.1-all-2-mpi8/run/john –format=raw-MD5~/john-1.7.3.1-all-2-mpi8/run/test.md5
Raw-MD5結(jié)果
2.2利用John+MPI 破解linux密碼
這里演示john-1.8.0最新版本
root@node1:~/John/john-1.7.3.1-all-2-mpi8/run#tail -n 1 /etc/shadow >> linux.password
root@node1:~/John/john-1.7.3.1-all-2-mpi8/run#cp linux.password ~/
root@node2:~/#scp -r node1:~/linux.password ~/ #從節(jié)點
root@node1:~/mpich2-1.0.2p1/bin# ./mpirun -n 4~/john-1.8.0/run/john ~/linux.password