利用MPI在Kali Linux集群上并行破解密码

  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

 

上一篇:智能无惧挑战 山石网科轰动RSA2015

下一篇:漏洞盒子(VulBox)3.0上线啦!明天互联网漏洞奖金翻倍