Взлом рукопожатий в Pyrit — самый быстрый способ с использованием графических процессоров и предварительного расчёта хешей

Источник: Эта статья много позаимствовала из http://www.blackmoreops.com/2014/03/10/cracking-wifi-wpawpa2-passwords-using-pyrit-cowpatty/

Преимущества использования Pyrit

Взлом захваченных рукопожатий — это единственный способ взлома WPA/WPA2 паролей. Производится он методом брутфорса (перебора паролей).

Кстати, если вы ещё не знакомы с техникой захвата рукопожатий, то обратитесь к статье «Захват рукопожатий (handshake) в Kali Linux».

Поскольку использование брутфорса не гарантирует положительного результата, придумано несколько техник, которые позволяют существенно повысить шансы на успех. К ним относятся:

  • использование видеокарт для подбора паролей (значительно увеличивает скорость перебора)
  • использование таблиц с предварительно рассчитанными хешами (увеличение скорости + возможность повторного использования для одной и той же точки доступа, возможность перепробовать десятки рукопожатий от одной точки доступа за считанные секунды)
  • использование хороших словарей (повышает шансы на успех)

В Pyrit можно использовать все эти техники — поэтому он является самым быстрым взломщиком WPA/WPA2 паролей, либо входит в двойку сильнейших наравне с oclHashcat.

Другие программы также реализуют эти техники. Например и в oclHashcat и в coWPAtty реализован перебор по словарю. В coWPAtty реализован предварительный расчёт хешей (но отсутствует поддержка использования графических карт). oclHashcat позволяет использовать мощь видеокарт, но не делает предварительный расчёт хешей. Забегаю вперёд, отмечу, что в oclHashcat можно реализовать предварительный расчёт хешей и полученные данные неоднократно использовать для одной точки доступа, для проверки нескольких рукопожатий без увеличения времени на расчёт хешей, как это сделать будет описано позже. Aircrack-ng перебирает по словарю и эффективно использует многоядерные процессоры, но не использует другие "ускорения".

На моей системе oclHashcat делает перебор для взлома WPA/WPA2 паролей со скоростью 31550 H/s, а Pyrit рассчитывает хеши со скоростью 38000-40000 PMKs. Дальнейшая проверка рукопожатий занимает меньше секунды. Из этого видно, что даже при проверке одного хендшейка мы увеличиваем скорость примерно на треть, а если мы хотим проверить несколько рукопожатий для одной ТД, то с oclHashcat всё нужно начинать заново. В Pyrit же каждое новое рукопожатие занимает доли секунды.

Для того, чтобы Pyrit раскрыл всю свою мощь, у вас должны быть установлены проприетарные драйвера для видео карты. Посмотрите на статью «Как установить Pyrit в Kali Linux 2» и на материал, ссылки на который в ней даны — там поэтапно рассказывается об установки драйверов и Pyrit в Kali Linux 2 на компьютере с графической картой от AMD. Нужно проделать все шаги, а не только последнюю инструкцию. У меня нет компьютера с NVidia, поэтому у меня нет актуальных инструкций об установке драйвера и Pyrit для систем под NVidia.

Самый быстрый взлом WPA/WPA2 паролей

Мои исходные данные:

  • атакуемая ТД - DANIELLE2015
  • файл, с предварительно захваченным рукопожатием, называется DANIELLE2015-01.cap

Словарь для взлома WPA/WPA2

Я буду использовать словарь rockyou, который поставляется с Kali Linux. Для обучения этого вполне достаточно, а для практических атак могу порекомендовать сгенерированные словари номеров телефонов, сгенерированные словари для конкретных ТД вида имя_ТД+цифры, которые заполняют парольную фразу до восьми символов.

Давайте скопируем лучший файл словаря в каталог root.

cp /usr/share/wordlists/rockyou.txt.gz .

Распакуем его.

gunzip rockyou.txt.gz

