Categories: Wi-Fi

Взлом WIFI — для тех кто еще не в теме.

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

На просторах сети можно найти десятки обрывочных статей и сотни инструкций о том как взломать вай-фай, страждущим предлагается просмотреть обучающее видео с подбором пароля “qwerty123”, но полноценного руководства что называется “от и до” по этой теме я пока не встречал. Что собственно и решил восполнить.

Давайте разберемся, зачем же добропорядочные (и не очень) граждане пытаются взломать WiFi соседа? Итак, тому может быть несколько причин:

  1. Бесплатный интернет. Да-да, тысячи школьников еще в эпоху фидо и модемных соединений лет пятнадцать назад безуспешно искали в поисковиках тот самый волшебный “крякер интернета”, скачивая себе на персоналки целые тонны троянов и прочей нечисти. Бесплатный доступ к Сети был пределом мечтаний целого поколения. Сейчас ситуация значительно изменилась, дешевые безлимитные тарифы доступны практически везде, но иметь в круглосуточном резерве запасной канальчик на случай, если вдруг твой провайдер временно склеит ласты, никому не помешает. Кроме того, нередки ситуации типа “смотри-ка, а у него канал пошире чем у меня будет”, что тоже как бы намекает на полезность происходящего.
  2. Путешественники (и моряки в частности). Когда Wi-Fi в отеле стоит 5 евро в час, а связь с Родиной нужна постоянно и желательно в номере и забесплатно, практическую ценность взломаного Wi-Fi ощущаешь как никогда остро. В излишних комментариях это я думаю не нуждается.
  3. Снифинг трафика жертвы и последующий взлом аккаунтов почты, социальных сетей, асек и прочее хулиганство. Имея на руках пароль от Wi-Fi мы имеем возможность расшифровать весь передаваемый “по воздуху” трафик, включая сессии аутентификации на разных сайтах, куки и много еще чего вкусного.
  4. Промышленый шпионаж. В настоящее время офисный Wi-Fi, по-быстрому настроенный криворуким админом, является для подкованного человека просто парадным входом в ЛВС организации, а там можно найти ох как много интересного, от элементарного снифанья почты и асек до секретных документов в расшаренных папках и файлопомойках.
  5. Пентестинг (от англ. penetration testing — тестирование на проникновение). Пентестеры — это по сути те же хакеры (а зачастую это они и есть), но действующие по заказу и с согласия владельца сети. В их задачи входит проверка безопасности сети и устойчивости к проникновению извне (или нарушению ее работы изнутри). Учитывая стоимость подобного рода услуг вряд ли ваш сосед наймет такого специалиста (если конечно он не олигарх), а вот среди владельцев крупного и среднего бизнеса, озадаченных безопасностью IT-структур своих предприятий, спрос на подобные услуги весьма высок.

Окинув беглым взглядом весь список причин и взвесив все «за» и «против» можно смело приступать… нет, не к практической части и не к водным процедурам, а для начала к теоретической подготовке.

WEP, WPA, HMAC, PBKDF2 и много других страшных слов

На заре развития беспроводного доступа, в далеком 1997 году, британские ученые как-то не слишком заморачивались с вопросами безопасности, наивно полагая что 40-битного WEP-шифрования со статическим ключем будет более чем достаточно. Но злостные хакеры на пару с талантливыми математиками (среди них отметился также и наш соотечественник Андрей Пышкин) быстро разобрались что к чему, и сети защищенные даже длинным WEP-ключом в целых 104 бита в скором времени стали почему-то приравниваться к открытым. Однако с развитием компьютерной грамотности среди простого населения найти WEP-сеть сейчас стало чуть ли не сложнее чем открытую, поэтому основное внимание мы уделим более часто (т.е. повсеместно) встречающемуся WPA/WPA2.

