tehw0lf/airbash

GitHub: tehw0lf/airbash

一个符合 POSIX 标准的全自动 WPA/WPA2 握手包与 PMKID 捕获脚本,支持自动化渗透测试和特定路由器默认密钥计算。

Stars: 361 | Forks: 62

# airba.sh [![Codacy 徽章](https://api.codacy.com/project/badge/Grade/6edeb433a77c47a5b7a670906fd06006)](https://app.codacy.com/app/tehw0lf/airbash?utm_source=github.com&utm_medium=referral&utm_content=tehw0lf/airbash&utm_campaign=Badge_Grade_Dashboard) Airbash 是一个符合 POSIX 标准的全自动 WPA PSK [PMKID](https://hashcat.net/forum/thread-7717.html) 和握手包捕获脚本,旨在用于渗透测试。 它兼容 Bash 和 Android Shell(已在 Kali Linux 和 Cyanogenmod 10.2 上测试),并使用 [aircrack-ng](https://aircrack-ng.org) 扫描当前连接到接入点 (AP) 的客户端。 随后会对这些客户端进行反认证操作,以便在它们尝试重新连接 AP 时捕获 PMKID 和/或握手包。 捕获数据的验证使用的是由 [ZeroBeat](https://github.com/ZerBea) 开发的 [hcxtools](https://github.com/ZerBea/hcxtools) 中的 hcxpcaptool 和 hcxpcapngtool。如果捕获到一个或多个 PMKID 和/或握手包,它们将与捕获时间和当前 GPS 数据(如果配置正确)一起录入 SQLite3 数据库。 捕获后,可以使用 `crackdefault.sh` 测试数据库中是否存在易受攻击的路由器型号。 它将搜索与已实现模块匹配的条目,目前包含用于计算以下路由器默认密钥的算法: Speedport 500-700 系列、Thomson/SpeedTouch、UPC 7 位 (UPC1234567) 和 HOTBOX 路由器。 有关 PMKID 攻击的更多信息,推荐阅读 [New attack on WPA/WPA2 using PMKID](https://hashcat.net/forum/thread-7717.html)。 ## 运行示例 [![asciicast](https://asciinema.org/a/pIfGjdsqaNoINE5w0ItvfYK2i.svg)](https://asciinema.org/a/pIfGjdsqaNoINE5w0ItvfYK2i) ## 环境要求 处于监听模式的 WiFi 接口(在 Android 上,如果设备兼容,可以使用 [bcmon](https://code.google.com/archive/p/bcmon/) 实现) aircrack-ng(Android 上可以使用 [android_aircrack](https://github.com/kriswebdev/android_aircrack) 预编译二进制文件) SQLite3(Android:CyanogenMod 10.2 默认已安装) openssl,用于编译模块和 hcxtools 来自 [hcxtools](https://github.com/ZerBea/hcxtools) 的 hcxpcaptool 和 hcxpcapngtool,用于检测 PMKID 和/或握手包并转换为 hashcat 格式 为了记录接入点的 GPS 坐标,请配置您的坐标记录软件将日志记录到 .location/\_.txt(文件名可自定义)。Airbash 将始终使用 `cat "$path$loc"*.txt 2>/dev/null | sed '2q;d'` 的输出,即读取 .loc/ 中的所有 .txt 文件并选取第二行。之所以采用这种实现方式,是因为开发设备上使用的是 [GPSLogger](https://play.google.com/store/apps/details?id=com.mendhak.gpslogger&hl=en)。 ## 计算默认密钥 捕获新的 PMKID 或握手包后,可以查询数据库以查找易受攻击的路由器型号。如果适用某个模块, 将计算该路由器系列的默认密钥,并将其作为输入提供给 aircrack-ng 以尝试恢复 密码。 ## 编译模块 用于计算 [Thomson/SpeedTouch](https://packetstormsecurity.com/files/84788/STKeys-Thomson-WPA-Key-Recovery-Tool-1.0.html) 和 [UPC1234567](https://haxx.in/)(7 位随机数字)默认密钥的模块包含在 `src/` 中 代码归功于作者 Kevin Devine 和 。 ``` On Linux: gcc -fomit-frame-pointer -O3 -funroll-all-loops -o modules/st modules/stkeys.c -lcrypto gcc -O2 -o modules/upckeys modules/upc_keys.c -lcrypto ``` 为了启用自动检测,请将二进制文件移动到 `airbash/bin`(执行期间将添加到 `PATH`)或位于 `PATH` 中的目录。 如果在 Android 上,您可能需要将二进制文件复制到 /system/xbin/ 或其他允许执行二进制文件的目录。 ## 使用方法 运行 `install.sh` 将创建数据库,准备文件夹结构并创建指向两个脚本的快捷方式,这些快捷方式可以移动到位于 $PATH 的目录中,以便允许从任何位置执行。 安装后,您可能需要手动调整 `airba.sh` 第 46 行的 `INTERFACE`。稍后将自动确定此项,但目前默认设置为 `wlan0`,以便在 Android 上与 [bcmon](https://code.google.com/archive/p/bcmon/) 开箱即用。 `./airba.sh` 启动脚本,自动扫描并攻击数据库中未发现的目标。 `./crackdefault.sh` 尝试破解已知的默认密钥算法。 要查看数据库内容,请在主目录中运行 `sqlite3 .db.sqlite3 "SELECT * FROM hs"`。 ## 更新(仅限 Linux ... 目前) 可以通过执行 `update.sh` 来更新 Airbash。这会将 master 分支克隆到 /tmp/ 并覆盖本地文件。 ## 输出 `_n`: 发现的接入点数量 `__c/m`: 分别表示发现的客户端数量和最大客户端数量 `-`: 接入点已被列入黑名单 `x`: 接入点已存在于数据库中 `?`: 接入点超出范围(airodump 已无法看到) ## 数据库 数据库包含一个名为 `captures` 的表,其中有七列。 `id`: 表条目的递增计数器 `latitude` 和 `longitude`: 握手包的 GPS 坐标(如果可用) `bssid`: 接入点的 MAC 地址 `essid`: 名称标识符 `pmkid`: WPA PMKID(如果已捕获) `psk`: WPA 密码(如果已知) `processed`: 由 crackdefault.sh 设置的标志,用于防止在使用自定义密码的情况下重复计算默认密钥。 目前,SQLite3 数据库没有密码保护。 ## 贡献 非常欢迎贡献,特别是能够破解更多默认密钥的额外模块。modules/ 中[包含](https://github.com/tehw0lf/airbash/blob/master/modules/template.sh)了一个模板模块。`crackdefault.sh` 包含一个模板 elif 语句用于包含新模块。 如果您想做出贡献,请确保您的代码根据 MIT 许可证(像本项目一样)授权。 在贡献 shell 脚本时,请确保代码符合 POSIX 标准。 除此之外,只需提出一个简要描述更改的问题并创建一个拉取请求! 贡献者: [D4rk4](https://github.com/D4rk4/)(提交了 [HOTBOX](https://github.com/tehw0lf/airbash/blob/master/modules/hotbox.sh) 模块!)
标签:aircrack-ng, Deauth攻击, PMKID攻击, POSIX, SQLite, WiFi攻击, WPA/WPA2破解, 中间人攻击, 安全测试工具, 密码审计, 应用安全, 握手包捕获, 网络安全, 脚本工具, 路由器漏洞, 隐私保护, 默认密钥计算