Как узнать пароль от своей Wi-Fi сети? Взлом WiFi пароля — расшифровка хендшейка Программа для gpu перебор wpa ключей.

Если у вас какие-либо проблемы с беспроводными устройствами, то следует ознакомиться со статьёй .

Обзор Reaver

Reaver предназначен для подборки пина WPS (Wifi Protected Setup) методом перебора. Конечной целью является расшифровка пароля WPA/WPA2. Reaver создан для надёжной и практичной атаки на WPS, он прошёл тестирование на большом количестве точек доступа с разными реализациями WPS. В среднем, Reaver раскрывает пароль WPA/WPA2 в виде простого текста целевой точки доступа (ТД) за 4-10 часов, в зависимости от ТД. На практике, ему обычно нужна половина этого времени на предположение пина WPS и разгадки пароля.

Т.к. оригинальная версия Reaver не обновлялась с января 2012 года, то был сделан форк. Сайт форка -

Скрыто от гостей

Последние изменения в форке датируются январём 2014 года.

Жизнь не стоит на месте. И совсем недавно (в апреле 2015 года) была официально выпущена модифицированная версия форка Reaver. Сайт этой модификации -

Скрыто от гостей

Главное её отличие в том, что она может использовать атаку Pixie Dust для нахождения верного пина WPS. Эта атака применима ко многим точкам доступа Ralink, Broadcom и Realtek. Атака, используемая для этой версии, разработана Wiire.

Запускается модифицированная версия Reaver точно также, как и форк. О новых ключах форка и какие нововведения он нам несёт будет рассказано ниже.

Перед тем, как мы начнём, заинтересованных в теме анализа и взлома Wi-Fi сетей перенаправляю также к статье « ». Там используется метод перехвата рукопожатия (программой Wifite) и предлагается очень быстрый метод расшифровки пароля. Скорость достигается за счёт применения техники значительного ускорения перебора паролей.

Основные векторы взлома Wi-Fi сетей:

  • перехват рукопожатий (хендшейков) и последующий их брутфорсинг
  • подбор пина на ТД с включённым WPS.
Данная статья посвящена второму способу.

Если вы перехватили рукопожатия и вы хотите применить атаку брут-форсинг, то у меня есть ещё пара ссылок для вас. Во-первых, которую я рекомендовал чуть выше, рассказывает, как произвести быстрый перебор по словарю. А в статье « », как следует из её названия, рассказано о переборе по маске. Это значительно ускорит процесс, если нам известны некоторые символы из пароля, либо мы знаем правила, в соответствии с которыми этот пароль генерировался. Вообще Hashcat мощная программа, которая может взламывать не только пароли Wifi WPA/WPA2, но и пароли MD5, phpBB, MySQL, SHA1 и многие другие.

Суть метода атаки Reaver - подбор WPS

Главное, что нам нужно от атакуемой точки доступа, это включённость на ней WPS. В случае правильного введения пина, ТД сама предоставит нам необходимые данные для аутентификации (в т.ч. WPA PSK).

Как уже было сказано, нужно ввести правильный пин. Думаю, все уже догадались, что Reaver занимается тем, что перебирает пины, пока не найдёт верный. Об этом пине известно следующее: это восьмизначное число. Вводить его можно в любое время - каких-либо действий со стороны владельца ТД не требуется. Нам не нужна никакая больше информация: ни о настройках ТД, ни о шифровании или конфигурации. Для восьмизначных чисел возможно 10^8 (100,000,000) вариантов. Но последняя цифра не является случайно, она рассчитывается по алгоритму, т. е. говоря простым языком, последнюю цифру мы всегда знаем, и количество возможных вариантов сокращается до 10^7 (10,000,000).

Ну и будто бы специально, чтобы нам было проще брутфорсить, пин делится на две половины, и каждая из этих половин проверяется индивидуально. Это означает, что для первой половины 10^4 (10,000) возможных вариантов, а для второй - всего 10^3 (1,000), т. к. последняя цифра не является случайной.

Reaver подбирает первую половину пина, а потом вторую. Общее число возможных вариантов, как мы только что посчитали, равняется 11,000. Скорость, с которой Reaver тестирует номера пинов полностью зависит от скорости с которой ТД может обрабатывать запросы. Некоторые достаточно быстрые - можно тестировать по одному пину в секунду, другие - медленнее, они позволяют вводить только один пин в 10 секунд.

Установка Reaver

  • там дан перевод всей справки Reaver по всем ключам;
  • там рассказано о трёх новых ключах: -K // -pixie-dust в reaver; -H // –pixiedust-log в reaver; -P // –pixiedust-loop в reaver
Подмена MAC