Основное заблуждение рабочего класса — “я использую WPA2, его не взломать”. В жизни все оказывается совсем иначе. Дело в том, что процедура аутентификации (это страшное слово означает проверку что клиент “свой”) клиента беспроводной сети и в WPA, и WPA2 делится на два больших подвида — упрощенная для персонального использования (WPA-PSK, PreShared Key, т.е. авторизация по паролю) и полноценная для беспроводных сетей предприятий (WPA-Enterprise, или WPA-EAP). Второй вариант подразумевает использование специального сервера авторизации (чаще всего это RADIUS) и, к чести разработчиков, не имеет явных проблем с безопасностью. Чего нельзя сказать об упрощенной “персональной” версии. Ведь пароль, задаваемый пользователем, как правило постоянен (вспомните когда в последний раз вы меняли пароль на своем Wi-Fi  и передается, пусть и в искаженном виде, в эфире, а значит его может услышать не только тот, кому он предназначен.

Конечно разработчики WPA учли горький опыт внедрения WEP и нашпиговали процедуру авторизации разными крутыми динамическими алгоритмами, препятствующими рядовому хакеру быстро прочитать пароль “по воздуху”. В частности, по эфиру от ноутбука (или что там у вас) к точке доступа передается конечно же не сам пароль, а некоторая цифровая каша (хакеры и им сочуствующие называют этот процесс “хендшейк”, от англ. handshake — “рукопожатие”), получаемая в результате пережевывания длинного случайного числа, пароля и названия сети (ESSID) с помощью пары вычислительно сложных итерационных алгоритмов PBKDF2 и HMAC (особенно отличился PBKDF2, заключающийся в последовательном проведении четырех тысяч хеш-преобразований над комбинацией пароль+ESSID).

Очевидно, основной целью разработчиков WPA было как можно сильнее усложнить жизнь кулхацкерам и исключить возможность быстрого подбора пароля брутфорсом, ведь для этого придется проводить расчет PBKDF2/HMAC-свертки для каждого варианта пароля, что, учитывая вычислительную сложность этих алгоритмов и количество возможных комбинаций символов в пароле (а их, т.е. символов, в пароле WPA может быть от 8 до 63), продлится ровно до следующего большого взрыва, а то и подольше. Однако принимая во внимание любовь неискушенных пользователей к паролям вида “12345678” в случае с WPA-PSK (а значит и с WPA2-PSK, см.выше) вполне себе возможна так называемая атака по словарю, которая заключается в переборе заранее подготовленных наиболее часто встречающихся нескольких миллиардов паролей, и если вдруг PBKDF2/HMAC свертка с одним из них даст в точности такой же ответ как и в перехваченном хендшейке — бинго! пароль у нас.

Весь вышеперечисленный матан можно было бы и не читать, самое главное будет написано в следующем предложении. Для успешного взлома WPA/WPA2-PSK нужно поймать качественную запись процедуры обмена ключами между клиентом и точкой доступа (“хендшейк”), знать точное название сети (ESSID) и использовать атаку по словарю, если конечно мы не хотим состариться раньше чем досчитаем брутом хотя бы все комбинации паролей начинающихся на “а”. Об этих этапах и пойдет речь дальше.

От теории — к практике

Что же, поднакопив изрядный багаж теоретических знаний перейдем к практическим занятиям. Для этого сначала определим что нам нужно из “железа” и какой софт в это самое “железо” надо загрузить.

Для перехвата хендшейков сгодится даже самый дохлый нетбук. Все что от него требуется — свободный порт USB для подключения “правильного” адаптера Wi-Fi (можно конечно ловить и встроенным, но это только если атаковать соседа по общаге, т.к. хилый сигнал встроенного адаптера и его непонятная антенна вряд ли смогут пробить хотя бы одну нормальную бетонную стенку, не говоря уже о паре сотен метров до жертвы, которые очень желательно выдерживать чтобы не спалиться . Очень хорошим преимуществом нетбука может стать малый вес (если придется работать на выезде) и способность долго работать от батареи. Для решения задачи подбора пароля вычислительной мощности нетбука (да и полноценного ноутбука) уже будет недостаточно, но об этом мы поговорим чуть позже, сейчас необходимо сосредоточиться на хендшейке и методах его поимки.

Чуть выше я упомянул про “правильный” адаптер Wi-Fi. Чем же он так “правилен”? В первую очередь он должен иметь внешнюю антенну с коэффициентом усиления минимум 3 dBi, лучше 5-7 dBi, подключаемую через разъем (это позволит при необходимости подключить вместо штатного штырька внешнюю направленную антенну и тем самым значительно увеличить убойную дистанцию до жертвы), мощность выходного сигнала адаптера должна быть не менее 500 мВт (или 27 dBm что одно и то же). Сильно гнаться за мощностью адаптера тоже не стоит, так как успех перехвата хендшейка зависит не только от того, насколько громко мы кричим в эфир, но и от того насколько хорошо слышим ответ жертвы, а это как правило обычный ноутбук (или еще хуже — смартфон) со всеми недостатками его встроенного Wi-Fi.

Среди вардрайверов всех поколений наиболее “правильными” являются адаптеры тайваньской фирмы ALPHA Network, например AWUS036H или подобный. Помимо альфы вполне работоспособны изделия фирмы TP-LINK, например TL-WN7200ND, хотя стоит он вдвое дешевле по сравнению с альфой, да и тысячи моделей других производителей, похожих друг на друга как две капли воды, благо вайфайных чипсетов в природе существует не так уж и много.

Итак с “железом” разобрались, ноутбук заряжен и готов к подвигам, а в ближайшей компьютерной лавке закуплен нужный адаптер. Теперь пару слов о софте.

Исторически сложилось, что самой распространенной операционной системой на наших ноутбуках была и остается Windows. В этом и состоит главная беда вардрайвера. Дело в том, что к большинству кошерных адаптеров (а точнее их чипсетов) отсутствуют нормальные виндовые драйвера с поддержкой жизненно-необходимых функций — режима мониторинга и инжекции пакетов, что превращает ноутбук разве что в потенциальную жертву, но ни как не в охотника за хендшейками.

Справедливости ради стоит отметить, что некоторые чипы таки поддерживаются весьма популярной в узких кругах виндовой прогой CommView, но список их настолько убог по сравнению со стоимостью самой программы (или угрызениями совести скачавшего кракнутую версию), что сразу напрочь отбивает желание заниматься “этим” под Windows.

В то же время выход давно придуман, и без ущерба для здоровья вашего ноутбука — это специальный дистрибутив BackTrack либо KALI Linux, в который майнтейнеры заботливо упаковали не только все необходимые нам драйвера вайфайных чипсетов со всякими хитрыми функциями, но и полный набор утилит пакета aircrack-ng, (который скоро ох как нам пригодится), да и много еще чего полезного.

Итак, качаем текущую версию BackTrack 5R1 (далее BT5 или вообще просто BT, т.к. к этому названию нам придется возвращаться еще не раз): http://www.backtrack-linux.org/downloads/

Либо выбираем альтернативу Kali Linux https://www.kali.org/downloads/

Регистрироваться совсем не обязательно, выбираем оконный менеджер по вкусу (WM Flavor — Gnome или KDE), архитектуру нашего ноутбука (скороее всего 32-битная), Image — ISO (не надо нам никаких виртуалок), и метод загрузки — напрямую (Direct) или через торрент-трекер (Torrent). Дистрибутив является образом Live-DVD, т.е. загрузочного диска, поэтому можно его просто нарезать на болванку и загрузиться, или затратить еще немного времени и калорий и сделать загрузочную флешку с помощью вот этой утилиты: Universal USB Installer (качать здесь: www.pendrivelinux.com). Очевидная прелесть второго решения в том, что на флешке можно создать изменяемый (Persistent) раздел с возможностью сохранения файлов, что в будущем окажется весьма кстати. Не буду подробно останавливаться на самом процессе создания загрузочной флешки, скажу только что желательно чтобы ее объем был не менее 4 Гб.

Вставляем флешку (диск, или что там у вас получилось) в ноут и загружаемся с нее. Вуаля, перед нами страшный и ужасный (а на самом деле жутко красивый) рабочий стол BT5! (Когда попросит имя пользователя и пароль введите root и toor соответствено. Если рабочий стол не появился дайте команду startx. Если опять не появился — значит не судьба вам работать в линукс, курите мануалы).

Итак, все прекрасно загрузилось, начинаем изучать что у нас где. Для начала давайте нащупаем наш Wi-Fi адаптер, для этого открываем окно командной строки (Terminal или Konsole в зависимости от типа оконного менеджера) и даем команду 

Code:
root@bt:~# iwconfig

wlan0     IEEE 802.11abgn  ESSID:off/any  
          Mode:Managed  Access Point: Not-Associated   Tx-Power=14 dBm   
          Retry  long limit:7   RTS thr:off   Fragment thr:off
          Encryption key:off
          Power Management:off

wlan1     IEEE 802.11bgn  ESSID:off/any  
          Mode:Managed  Access Point: Not-Associated   Tx-Power=20 dBm   
          Retry  long limit:7   RTS thr:off   Fragment thr:off
          Encryption key:off
          Power Management:off

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

Code:
root@bt:~# airmon-ng start wlan1

и смотрим что получилось:

Code:
root@bt:~# iwconfig

wlan0     IEEE 802.11abgn  ESSID:off/any  
          Mode:Managed  Access Point: Not-Associated   Tx-Power=14 dBm   
          Retry  long limit:7   RTS thr:off   Fragment thr:off
          Encryption key:off
          Power Management:off

wlan1     IEEE 802.11bgn  Mode:Monitor  Tx-Power=20 dBm   
          Retry  long limit:7   RTS thr:off   Fragment thr:off
          Power Management:off

Просто замечательно, но почему параметр TX-Power (мощность передачи) только 20 dBm? У нас же адаптер на 27 dBm? Попробуем добавить мощности (тут главное не переборщить):

Code:
root@bt:~# iwconfig wlan1 txpower 27

Error for wireless request "Set Tx Power" (8B26) :
    SET failed on device wlan1 ; Invalid argument. 

И тут нас постигает первое разочарование — установить мощность больше 20 dBm нельзя! Это запрещено законодательством многих стран, но только не Боливии! Казалось бы причем здесь Боливия, но:

Code:
root@bt:~# iw reg set BO
root@bt:~# iwconfig wlan1 txpower 27

… и все проходит гладко, Боливия нам очень помогла, спасибо ей за это.

Что мы имеем на данном этапе? Наш мощный Wi-Fi адаптер настроен на максимальную мощность в режиме monitor mode и ожидает приказаний на интерфейсе mon0. Самое время осмотреться и прослушать эфир. Это очень просто:

Code:
root@bt:~# airodump-ng mon0

В левом верхнем углу видно как сканируются каналы (если необходимо зафиксировать канал, нужно вызывать airodump-ng с ключом —channel <номера каналов через запятую>), далее идет таблица найденных сетей с указанием (слева направо): BSSID (MAC-адрес сети), уровень приема сигнала в dBm (зависит от чувствительности приемника, на хороших адаптерах -80 dBm это вполне нормальный уровень), количество принятых Beacon frames (это широковещательные пакеты, несущие информацию о сети), число принятых пакетов данных и скорость приема (пакетов в секунду), канал на котором вещает точка доступа, скорость точки доступа в мегабитах, тип аутентификации (OPN — открытая сеть, WEP, WPA, WPA2), тип шифрования, волшебные буковки PSK в случае с WPA/WPA2 (подробности описаны выше в гл.2) и, наконец, название сети, то есть её ESSID. 

Чуть ниже основной таблицы приведена таблица текущих ассоциаций клиентов к точкам. Забегая вперед отмечу, что она тоже важна, так как по ней можно определить активность и MAC-адреса клиентов для последующей их деассоциации.

Из картинки выше следует что нам есть чего ловить — есть и точки доступа, и клиенты с хорошим сигналом. Осталось выбрать жертву (чтобы файл сильно не разбухал можно записывать пакеты только от одной точки доступа дав ключ —bssid <MAC-адрес> или ограничив каналы как указано чуть выше) и дать команду записывать пакеты в файл добавив к вызову ключ -w <префикс названия файла>. Важно: если вы загрузились с DVD запись файла с пакетами необходимо вести на внешнюю флешку или жесткий диск, предварительно примонтировав их командой mount:

Code:
root@bt:~# mkdir /mnt
root@bt:~# mount /dev/sda1 /mnt
root@bt:~# cd /mnt

где /dev/sda1 — файл устройства внешней флешки (найти куда подцепилась флешка в вашем случае можно покопавшись в результатах вывода команды dmesg).

Для примера запустим airodump-ng на запись пакетов только одной сети из списка в файл testcap.cap:

Code:
root@bt:~# airodump-ng --bssid a0:21:b7:a0:71:3c -w testcap mon0

Теперь можно налить чашку кофе и пожевать бутерброд ожидая пока очередной клиент не пожелает прицепиться к точке доступа и подарить нам вожделенный хендшейк. Кстати, после получения хендшейка в правом верхнем углу появится предупреждающая надпись: WPA handshake: A0:21:B7:A0:71:3C. Все, дело сделано, и можно переходить к следующей главе.

Когда все бутерброды подъедены, кофе больше не лезет а хендшейка все нет и нет, в голову приходит светлая мысль что неплохо бы поторопить клиента с хендшейком. Для этого в состав пакета aircrack-ng входит специальная утилита, позволяющая отправлять клиентам запросы на деассоциацию (отсоединение) от точки доступа, после чего клиент снова захочет соединиться, а именно этого мы и ждем. Утилита эта называется aireplay-ng и запускать ее нужно в отдельном окне параллельно с запуском airodump-ng чтобы можно было одновременно записать результаты работы. Запускаем деассоциацию:

Code:
root@bt:~# aireplay-ng --deauth 5 -a a0:21:b7:a0:71:3c -c 00:24:2b:6d:3f:d5 wlan1

где очевидно, что мы проводим 5 сеансов деассоциации клиента 00:24:2b:6d:3f:d5 от точки доступа с BSSID a0:21:b7:a0:71:3c (адрес клиента мы взяли из нижней таблицы ассоциаций airodump-ng, его можно вообще не указывать, тогда деассоциация будет проводиться широковещательным запросом что не так эффективно как хотелось бы).

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

Теперь самое главное. Все, что было описано выше, было описано только в образовательных целях. А все потому что в комплект aircrack-ng входит такая замечательная утилита как besside-ng, которая в автоматическом режиме делает все вышеуказанные операции, сама взламывает WEP и сохраняет хендшейки WPA в отдельный файлик. Запуск этой утилиты прост до безобразия:

Code:
root@bt:~# besside-ng mon0

И это все! Дав эту волшебную команду теперь можно просто сидеть и наблюдать за результатами её бурной деятельности, радуясь за все прибывающие и прибывающие хендшейки (они сохраняются в текущую папку в файл wpa.cap, а лог записывается в файл besside.log). Пароли от WEP-сетей, взломанные besside-ng, можно найти так же в её логе.

Что же, результате гигантской проделанной работы у нас накопились *.cap-файлы содержащие хендшейки и можно смело переходить к главе четвертой. Но давайте все же посмотрим что мы наловили и оценим качество хендшейков.

Быстро оценить, есть ли в файле хендшейки, можно с помощью самого простого вызова aircrack-ng:

Code:
aircrack-ng <имя файла>

Если хендшейк есть aircrack-ng покажет BSSID, ESSID и количество хендшейков для каждой сети:


aircrack-ng видит хендшейк linksys, бро

Однако выше я упомянул, что с помощью aircrack-ng можно только оценить наличие хендшейка, и это неспроста. Дело в том, что aircrack-ng не отличается хорошим EAPOL-парсером и легко может показать наличие хендшейка там, где его нет (или точнее говоря он есть, но нерабочий). Давайте заберемся поглубже в дебри EAPOL-пакетов с помощью Wireshark (ленивым и не слишком любопытным читателям можно не тратить свое драгоценное время и сразу переходить к главе 4).

Открываем в Wireshark наш *.cap-файл и задаем выражение 

Code:
(eapol || wlan.fc.type_subtype == 0x08) && not malformed

в качестве фильтра чтобы увидеть среди груды мусора только интересующие нас пакеты.


Вот они, хендшейки

Итак, что мы видим? Самый певый пакет в списке это Beacon frame, несущий информацию о беспроводной сети. Он есть и указывает на то, что сеть называется ‘dlink’. Бывает что Beacon frame отсутствует в файле, тогда для осуществления атаки мы должны доподлинно знать ESSID сети, причем с учетом того что он регистрозависим (да-да, ‘dlink’, ‘Dlink’ и ‘DLINK’ — это три разных ESSID!) и, например, может содержать пробелы в самых неожиданных местах, например в конце. Задав в таком случае неверный ESSID для атаки мы обречены на провал — пароль не будет найден даже если он есть в словаре! Так что наличие Beacon frame в файле с хендшейком это очевидный плюс.

Далее в файле идут ключевые EAPOL-пакеты, из которых и состоит собственно сам хендшейк. Вообще полноценный EAPOL-хендшейк должен содержать четыре последовательных пакета, от msg (1/4) до msg (4/4), но в данном случае нам не слишком повезло, удалось перехватить только две первых пары, состоящих из msg (1/4) и msg (2/4). Вся прелесть в том, что именно в них передается вся информация о хеше пароля WPA-PSK и именно они нужны для проведения атаки.

Давайте внимательно посмотрим на первую пару msg (1/4) и msg(2/4) (обведена красным прямоугольником). В них точка доступа (Station) 02:22:B0:02:22:B0 передает случайное число ANonce клиенту (Client) 00:18E:00:18E в первом пакете EAPOL-хендшейка и принимает обратно SNonce и MIC, рассчитанные клиентом на основе полученного ANonce. Но обратите внимание на временной промежуток между msg (1/4) и msg (2/4) — он составляет почти целую секунду. Это очень много, и вполне возможно что пакеты msg (1/4) и msg (2/4) относятся к разным хендшейкам (что однозначно приведет к невозможности подобрать пароль даже имея его в словаре), а не имея в перехвате контрольных пакетов msg (3/4) и msg (4/4) проверить это невозможно. Поэтому первый хендшейк имеет весьма сомнительное качество, хотя и выглядит вполне валидным. 

К счастью, в данном случае у нас имеется еще одна пара пакетов msg (1/4) и msg (2/4) с временным промежутком между ними всего лишь 50 миллисекунд. Это с большой долей вероятности указывает на их принадлежность к одному и тому же хендшейку, поэтому именно их мы и выберем для атаки. Пометим Beacon frame и эти пакеты нажав правую кнопку мыши и выбрав Mark packet (toggle) и сохраним их в новый файл, выбрав пункт меню ‘Save As…’ и не забыв поставить галочку на Marked packets:


Сохраним нажитое непосильным трудом!

В заключение главы хочу отметить, что для атаки все же рекомендуется использовать “полноценные” хендшейки, имеющие Beacon frame и всю последовательность EAPOL-пакетов от первого до четвертого. Для этого ваше Wi-Fi-оборудование должно очень хорошо “слышать” и точку доступа, и клиента. К сожалению, в реальной жизни это не всегда возможно, поэтому приходится идти на компромиссы и пытаться “оживлять” полумертвые хендшейки вручную как и было продемонстрировано выше.

От хендшейка — к паролю

Внимательный читатель уже давно понял, что взлом 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 и скачать готовый словарь (не забывайте о таргетировании, ведь довольно наивно будет надеяться на успех гоняя китайский хендшейк по русскому словарю и наоборот)

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

Code:
root@bt:~# aircrack-ng -e <essid> -b <bssid> -w wordlist.txt testcap.cap

На скрине выше 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 паролей в секунду, а это про сравнению с aircrack-ng уже ощутимый (на два порядка) скачок вперед.

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

В рамках статьи для новичков я не буду, пожалуй, углубляться в дебри настройки ATI SDK и pyrit под линукс (отмечу только, что это секас еще тот  ), т.к. это вполне потянет на отдельную статью (коих есть немало в интернетах), да и целевая аудитория, а именно счастливые обладатели топовых радеонов, не так уж и велика, и вполне могут самостоятельно найти необходимый материал. Более подробно как производить буртфорс WPA/WPA2 паролей с помощью GPU вы можете здесь.

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

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

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

[ad name=»Responbl»]

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


EWSA отакуэ (ну что за скорость…  )

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

Сравним работу EWSA с ее по-настоящему бесплатным конкурентом — hashcat-plus. Качаем полный набор hashcat-gui (куда уже входит консольная hashcat-plus) с сайта автора и распаковываем архив в удобное место (установка не требуется). Запускаем 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, но не загружать же BT опять ради такой мелочи! К нашей всеобщей радости разработчик hashcat сделал удобныйонлайн-конвертер , просто загрузите туда ваш *.cap-файл с хендшейком и укажите ESSID, в случае если хендшейк в файле есть вам вернется уже готовый к атаке *.hccap.

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

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

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

Click to rate this post!
[Total: 20 Average: 3.7]
cryptoworld

Специалист в области кибер-безопасности. Работал в ведущих компаниях занимающихся защитой и аналитикой компьютерных угроз. Цель данного блога - простым языком рассказать о сложных моментах защиты IT инфраструктур и сетей.

View Comments

Recent Posts

Лучший адаптер беспроводной сети для взлома Wi-Fi

Чтобы взломать сеть Wi-Fi с помощью Kali Linux, вам нужна беспроводная карта, поддерживающая режим мониторинга…

11 месяцев ago

Как пользоваться инструментом FFmpeg

Работа с консолью считается более эффективной, чем работа с графическим интерфейсом по нескольким причинам.Во-первых, ввод…

11 месяцев ago

Как создать собственный VPN-сервис

Конечно, вы также можете приобрести подписку на соответствующую услугу, но наличие SSH-доступа к компьютеру с…

12 месяцев ago

ChatGPT против HIX Chat: какой чат-бот с искусственным интеллектом лучше?

С тех пор как ChatGPT вышел на арену, возросла потребность в поддержке чата на базе…

12 месяцев ago

Разведка по Wi-Fi и GPS с помощью Sparrow-wifi

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

12 месяцев ago

Как обнаружить угрозы в памяти

Elastic Security стремится превзойти противников в инновациях и обеспечить защиту от новейших технологий злоумышленников. В…

12 месяцев ago