Введение
airolib-ng — это мощный инструмент из набора Aircrack-ng, предназначенный для управления и использования баз данных предварительно вычисленных мастер-ключей (PMK). При попытке взлома рукопожатия WPA/WPA2 наиболее трудоемкой частью является вычисление PMK из предполагаемой парольной фразы и имени сети (ESSID).
Предварительно вычислив эти PMK для списка распространенных парольных фраз и имен сетей и сохранив их в базе данных, вы можете значительно ускорить процесс взлома. Вместо выполнения сложных вычислений для каждого пароля во время атаки, aircrack-ng может просто искать PMK в базе данных.
В этой лабораторной работе вы изучите основные операции airolib-ng для создания и заполнения базы данных PMK.
Понимание концепции базы данных предварительно вычисленных мастер-ключей
На этом этапе мы рассмотрим теорию баз данных PMK, прежде чем приступить к использованию airolib-ng. На этом этапе никаких команд выполнять не нужно.
Безопасность сетей WPA/WPA2 основана на четырехстороннем рукопожатии, которое использует парный мастер-ключ (PMK) для шифрования трафика. Этот PMK выводится из пароля сети (парольной фразы) и ее имени (ESSID). Формула выглядит следующим образом:
PMK = PBKDF2(passphrase, SSID, 4096 итераций, выходные данные 256 бит)
Когда вы пытаетесь взломать захваченное рукопожатие WPA/WPA2 с помощью такого инструмента, как aircrack-ng, и словарного списка, инструмент выполняет этот расчет для каждого пароля в вашем списке. 4096 итераций делают этот процесс вычислительно затратным и медленным.
Вот где на помощь приходит airolib-ng. Он позволяет выполнить эту тяжелую работу заранее. Вы можете взять список распространенных ESSID и большой словарный список парольных фраз и предварительно вычислить все результирующие PMK. Эти PMK затем сохраняются в эффективной базе данных SQLite.
Когда придет время взломать рукопожатие, aircrack-ng сможет использовать эту базу данных. Вместо вычисления PMK для каждого пароля, он вычисляет его один раз из ESSID захваченного рукопожатия и пароля из словарного списка, а затем ищет результат в вашей предварительно вычисленной базе данных. Этот поиск в тысячи раз быстрее полного вычисления, что значительно сокращает время взлома.
На следующих этапах вы создадите такую базу данных, заполните ее ESSID и паролями, а также проверите ее целостность.
Создание новой базы данных SQLite с помощью airolib-ng --new
На этом этапе мы создадим новую пустую базу данных SQLite, которая будет хранить наши PMK. Вся наша работа будет проводиться в каталоге ~/project.
Мы используем команду airolib-ng, за которой следует желаемое имя базы данных и флаг --new. Этот флаг указывает airolib-ng инициализировать новый файл базы данных.
Давайте создадим базу данных с именем pmk_db. Выполните следующую команду в терминале:
airolib-ng pmk_db --new
Инструмент создаст файл pmk_db в вашем текущем каталоге (~/project) и настроит внутри него необходимые таблицы. Вы должны увидеть вывод, подтверждающий создание и инициализацию базы данных.
Ожидаемый вывод:
Database 'pmk_db' created.
Wrote 1 ESSIDs and 0 PMKs.
Вы можете проверить, что файл был создан, используя команду ls:
ls -l pmk_db
Ожидаемый вывод:
-rw-r--r-- 1 labex labex 8192 May 20 10:30 pmk_db
Импорт одного ESSID в базу данных с помощью --import essid
На этом этапе вы добавите имя сети (ESSID) в только что созданную базу данных. База данных должна знать, для каких ESSID вы хотите предварительно вычислить PMK.
Мы будем использовать опцию --import essid. Эта опция может принимать один ESSID в качестве аргумента из командной строки или список ESSID из файла. Для этой лабораторной работы мы импортируем один ESSID с именем MyHomeWiFi.
Выполните следующую команду, чтобы импортировать ESSID в вашу базу данных pmk_db:
airolib-ng pmk_db --import essid MyHomeWiFi
Вы увидите вывод, указывающий, что база данных читается и что один ESSID был записан.
Ожидаемый вывод:
Reading file...
Wrote 1 ESSIDs and 0 PMKs.
Done.
Теперь ваша база данных знает о сети MyHomeWiFi и готова хранить связанные с ней PMK.
Импорт списка паролей для вычисления PMK для данного ESSID
На этом этапе вы импортируете список паролей (словарный список) и попросите airolib-ng вычислить PMK для ESSID, который мы импортировали на предыдущем шаге.
Скрипт настройки для этой лабораторной работы уже создал для вас небольшой файл словарного списка с именем wordlist.txt в каталоге ~/project. Мы будем использовать опцию --import pwd для чтения этого файла. Для каждого пароля в wordlist.txt airolib-ng вычислит PMK для ESSID MyHomeWiFi и сохранит результат в базе данных.
Выполните следующую команду:
airolib-ng pmk_db --import pwd wordlist.txt
Инструмент прочитает пароли из файла и вычислит PMK. Наш wordlist.txt содержит 4 пароля, и у нас есть 1 ESSID в базе данных, поэтому он вычислит и сохранит 4 PMK.
Ожидаемый вывод:
Reading file...
Wrote 0 ESSIDs and 4 PMKs.
Done.
Теперь ваша база данных содержит предварительно вычисленные ключи для сети MyHomeWiFi для каждого пароля из wordlist.txt.
Выполнение пакетной операции для проверки целостности базы данных
На этом шаге вы узнаете, как проверить содержимое вашей базы данных и вычислить любые отсутствующие пары PMK. Это важный шаг обслуживания, особенно для больших баз данных.
Опция --batch выполняет комплексную операцию. Она находит все попарные комбинации ESSID и паролей в базе данных и вычисляет PMK для любой пары, у которой еще нет PMK. Она также служит способом проверки целостности существующих PMK путем их повторного вычисления и сравнения.
Выполните пакетную команду для вашей базы данных pmk_db:
airolib-ng pmk_db --batch
Поскольку мы только что вычислили все возможные пары на предыдущем шаге (1 ESSID x 4 пароля), команда обнаружит, что новые PMK вычислять не нужно. Она просто проверит существующие.
Ожидаемый вывод:
All PMKs have been computed for all ESSIDs.
Nothing to do.
Если бы вы добавили новый ESSID или новый словарный список, выполнение команды --batch было бы наиболее эффективным способом обновления базы данных всеми новыми комбинациями PMK.
Итоги
Поздравляем! Вы успешно создали и управляли базой данных предварительно вычисленных мастер-ключей (PMK) с помощью airolib-ng.
В этой лабораторной работе вы научились:
- Понимать концепцию и преимущества базы данных PMK для ускорения взлома WPA/WPA2.
- Создавать новую пустую базу данных с помощью
airolib-ng --new. - Импортировать имя сети в базу данных с помощью
airolib-ng --import essid. - Импортировать словарный список и вычислять соответствующие PMK с помощью
airolib-ng --import pwd. - Выполнять пакетную операцию для проверки и обновления базы данных с помощью
airolib-ng --batch.
Обладая этими знаниями, вы теперь можете создавать более крупные и полные базы данных PMK, чтобы значительно ускорить оценку безопасности WPA/WPA2. Созданная база данных pmk_db может быть использована с aircrack-ng следующим образом: aircrack-ng -r pmk_db your_capture_file.cap.