В некоторых случаях вам может хотеть/нужно подменить ваш MAC адрес. Reaver поддерживает подмену MAC мадрес с опцией –mac, но вам нужно убедиться, что MAC адрес корректно подменён, т. к. есть нюансы.

Изменение MAC адреса виртуального интерфейса режима монитора (теперь называемого wlan0mon) НЕ БУДЕТ РАБОТАТЬ. Вы должны изменить MAC адрес физического интерфейса вашей беспроводной карты. Например:

# ifconfig wlan0 down # ifconfig wlan0 hw ether 04:DE:AD:BE:EF:45 # ifconfig wlan0 up # airmon-ng start wlan0 # reaver -i wlan0mon -b 4C:72:B9:FE:B8:0C -vv --mac=04:DE:AD:BE:EF:45

Использование беспроводных сетей Wi-Fi в настоящее время стало очень распространённым. Многие пользователи задумываются о безопасности своих сетей и компьютеров, иногда у них возникают вопросы, как взламывают Wi-Fi, насколько эта угроза реальна?

В этой заметке я предлагаю обычным пользователям, возможно, далёким от вопросов аудита безопасности беспроводных сетей Wi-Fi, посмотреть на их Wi-Fi сеть глазами хакера и даже задаться вопросом, как взломать Wi-Fi ?

Термины Wi-Fi сетей

Точка Доступа (также Access Point ), сокращённо ТД , AP - устройство, которое обеспечивает работу сети Wi-Fi, к нему подключаются Клиенты. Чаще всего точками доступа являются роутеры.

Клиент (Станция ) - устройство, которое подключается к Точке Доступа. Чаще всего это компьютеры, ноутбуки, сотовые телефоны и т.д.

ESSID и SSID - это имена беспроводных Wi-Fi сетей - именно их вы видите, когда выбираете к какой сети подключиться. Строго говоря, ESSID и SSID это не одно и то же, но в аудите Wi-Fi эти термины часто используются как взаимозаменяемые. На скриншоте ниже ESSID (именами сетей) являются MiAl, wifi88 и т.д.:

Рукопожатие (также хэндшейк , handshake ) - данные, которыми обмениваются Станция и Точка Доступа в момент создания Wi-Fi соединения. Эти данные содержат информацию, позволяющую подобрать пароль от сети Wi-Fi.

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

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

Онлайн перебор пароля Wi-Fi - метод подбора пароля, который заключается в подключении к Точке Доступа с различными кандидатами в пароли. Практически не применяется из-за крайне низкой скорости перебора.

Офлайн перебор пароля Wi-Fi - метод подбора пароля, который заключается в захвате Рукопожатия и подборе такого пароля, который бы соответствовал этому рукопожатию. Этот подбор не требует подключения к Точке Доступа и выполняется на много порядков быстрее, чем онлайн перебор. Также он может выполняться на вычислительных мощностях видеокарт, что увеличивает скорость перебора ещё на несколько порядков.

WPA и WPA2 - технология защищённого доступа к Wi-Fi, пришла на смену устаревшей технологии WEP.

Беспроводная Wi-Fi карта (или беспроводной Wi-Fi адаптер ) - любая сетевая карта, способная подключаться к сети Wi-Fi. В ноутбуках и телефонах они встроены внутрь корпуса, в настольных компьютерах обычно представляют собой внешнее устройство, подключаемое по USB.

Режим монитора (Monitor Mode ) - свойство некоторых беспроводных адаптеров принимать пакеты данных, которые предназначены не только для них, но и для других беспроводных устройств.

Сетевой интерфейс - имя, условное обозначение в Linux сетевых карт/адаптеров.

Канал сети Wi-Fi - условное цифровое обозначение частоты, на которой в данный момент работает Точка Доступа.

Что необходимо для взлома Wi-Fi

  • Компьютер, на который можно установить Linux
  • Специализированное программное обеспечение, для Linux оно является свободным (т.е. распространяется бесплатно и у него открыт исходный код)
  • Беспроводная Wi-Fi карта, которая поддерживает режим монитора. актуальных карт.
  • Соответствующие знания и навыки - это вы найдёте в данной статье.

Wi-Fi карты с поддержкой режима монитора имеются в свободной продаже, их цена соответствует ценам других беспроводным картам с аналогичными характеристиками. В моём ноутбуке встроенная карта оказалась с поддержкой режима монитора - т.е. это не является редкостью и их могут достать любые желающие.

Специализированное ПО для аудита Wi-Fi сетей, как уже было сказано, распространяется свободно, по умолчанию оно присутствует в специализированных дистрибутивах, например, в (по ссылке общая информация и инструкции по установке).

Как можно убедиться, все компоненты необходимые для взлома Wi-Fi являются весьма доступными.

