初探开源分布式WPA破解程序moscrack

 

      最近玩moscrack这个开源的分布式破解程序,但苦于网上没有一篇step by step的使用指南(不管中文还是英文),跟着说明自己摸索了两个晚上,记录下来供有需要的同学参考。感兴的朋友可以和我一起讨论如何更好地利用这个项目。

      项目地址:https://sourceforge.net/projects/moscrack/

      一、简要说明

      1.运行模式:Moscrack根据字典文件的共享机制不同,分两个运行模式,copy和share,copy模式比较简单,本文也是基于该模式介绍。

      2.网络连接模式:moscrack的主机和节点间的网络连接可以有ssh、rsh、mosix等多种模式,本文基于最常见的ssh。

      ssh的配置请参考:http://blog.163.com/lgh_2002/blog/static/44017526201011333227161/。配置成功后,主机应能够无需输入密码就连接上各节点。注意,ssh连接各个节点的用户名必须相同,后面设置时会用到。

      3.破解工具:moscrack默认调用的破解工具是aircrack-ng,这个必须要有吧。

      4.本文是在kali linux 下调试通过。

      二、安装

      在项目网站下载压缩包,目前最新版是moscrack-2.08b.tar.gz,解压后开始安装。Moscrack的安装分主机(Master)和节点(Node),过程差不多,但Master的设置比Node稍多几个步骤,下面先说主机的设置。

      1. 运行./install_modules,检查运行环境,如果有缺项,根据提示进行安装;如果符合要求,显示全部模块安装完成:

Looking for required modules:
 
  Switch
  DateTime
  Math::Round
  Getopt::Lucid
  Acme::Tools
  Storable
  File::Basename
  Struct::Compare
  LWP::UserAgent
  HTTP::Request
  Config::Std
  Socket
  Net::SSH2
  File::Copy
  IPC::Open3
  Term::ANSIColor
  Term::ReadKey
  DateTime::Format::Duration
  CGI
  JSON
 
All modules are installed

 

      2. 将moscrack(主程序), mosctop(命令行版运行情况监视程序), moscapid(主服务)等几个关键文件加入运行路径(README中推荐复制到/usr/local/bin),这个看个人喜好。

      3. 将moscrack.cgi(网页版的运行状态监视程序)复制到cgi的运行目录中,一般来说是/var/www/cgi-bin(至于如何设置apache2服务可运行cgi程序,给出一篇参考文献http://www.perlcn.com/perlbc/perljc/1691.html)。

      4. 建立程序设置文件的存放目录,mkdir /etc/moscrack,并将moscrack.conf文件和plugins目录复制到该目录下。

      5. 建立程序运行的主目录,mkdir /opt/moscrack,并将解压包里的其他文件都复制到这个目录下。

      6. 设置nodes.dat,也就是设置计算网络的各个节点,这是moscrack运行成功关键的步骤之一,nodes.dat里自带说明和示例,以我的运行环境为例:一台主机,一台节点计算机(192.168.1.100),ssh连接,那么核心内容就下面两句:

    127.0.0.1:local::1500
    192.168.1.100:ssh::2500

      冒号分隔的四段内容意义是:“名称或IP:类型:过期时间:破解速度(key/秒)”

      第一行,主机设置,名称可随意设置,这里我就写的127.0.0.1,类型就是“local”,过期时间留空代表该节点始终有效,运算速度是我参考aircrack-ng单机破解时的数据,可以看到,我的主机(笔记本电脑)设置为1500个key每秒。

      第二行,节点设置,IP为192.168.1.100,类型是ssh,不过期,运行速度设置为2500个key/秒。

Nodes.dat还支持运行过程中动态增减节点,条件所限,我还没有试过。

      7. 设置/etc/moscrack/moscrack.conf,这是成功运行moscrack的第二个关键步骤。打开后,所有需要设置的地方都有说明,几个必须设置好的地方如下。一是路径设置,要与本机安装moscrack的相关路径对应上:

[paths]
 
home = /opt/moscrack
 
nodeTmp = /tmp
 
nodesFile = /opt/moscrack/nodes.dat
 
logFile = /opt/moscrack/moscrack.log
 
plugins = /etc/moscrack/plugins
 
capFiles = /opt/moscrack/cap
 
wordFiles = /opt/moscrack/words

 

      二是网络连接设置,本文是基于ssh连接,就修改ssh部分内容,主要是明确ssh连接的用户名(这里是root),私钥和公钥的位置。

[ssh]
# user - User name to use for SSH nodes. If commented out, it defaults to the current user.
user = root 
 
# privateKey - Your ssh private key, used to access ssh nodes
privateKey = /root/.ssh/id_rsa
 
# publicKey - Your ssh public key, matching pair to privateKey above (required by moscd)
publicKey = /root/.ssh/id_rsa.pub

 

      其他内容,大家可以参照README进行,但上面这个部分设置完,程序就可以运行。

到这里,主机的安装和设置工作告一段落。下面看一下节点计算机如何安装。在网络节点安装moscrack的步骤,从1到5完全一样,步骤6直接跳过(网络节点无须设置nodes.dat),步骤7主要将路径设置好,无须设置ssh。

      关于如何设置ssh连接的问题,请参考这一篇博文:http://lhflinux.blog.51cto.com/1961662/526122

 

      三、运行

     1. 启动apache2服务(主机):/etc/init.d/apache2 start

     2. 启动ssh服务(主机和节点):/etc/init.d/ssh start

     3. 运行moscapid(主机和节点)

     4. 根据需要,另开一个终端,运行mosctop,从命令行监视程序运行状况;也可以选择运行/var/www/cgi-bin/moscrack.cgi,从浏览器上进行监视。

      5. 运行moscrack进行破解:

moscrack -c /XXXX/XXXX.cap -e "XXXX_ESSID" -w /XXXX/XXXX.dic

 

      四、使用效果

      下图所示是一个破解程序正在进行之中,每秒破解速度达到3955个key。由于网络传输会损耗一定时间,实际提速效果无法完全达到两台计算机运行能力之和,但确实比单机提速明显。

      Moscrack项目还提供了一个livecd的镜像文件,里面已安装moscrack并做好各项设置,理论上在节点计算机上运行即可,无赖与我的网卡不兼容,启动后找不到网卡。

     

wKiom1PkzPngqAfnAAUy3xzHXPs316.jpg

wKioL1PkzhOgvYQOAAJVE35HXc4144.jpg

      本文只是初步介绍moscrack的使用,很多功能尚未深入发掘,本人也很有兴趣和大家探讨如何更广泛的利用网络资源(比如云计算资源)来提升破解速度的话题,有兴趣的来我博客(http://tankaiha.blog.51cto.com)共同讨论。