Marfil 是 Aircrack-ng 套件的扩展,用于评估 WiFi 网络安全。它允许将执行长时间字典攻击的工作分配给多台计算机。
Aircrack-ng 套件提供了 aircrack-ng 工具,这是一个 802.11 WEP 和 WPA/WPA2-PSK 密钥破解程序。在破解后者时,必须使用字典或单词列表。这些字典越长,过程所需的时间就越长。根据您的硬件,甚至可能需要数天或数周。
如果您恰好有一些额外的硬件可供使用,aircrack-ng 不允许您在它们之间分配负载:您必须选择最快的硬件并坚持使用它。这正是 Marfil 发挥作用的地方。
Marfil 是一个基于 PHP 的工具,用于在不同节点之间分配破解负载。所采用的方法相当简单:不是仅使用一个节点用一个大字典破解 .cap 文件,而是将字典分割并分配到其余节点。高层流程如下:
.cap 文件和目标网络的 BSSID).cap 文件、BSSID 以及一段字典.cap 文件针对字典的所有部分处理完毕但未成功,要么密码被找到该过程重复进行。注意,第一步仅在首次或字典更新时需要。服务器节点也可以作为客户端节点工作。
Marfil 目前仅在 Linux 上测试过。然而,所采用的方法和使用的工具是相当平台无关的,因此它也应该能在 Windows 或 Mac 上工作。
下载 release 部分中最新的文件
在所有节点(服务器和客户端)上解压
在所有客户端上安装 PHP5 和 aircrack-ng 套件
在 Debian Linux 上,您可以通过运行以下命令来完成:
sudo apt-get install php5 aircrack-ng
在服务器上安装 PHP5 的 SQLite 模块
在 Debian Linux 上,您可以通过运行以下命令来完成:
sudo apt-get install php5-sqlite
在服务器节点上,启动一个 Web 服务器,将根目录设置为 Marfil 目录中的 public 目录
使用 PHP 内置的 Web 服务器,可以在 Marfil 目录中运行以下命令:
php -S 0.0.0.0:8080 -t public
您可以通过在服务器节点上的浏览器中访问 http://localhost:8080 来测试是否工作,并看到空的破解请求列表
确保您可以从客户端访问 Web 服务器,方法是在客户端的浏览器中访问 http://YOUR_SERVER_IP_ADDRESS:8080
将字典放置在 storage/app/dictionaries 目录中。如果您没有单词列表,请在网上搜索
在 Marfil 目录中执行以下命令,将字典分割成碎片并准备字典数据库(根据字典的大小,可能需要一段时间):
php artisan marfil:refresh-dictionaries
为了添加破解请求,需要一个包含 WPA 握手的 .cap 文件和目标网络的 BSSID。这可以通过 Web 服务器界面完成,也可以在任何节点的 Marfil 目录中执行以下命令:
php artisan marfil:crack YOUR_SERVER_IP_ADDRESS:8080 path/to/file.cap 01:23:45:67:89:AB
任何成功生成的破解请求都可以在 Web 服务器界面中显示
任何节点都可以作为工作客户端。为此,只需在 Marfil 目录中运行以下命令:
php artisan marfil:work YOUR_SERVER_IP_ADDRESS:8080
此命令将使客户端每 60 秒请求一次工作。当服务器响应工作请求时,客户端将下载所需文件并尝试破解 .cap 文件。
可以通过 Web 界面跟踪进度
如果发现任何问题,请报告并提供复现所需的所有信息。未这样做将导致工单被关闭。
一些额外说明:
可以通过监控 storage/logs/lumen.log 文件来查看服务器日志
可以通过运行以下命令重新生成数据库:
php artisan migrate:refresh