Все дальнейшие действия выполняются в Kali Linux.

Перевод Wi-Fi адаптера в режим монитора

По умолчанию беспроводные адаптеры находятся в «управляемом» (managed) режиме. Этот режим позволяет подключаться к Точке Доступа в качестве обычного Клиента.

Режим монитора (monitor) предназначен для анализа Wi-Fi сетей. В этом режиме беспроводная карта принимает фреймы (их ещё называют кадры) от любых источников, находящихся на том же канале.

Поскольку нам нужно захватить рукопожатие, которое состоит из данных, которые Станция отправляет Точке Доступа и Точка Доступа отправляет Станции (т.е. которые ни на каком этапе не предназначены для нас), то нам необходимо перевести нашу Wi-Fi карту в режим монитора, чтобы она была способна увидеть эти данные и сохранить их для дальнейшей обработки.

Чтобы ввести команды для перевода Wi-Fi адаптера в режим монитора, нам нужно узнать имя беспроводного интерфейса. Для этого откройте консоль и введите команду:

Sudo iw dev

Имя беспроводного интерфейса указано в строке со словом Interface , т.е. в моём случае именем является wlan0 . Запоминаем это значение, поскольку в дальнейшем оно нам понадобиться.

Режим монитора не является чем-то обычным для операционной системы, поэтому некоторые программы без спроса, молча переводят Wi-Fi адаптер в управляемый режим. Нам это может помешать, поэтому следующими двумя командами мы закрываем программы, которые могут нам воспрепятствовать:

Sudo systemctl stop NetworkManager sudo airmon-ng check kill

Теперь, наконец, мы можем перевести беспроводную карту в режим монитора. Для этого выполните последовательность команд

Sudo ip link set <ИНТЕРФЕЙС> down sudo iw <ИНТЕРФЕЙС> set monitor control sudo ip link set <ИНТЕРФЕЙС> up

заменив <ИНТЕРФЕЙС> на действительное имя вашего беспроводного интерфейса (у меня это wlan0 ):

Sudo ip link set wlan0 down sudo iw wlan0 set monitor control sudo ip link set wlan0 up

Кажется, что ничего не произошло, но набрав команду

Sudo iw dev

Мы увидим примерно следующее:

В ней строка type monitor говорит о том, что наша беспроводная карта в режиме монитора.

Что такое рукопожатие (хэндшэйк)

Как уже было сказано, рукопожатие - это данные, которые в несколько этапов передаются между Станцией и Точкой доступа в тот момент, когда Станция подключается к Точке Доступа. Это означает, что для захвата рукопожатия нам нужно переключиться на канал, на котором работает Точка Доступа, для прослушивания радиосигналов и дождаться момента, когда Станция подключается к ней. Поскольку ожидание может затянуться, что применяется приём, называемый Атака Деаутентификация, который заключается в принудительно сбросе Wi-Fi соединения между Точкой Доступа и Станцией. Сразу после такого отключения, Станция пытается подключиться вновь, а мы в этот момент захватываем рукопожатие.

К сожалению, этот метод не работает, если к Точке Доступа никто не подключён.

Обзор Wi-Fi сетей

Чтобы атаковать Wi-Fi сеть нам нужно знать некоторые её характеристики. Чтобы получить список всех доступных в диапазоне досягаемости Wi-Fi сетей выполните команду:

Sudo airodump-ng wlan0

Обратите внимание, что если у вас другое имя беспроводного интерфейса, то вместо wlan0 вам нужно вписать это имя.

Описанная атака применима только для сетей с защитой WPA2 или WPA - таких подавляющее большинство.

Будет выведен похожий список сетей:

Когда вы увидите в списке сеть, которую хотите атаковать, то остановите программу, для этого нажмите CTRL+c .

Предположим, меня интересует сеть с ESSID (именем) dlink . Как видно из скриншота, её характеристиками являются: BSSID - это 00:1E:58:C6:AC:FB, она использует WPA2, работает на шестом канале. Также ненулевое значение #Data (захваченные данные, отправляемые это ТД) позволяет предположить, что к ней подключена одна или более станций.

Для захвата рукопожатия используется команда следующего вида:

Sudo airodump-ng -c КАНАЛ --bssid MAC_АДРЕС -w ФАЙЛ ИНТЕРФЕЙС

  • КАНАЛ - это канал, на котором работает ТД
  • MAC_АДРЕС - это BSSID атакуемой ТД
  • ФАЙЛ - имя файла, куда будет записано рукопожатие
  • ИНТЕРФЕЙС

Для моих данных команда выглядит так:

Sudo airodump-ng -c 6 --bssid 00:1E:58:C6:AC:FB -w capture wlan0