Поскольку, согласно требованиям, минимальный пароль WPA2 может быть в 8 символов, давайте пропарсим файл, чтобы отфильтровать любые пароли, которые менее 8 символов и более 63 (на самом деле, вы можете просто пропустить эту строчку, это полностью на ваше усмотрение). Таким образом, мы сохраним этот файл под именем newrockyou.txt.

cat rockyou.txt | sort | uniq | pw-inspector -m 8 -M 63 > newrockyou.txt

Давайте посмотрим, как много паролей содержит этот файл:

wc -l newrockyou.txt

В нём целых 9606665 паролей.

Оригинальный файл содержит ещё больше.

wc -l rockyou.txt

Там 14344392 паролей. Итак, мы сделали этот файл короче, что означает, мы можем протестировать ТД в более сжатый срок.

Наконец, давайте переименуем этот файл в wpa.lst.

mv newrockyou.txt wpa.lst

Создаём ESSID в базе данных Pyrit

Сейчас нам нужно создать ESSID в базе данных Pyrit

pyrit -e DANIELLE2015 create_essid

ВНИМАНИЕ: Если в названии ТД есть пробел, например, “NetComm Wireless”, тогда ваша команда будет вроде этой:

pyrit -e 'NetComm Wireless' create_essid

Шикарно, теперь у нас есть ESSID, добавленный в базу данных Pyrit.

Импортируем словарь в Pyrit

Сейчас, когда ESSID добавлен в базу данных Pyrit, давайте импортируем наш словарь паролей.

Используйте следующую команду для импорта предварительно созданного словаря паролей wpa.lst в базу данных Pyrit.

pyrit -i /root/wpa.lst import_passwords

Создайте таблицы в Pyrit, используя пакетный (batch) процесс

Это просто, просто наберите следующую команду

pyrit batch

Так как данная операция выполняется на ноуте, я имею 38000-40000 PMKs. Это далеко не предел — настольные компьютеры с хорошей графической картой помогут вам значительно увеличить скорость этих вычислений.

Вы должны быть осторожны, насколько большой ваш файл словаря и насколько ГОРЯЧИЕ ваш процессор и графическая карта. Используйте дополнительное охлаждение, чтобы избежать повреждения.

Процесс взлома с Pyrit

Мы будем применять атаку на рукопожатие (handshake), используя базу данных предварительно посчитанных хешей. После того, как мы выполнили все необходимые шаги по подготовке, запустить атаку стало совсем легко. Просто используйте следующую команду для начала процесса взлома.

pyrit -r DANIELLE2015-01.cap attack_db

Вот и всё. Весь процесс, включающий предварительный расчёт хешей, занял несколько минут. Чтобы пройти по всей таблице базы данных для получения пароля, если он присутствует в словаре, понадобилось меньше секунды. У меня скорость достигла 6322696 PMKs. Это, безусловно, быстрее всего.

Если пароль подобрать не удалось, то сразу пробуем опцию --all-handshakes. Суть её в том, что проверяется не одно (самое лучшее рукопожатие), а вообще все имеющиеся. Дело в том, что даже самое лучшее рукопожатие может оказаться неверно реконструированным. Это приведёт к тому, что пароль присутствует в словаре, но программа не сможет это выявить. Поэтому для проверки всех доступных рукопожатий делаем так:

pyrit --all-handshakes -r DANIELLE2015-01.cap attack_db

Это занимает секунды — поэтому всегда стоит использовать, если пароль не найден.

Атака на рукопожатие (handshake) со словарём в Pyrit без использования предварительно посчитанных таблиц

Если вам не хочется создавать базу данных, а хочется напрямую копошиться в файле словаря (что много медленнее), вы можете сделать следующее

pyrit -r DANIELLE2015-01.cap -i /root/wpa.lst attack_passthrough

Скорость этого способа? 17807 PMKs в секунду. На мой вкус намного медленнее.

Очищаем Pyrit и базу данных

Наконец, если нужно, вы можете удалить ваш essid и сделать очистку.

pyrit -e DANIELLE2015 delete_essid

Это высвободит довольно много места на диске.

Для продолжения своего знакомства с Pyrit читайте «Продвинутое использование Pyrit».

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *