tehw0lf/airbash
GitHub: tehw0lf/airbash
一个符合 POSIX 标准的全自动 WPA/WPA2 握手包与 PMKID 捕获脚本,支持自动化渗透测试和特定路由器默认密钥计算。
Stars: 361 | Forks: 62
# airba.sh
[](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)。
## 运行示例
[](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破解, 中间人攻击, 安全测试工具, 密码审计, 应用安全, 握手包捕获, 网络安全, 脚本工具, 路由器漏洞, 隐私保护, 默认密钥计算