На следующем скриншоте вновь видна интересующая нас ТД, а также теперь виден раздел со станциями:

В полном списке ТД раздел со станциями также присутствовал, но уходил за нижний край экрана, поэтому на скриншот не попал.

Для станции мы в поле BSSID мы можем увидеть значение, которое соответствует BSSID Точки Доступа, т.е. 00:1E:58:C6:AC:FB, это означает, что в данный момент эта Станция подключена к интересующей нас ТД. Теперь имеется два варианта:

1) ждать пока Станция отсоединится и вновь подключится к ТД по естественным причинам

2) выполнить атаку деаутентификация для ускорения процесса

Выполнение атаки деаутентификация

Для выполнения деаутентификации, не прекращая записи трафика, запущенного на предыдущем этапе, откройте новое окно консоли и введите туда команду вида:

Sudo aireplay-ng -0 3 -a MAC_АДРЕС ИНТЕРФЕЙС

  • MAC_АДРЕС - это BSSID атакуемой ТД
  • ИНТЕРФЕЙС - имя беспроводного интерфейса в режиме монитора

В моём случае команда выглядит так:

Sudo aireplay-ng -0 3 -a 00:1E:58:C6:AC:FB wlan0

Программа выведет примерно следующее:

08:17:30 Waiting for beacon frame (BSSID: 00:1E:58:C6:AC:FB) on channel 6 NB: this attack is more effective when targeting a connected wireless client (-c ). 08:17:30 Sending DeAuth to broadcast -- BSSID: 08:17:30 Sending DeAuth to broadcast -- BSSID: 08:17:31 Sending DeAuth to broadcast -- BSSID:

А в правом верхнем углу экрана для захвата данных появится новая запись:

WPA handshake: 00:1E:58:C6:AC:FB

Она означает, что рукопожатие успешно захвачено.

Атака по словарю на пароль Wi-Fi

Теперь нам нужно запустить перебор данных.

Подготовим словарь:

Cp /usr/share/wordlists/rockyou.txt.gz . gunzip rockyou.txt.gz cat rockyou.txt | sort | uniq | pw-inspector -m 8 -M 63 > newrockyou.txt

Файл словаря в этом случае называется newrockyou.txt .

Чтобы узнать имя захваченного рукопожатия выполните команду:

Ls -l capture*

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

Rw-r--r-- 1 root root 73164 сен 30 08:24 capture-01.cap -rw-r--r-- 1 root root 478 сен 30 08:24 capture-01.csv -rw-r--r-- 1 root root 583 сен 30 08:24 capture-01.kismet.csv -rw-r--r-- 1 root root 2766 сен 30 08:24 capture-01.kismet.netxml

Нас интересует только файл capture-01.cap - именно он содержит рукопожатие.

Для перебора по словарю используется следующая команда:

Aircrack-ng -w ФАЙЛ_СЛОВАРЯ ФАЙЛ_ЗАХВАТА

Итак, в моём случае точная команда следующая:

Aircrack-ng -w newrockyou.txt capture-01.cap

Эта команда запускает подбор пароля, в процессе перебора показывается следующее окно:

Пароль подобран:

Об этом говорит запись KEY FOUND! [ pattayateam ] , в которой паролем от Wi-Fi сети является pattayateam. Используя этот пароль можно подключиться к беспроводной точке доступа с любого устройства (компьютера, телефона) как это делают другие легитимные пользователи.

Заключение

Как можно убедиться, взлом Wi-Fi не является чем-то исключительно сложным, хотя и требует знания некоторых команд Linux. Здесь показан только один пример из множества вариаций атаки на Wi-Fi. Если вас заинтересовала тема аудита беспроводных сетей, то обратитесь к книге « ».

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

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

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

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

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

В 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 на компьютере с графической картой от 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. Это, безусловно, быстрее всего.

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

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

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

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

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

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

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

Pyrit -e DANIELLE2015 delete_essid

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

На нашем сайте мы не раз касались темы анализа . Сегодня мы раскажем как подобрать пароль к вашей беспроводной WiFi точке с помощью метода перебора (Брутфорс). Для данной задачи мы будем использовать вычислительную мощность видеокарты. Как вы можете знать, видеокарты имеют процессор который позволяет выполнять операции с плавающей запятой намного лучше чем центральный процессор. Это подойдет как нельзя лучше для брутфорса WPAWPA2 паролей к WiFi точкам доступа. В качестве программного обеспечения для нашей задачи мы будем использовать программу pyrit .

