
POSIX-совместимый, полностью автоматизированный скрипт захвата WPA PSK PMKID и рукопожатий, предназначенный для тестирования на проникновение.
Airbash — это POSIX-совместимый, полностью автоматизированный скрипт для захвата PMKID и рукопожатий WPA PSK, предназначенный для тестирования на проникновение. Он совместим с Bash и Android Shell (протестирован на Kali Linux и Cyanogenmod 10.2) и использует aircrack-ng для сканирования клиентов, которые в данный момент подключены к точкам доступа (AP). Затем эти клиенты деаутентифицируются, чтобы захватить PMKID и/или рукопожатие при попытке повторного подключения к AP. Проверка захваченных данных выполняется с помощью hcxpcaptool и hcxpcapngtool из hcxtools от ZeroBeat. Если захвачены один или несколько PMKID и/или рукопожатий, они заносятся в базу данных SQLite3 вместе с временем захвата и текущими данными GPS (при правильной настройке).
После захвата базу данных можно проверить на наличие уязвимых моделей маршрутизаторов с помощью crackdefault.sh. Он будет искать записи, соответствующие реализованным модулям, которые в настоящее время включают алгоритмы для вычисления ключей по умолчанию для серий Speedport 500-700, Thomson/SpeedTouch, UPC 7 цифр (UPC1234567) и маршрутизаторов HOTBOX.
Для получения дополнительной информации об атаке PMKID рекомендуется прочитать Новая атака на WPA/WPA2 с использованием PMKID.
Интерфейс WiFi в режиме монитора (на Android этого можно добиться с помощью bcmon, если устройство совместимо)
aircrack-ng (для Android можно использовать предварительно собранные бинарные файлы android_aircrack)
SQLite3 (Android: установлен по умолчанию в CyanogenMod 10.2)
openssl для компиляции модулей и hcxtools
hcxpcaptool и hcxpcapngtool из hcxtools для обнаружения PMKID и/или рукопожатий и преобразования в форматы hashcat
Для записи координат GPS точек доступа настройте ваше программное обеспечение для логирования координат на запись в .location/_.txt (имя файла можно выбрать по желанию). Airbash всегда будет использовать вывод cat "$path$loc"*.txt 2>/dev/null | sed '2q;d', что означает чтение всех .txt файлов в .loc/ и выбор второй строки. Причина такого способа реализации — функциональность GPSLogger, которая использовалась на устройстве разработки.
После захвата нового PMKID или рукопожатия можно запросить базу данных на наличие уязвимых моделей маршрутизаторов. Если модуль применим, вычисляются ключи по умолчанию для этой серии маршрутизаторов и используются в качестве входных данных для aircrack-ng, чтобы попытаться восстановить парольную фразу.
Модули для вычисления ключей по умолчанию для Thomson/SpeedTouch и UPC1234567 (7 случайных цифр) включены в src/
Авторство кода принадлежит Кевину Девину (Kevin Devine) и mailto:[email protected].
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, чтобы обеспечить выполнение из любого места.
После установки может потребоваться вручную изменить INTERFACE в строке 46 в airba.sh. Позже это будет определяться автоматически, но пока по умолчанию установлено wlan0, чтобы обеспечить совместимость "из коробки" с bcmon на Android.
./airba.sh запускает скрипт, автоматически сканируя и атакуя цели, которые не найдены в базе данных.
./crackdefault.sh пытается взломать известные алгоритмы ключей по умолчанию.
Чтобы просмотреть содержимое базы данных, выполните sqlite3 .db.sqlite3 "SELECT * FROM hs" в главном каталоге.
Airbash можно обновить, выполнив update.sh. Он клонирует ветку 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/. crackdefault.sh содержит шаблонное выражение elif для включения нового модуля.
Если вы хотите внести свой вклад, убедитесь, что ваш код лицензирован под лицензией MIT (как и этот проект). При внесении shell-скриптов, пожалуйста, убедитесь, что код совместим с POSIX. Кроме того, просто откройте issue с кратким описанием изменений и создайте pull request!