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