Немного о программе:
Pyrit позволяет создавать огромные базы данных, для вычислений WPA/WPA2-PSK аутентификации. Используя вычислительную мощность многоядерных и других платформ через ATI-Stream, Nvidia CUDA и OpenCL, в настоящее время, безусловно, самая мощная атака против одной из наиболее часто используемых в мире безопасности протоколов.


WPA/WPA2-PSK является подмножеством стандарта IEEE 802.11 WPA/WPA2, что усложняет распределение ключей и аутентификации клиента путем присвоения каждому участвующему Pre-Shared Key. Это главный ключ получается из пароля, который пользователю необходимо предварительно настроить, например, на своем ноутбуке и точке доступа. Когда ноутбук создает соединение с точкой доступа, новый ключ сессии происходит от мастер-ключа для шифрования и аутентификации.Когда лаптоп создает соединение к точке доступа, новый ключ сессии генерируется на основе мастер-ключа чтобы зашифровать и авторизовать последующий трафик. «Экономия» на использовании единственного мастер-ключа вместо отдельных ключей для каждого пользователя упрощает развертывание WPA/WPA2 сетей в домах и мелких офисах ценой уязвимости протокола к брутфорсу фазы передачи ключа. Это позволяет полностью раскрыть пароль, который защищает сеть.

В чем профит? Сравните количество pmk/s на aircrack-ng и pyrit:

Разумно заметить, что все действия проводились в ubuntu 10.04 R2 x86_64 с видеокартой Ati R6950 Twin Frozr III.
(Т.е. все справедливо для любых ubuntu-подобных систем, в частности для backtrack 5, с минимальными различиями для 32 и 64 битными системами).

Установка
Список необходимых программ:
1. AMD driver 11.6
2. AMD APP SDK 2.4тырк 1 тырк 2
3. Pyritsvn checkoutpyrit.googlecode.com/svn/trunk/ pyrit_svn
4. Calpp++

1.Установка драйвера:

chmod + x ati - driver - installer - 11 - 5 - x86 . x86_64 . run

sudo . / ati - driver - installer - 11 - 5 - x86 . x86_64 . run

sudo reboot

2.Установка AMD APP SDK 2.4:

cp / home / user / Downloads / AMD - APP - SDK - v2 . 4 - lnx64 . tgz / home / user

cd / home / user

tar - xvzf AMD - APP - SDK - v2 . 4 - lnx64 . tgz

sudo gedit ~ / . bashrc

Внизу этого файла добавляем следующие строки:

export AMDAPPSDKROOT

export AMDAPPSDKSAMPLESROOT

export AMDAPPSDKROOT = / home / user / AMD - APP - SDK - v2 . 4 - lnx64

export AMDAPPSDKSAMPLESROOT = / home / user / AMD - APP - SDK - v2 . 4 - lnx64 / samples

export LD_LIBRARY_PATH = $ AMDAPPSDKROOT / lib / x86 : $ AMDAPPSDKROOT / lib / x86_x64 : $ LD_LIBRARY_PATH

FIND_LIBRARY (LIB_ATICALCL aticalcl PATHS )

FIND_LIBRARY (LIB_ATICALRT aticalrt PATHS "/home/user/AMD-APP-SDK-v2.4-lnx64/lib/x86_64/" )

FIND_PATH (LIB_ATICAL_INCLUDE NAMES cal . h calcl . h PATHS "/home/user/AMD-APP-SDK-v2.4-lnx64/include/CAL" )

sudo cmake .

sudo make install

! Поменяйте /user/ на свое имя пользователя
Разумно заметить, что выше приведенный вариант работает для систем любой разрядности.

3.Регистрируем icd-registration:

tar xfz $ AMDAPPSDKROOT / icd - registration . tgz

sudo cp $ AMDAPPSDKROOT / etc / etc

ВАЖНО!
В некоторых англоязычных руководствах описана установка обеих технологий, которые используют карты Ati для взаимодействия непосредственно с карточкой, это OpenCL которая морально и физически устареладля этого дела , и Calpp с библиотеками libboost, которую мы и будем использовать.

4.Установка Calpp:

sudo apt - get install libboost1 . 40 - all - dev cmake

tar - xvzf calpp - 0.90.tar.gz

cd calpp - 0.90

sudo gedit CMakeLists . txt

Исправляем FIND_LIBRARY на следующие значения:

5.Установка pyrit:

sudo apt - get install g ++ python - dev zlib1g - dev libssl - dev python - scapy libpcap0 . 8 libpcap0 . 8 - dev libpcap - dev

svn checkout pyrit . googlecode . com / svn / trunk / pyrit_svn

cd / pyrit_svn / pyrit

cd . .

cd cpyrit_calpp

sudo python setup . py build install

На этом установка закончена.
Проверяем правильность установки:

2. Запускаем оценочный тест:

pyrit benchmark

вывод (количество pmk/s естественно будет зависеть от вашей видеокарты):

# 2 : "CPU-Core (SSE2)" : 643.5 PMKs / s (RTT 3.0 )

Разумно заметить, что 1 видеокарта заменяет 1 ядро процессора, т.е. если у вас 2 и более карт, либо карта двухчиповая, то вывод будет таким:

# 1 : "CAL++ Device #1 " ATI CYPRESS "" : 82426.3 PMKs / s (RTT 2.4 )

# 2 : "CAL++ Device #2 " ATI JUNIPER "" : 41805.7 PMKs / s (RTT 2.6 )

# 3 : "CPU-Core (SSE2)" : 655.1 PMKs / s (RTT 3.0 )

# 4 : "CPU-Core (SSE2)" : 691.0 PMKs / s (RTT 2.9 )

# 5 : "Network-Clients" : 0.0 PMKs / s (RTT 0.0 )

ВАЖНО!
В pyrit’е можно создавать целые базы прекомпилированных хешей для подбора паролей. Есть 2 варианта хранения и использования этих баз:
Вариант 1 - хранение базы в скрытой домашней папке пользователя. Я его называю мобильным, т.е. берется файл с 1 миллионом часто встречающихся паролей, после чего к нему добавляются любые essid’ы для быстрой проверки (1 миллион слов + 1 essid на моей карте это примерно минута времени).

Плюсы :
Файл с паролями залил 1 раз и забыл (можно заливать сколько угодно, но НЕжелательно)
Любое количество essid’ов с любыми именами
Маленькие затраты по времени

Минусы :
При использовании словарей более 20 миллионов и хотя бы 10 разных essid’ов время тратится значительно больше.

Вывод - плюсы плавно перетекают в минусы и наоборот. От себя замечу, что это идеальный вариант при наличии пробивного словаря до 1 миллиона слов, который позволит вам чекать разные.cap файлы с большой скоростью.
Пример использования :
analyze

pyrit - r cap - 01.cap - b 00 : 11 : 22 : 33 : 44 : 55 attack_batch

pyrit - r cap - 01.cap attack_batch

Вариант 2 - хранение базы в любой указанной папке пользователя. Это более основательный подход к делу. Позволяет создать базу для конкретных essid’ов и конкретным числом паролей, т.е. берется файл с 100 миллионами паролей, после чего к нему добавляются любые essid’ы с уникальными именами. После чего база компилируется и привязывается к конкретным essid’ам которые вы в нее залили. После компиляции скорость увеличивается в 5-7 раз. Отличный вариант скажете вы, и будете правы, но ложка дектя конечно же есть 🙂 подвох заключен во времени компиляции, которые естественно зависит от кол-ва паролей и essid’ов и составляет продолжительное время.

Плюсы :
Допустим 1 база на 10 уникальных essid’ов может использоваться для любых точек доступа при условии что имя точки совпадает с тем, что находится в базе. Т.е. если у двух ваших соседей имя точки доступа dlink, но естественно разные mac-адреса, это НЕ помешает вам перебирать их по своей базе без необходится создания новой базы.
Скорость
Огромная скорость
Сделал 1 базу на самые часто встречающиеся essid’ы и чекай их за минимальное время в любых!!! количествах.

Минусы :
Время компилирования
Занимает много места на жестком диске.

Вывод - сухие факты про мою базу: 850 миллионов слов, 24 essid’а, 32 часа компилирования, 650.000 pmk/s перебор по базе, вес 240 gb.
Естественно при меньшем кол-ве паролей и essid’ов затраты по времени уменьшаются прямопропорционально. Стоит это того или нет, каждый решает сам.
Пример использования :сгдеeval

pyrit - u file : / / / путь/ до/ файла/ где/ будет/ база. db - r / путь/ до/ файла/ с/ cap / output - 01.cap attack_db

Заключение
Для тех кто постоянно/проффесионально занимается подбором паролей к Wi-Fi наличие подобных программ существенно облегчает жизнь. В наше время грех не использовать все мощности своего железа, не зря же апгрейд делаем 🙂 (еще раз напомню разницу - перебор на процессоре ~3.000 pmk/s, перебор на видеокарте ~85.000 pmk/s ). Пару слов про аналоги - это программаcommview for wifi , сделана под винду, я ее в глаза не видел и не трогал, потому что воняет не пользуюсь виндой. Она, конечно, платная (500$ профит).

Расшифровка хендшейка — непростой процесс и читатель наверняка уже давно понял, что взлом WPA даже при наличии качественного хендшейка и прямых рук атакующего похож на рулетку. Все зависит от изначальной сложности пароля. Благоприятного исхода никто гарантировать не может, но статистика нас радует и говорит что как минимум 20% WPA-сетей успешно подвергаются взлому, так что отчаиваться не стоит, вперед!

Для начала надо подготовить словарь. WPA-словарь — это обычный текстовый файл, содержащий в каждой строчке один возможный вариант пароля. Учитывая требования к паролям стандарта WPA, возможные пароли должны иметь не менее 8 и не более 63 символов и могут состоять только из цифр, латинских букв верхнего и нижнего регистра и специальных знаков наподобие!@#$% и т.д. (кстати такой алфавит считается достаточно обширным). С нижней границей длины пароля все понятно, не менее 8 символов и точка.

Ну а с верхней не так все и просто. Взламывать пароль из 63 символов по словарю бесполезно, поэтому вполне разумно ограничиться максимальной длиной пароля в словаре 14-16 символов. Качественный словарь (для которого и дана оценка успешности исхода в 20%) весит более 2Гб и содержит порядка 250 млн возможных паролей с длиной в указанном диапазоне 8-16 символов. Что должно входить в эти комбинции возможных паролей что бы расшифровка хендшейка прошла без сучка и задоринки? Во-первых, однозначно, весь восьмизначный цифровой диапазон, на который по статистике приходится почти половина всех раскрываемых паролей. Ведь в 8 цифр прекрасно укладываются различные даты, например 05121988.

И еще немного о словорях…

Полный цифровой восьмизнак имеет 10^8 = 100 млн комбинаций что уже само по себе немало. Кроме того, в базовый словарь закера должны в обязательном порядке входить слова, наиболее часто используемые в качестве паролей, например internet, password, qwertyuiop, имена и др., а так же их мутации с популярными суффиксами-удлинителями паролей (единоличным лидером в этой области является конечно же суффикс 123). Т.е. если пароль diana слишком короток для соответствия стандарту WPA, находчивый юзер в большинстве случаев дополнит его до diana123, заодно увеличивая таким образом (на его опытный взгляд) секретность пароля. Таких популярных суффиксов также известно несколько десятков.

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

используем crunch для генерации различных комбинаций из базового набора

aircrack-ng

Подготовив какой-никакой качественный, на наш не очень опытный взгляд, словарь (например wordlist.txt) переходим к подбору пароля, то есть к расшифровке хендшейка . Запускаем aircrack-ng с дополнительными настройками:

root@bt:~# aircrack-ng -e -b -w wordlist.txt testcap.cap

root @ bt : ~ # aircrack-ng -e -b -w wordlist.txt testcap.cap

И вот результат наших трудов:

Наш пароль нашелся за 3 секунды, вот это да!!!

На скрине выше aircrack-ng нашел пароль (а это было слово dictionary) всего лишь за 3 секунды. Для этого он перебрал 3740 возможных паролей со скоростью 1039 паролей в секунду. Все бы ничего, но здесь внимательный читатель должен изрядно напрячься, ведь ранее мы говорили о словаре в 250 млн возможных паролей! И 250*10^6 делим на 1039 и получаем… ОГО порядка 240 тыс секунд, а это 66 часов… Почти трое суток! Именно столько времени потребуется вашему ноутбуку для обсчета базового 2Гб словаря (полностью, но ведь все помнят про «Закон подлости»). Такие невменяемые временные промежутки обуславливаются вялой скоростью выполнения расчетов, продиктованой высокой вычислительной сложностью заложенных в процедуру аутентификации WPA алгоритмов. Что уже говорить о больших словарях, например полный цифровой девятизнак содержит уже 900 млн комбинаций и потребует пару недель вычислений чтобы убедиться что (как минимум) пароль не найден)

Такая лузерская ситуация не могла не беспокоить пытливые умы наших соотечественников и вскоре выход был найден. Для потоковых вычислений были задействованы GPU, то есть видеокарты. GPU (Graphic Processing Unit) — сердце вашего 3D-ускорителя, имеет чип с сотнями (и даже тысячами) потоковых процессоров, позволяющий распределить многомилионные но простые операции хеширования паролей и тем самым на порядки ускорить процесс расшифровки. Чтобы не быть голословным скажу, что разогнаный ATI RADEON HD 5870 способен достичь скорости в 100.000 паролей в секунду! Ощутимая разница, не так ли?

расшифровка хендшейка средствами GPU

Конечно, подобные цифры свойственны только топовым адаптерам ATI RADEON (NVIDIA со своей технологией CUDA пока откровенно сливает ATI в плане скорости перебора WPA ввиду явных архитектурных преимуществ последних). Но за все приходится платить, хороший видеоакселлератор стоит дорого, И встречается как правило только у заядлых геймеров, или иначе — задротов.

В рамках статьи для новичков я не буду, пожалуй, углубляться в дебри настройки ATI SDK и pyrit под Linux, отмечу только что потрахаться придется долго и качественно. Да и обладателей топовых радеонов с нвидиями, не так уж и много, думаю они вполне самостоятельно разберутся. Ну или погуглят)

Как ни парадоксально, для подбора WPA-пароля с помощью GPU лучше всего подходит Windows, да да, именно он). Дело в том, что немалую роль в этом процессе играют драйвера видеоадаптеров, Windows-версиям которых разработчики уделяют куда больше внимания, чем драйверам под Linux. Ведь ориентируются они на потребности геймеров, много вы знаете любителей поиграться в комп с установленным линуксом? Подбор WPA-пароля под Windows умеют делать две программы — коммерческая Elcomsoft Wireless Security Auditor и консольная утилита hashcat-plus. Использование именно этих программ мы и рассмотрим далее, а заодно и сравним их характеристики, поговорим о плюсах и минусах обоих. Посмотрим с какой скоростью будет происходить расшифровка хендшейка в равных условиях, на одной системе для обоих программ.

Наличие последних рабочих драйвероввидеокарты в системе — обязательное условие. Как ставить дрова на видюху рассказывать не буду, раз вы сдесь то, уверен, вам это раз плюнуть.

Расшифровка хендшейка Elcomsoft Wireless Security Auditor

EWSA можно найти (и купить) на сайте разработчиков — www.elcomsoft.com , только учтите что пробная бесплатная версия по слухам не показывает найденный пароль. На просторах интернета можно найти ломаные варианты разного качества, только не забывайте об угрызения х совести которые вас будут мучать). Установка и настройка EWSA элементарна, можно сразу в меню выбрать русский язык, в настройках GPU убедитесь что ваши GPU видны программе и выбраны галочками (если GPU в списке не видны — у вас явно проблема с драйверами), а так же укажите программе пути к вашим словарям в настройках словарей.

Жмем “Импорт данных -> Импортировать файл TCPDUMP” и выбираем *.cap-файл с хендшейком (программа их проверит и предложит отметить те, которые мы хотим атаковать), после чего можно смело жать “Запустить атаку -> Атака по словарю”:

Мде… Могло бы быть и пошустрее))

В данном тесте EWSA показала скорость всего лишь 135.000 паролей в секунду, хотя исходя из конфигурации железа я ожидал увидеть цифру около четырехсот тысяч.

Расшифровка хендшейка EWSA

Сравним работу EWSA с ее по-настоящему бесплатным конкурентом — hashcat-plus. Качаем полный набор hashcat-gui с сайта автора и извлекаем архив в удобное место, она портативная. Запускаем hashcat-gui32.exe или hashcat-gui64.exe в зависимости от разрядности Windows и отвечаем на первый же вопрос какой GPU будем использовать — NVidia (CUDA) или ATI RADEON (вариант CPU only нас, очевидно, не устроит).

Когда загрузится основное окно программы переходим на вкладку oclHashcat-plus (или cudaHashcat-plus в случае с NVidia). Здесь есть одна тонкость — hashcat не умеет парсить EAPOL-хендшейки, совсем не умеет и незнает что это такое. Он требует от вас выложить ему “на блюдечке” WPA-хеши в его собственном формате *.hccap. Преобразовать обычный *.cap в *.hccap можно с помощью патченой утилиты aircrack-ng! Разработчик hashcat сделал удобный онлайн-конвертер , просто загрузите туда ваш *.cap-файл с хендшейком и укажите ESSID, в случае если хендшейк в файле есть вам вернется уже готовый к атаке *.hccap. Ну а если нет то и суда нет).

Двигаемся далее — указываем программе наш *.hccap-файл в качестве Hash file для атаки, в окошко Word lists добавляем файлы словарей (стрелками можно выставить желаемый порядок их прохождения), выбираем WPA/WPA2 в качестве Hash type и жмем на Start.

Должно появиться консольное окно с запуском выбранной весии hashcat-plus и кучей параметров, и если все в порядке утилита приступит к работе. В процессе расчета можно выводить на экран текущий статус по нажатию клавиши ‘s’. Можно и приостанавливать процесс по нажатию ‘p’ или прервать по нажатию ‘q’. Если hashcat-plus вдруг найдет пароль она вас обязательно вам его покажет..

Результат — 392.000 паролей в секунду! И это очень хорошо согласуется с теоретической предполагаемой скоростью, исходя из конфигурации системы и проведенных карандашем расчетов.
Данный тест убедительно показывает, что hashcat-plus гораздо лучше масштабируем в случае использования нескольких GPU одновременно. Выбор за вами.