Взлом Wi-Fi для чайников или былинный сказ о том как грамотно подрезать пароль соседской вафли и не сильно при этом огрести Задолбало читать статьи и смотреть видео. Ничего не получается. Плачу 100$ человеку, который меня сам лично на практике пошагово научит взламывать сети WiFi. Шифрование WPA/WPA2. snakemc Пролог Wi-Fi сейчас есть практически в каждой квартире. Невидимые нити беспроводных каналов опутали мегаполисы и села, дома и дачи, гаражи и офисы. Несмотря на кажущуюся защищенность (“как, я же задавала пароль?!”) ушлые работники темной стороны IT каким-то образом обходят все эти ваши защиты и нагло влезают в вашу частную беспроводную собственность, чувствуя себя там как дома. При этом для многих простых юзеров эта технология так и остается загадкой, передаваемой из одного поколения хакеров другому. На просторах сети можно найти десятки обрывочных статей и сотни инструкций о том как взломать вай-фай, страждущим предлагается просмотреть обучающее видео с подбором пароля “qwerty123”, но полноценного руководства что называется “от и до” по этой теме я пока не встречал. Что собственно и решил восполнить. Глава 1. Ищи кому выгодно Давайте разберемся, зачем же добропорядочные (и не очень) граждане пытаются взломать Wi-Fi соседа? Итак, тому может быть несколько причин: Халявный интернет. Да-да, тысячи школьников еще в эпоху фидо и модемных соединений лет пятнадцать назад безуспешно искали в поисковиках тот самый волшебный “крякер интернета”, скачивая себе на персоналки целые тонны троянов и прочей нечисти. Бесплатный доступ к Сети был пределом мечтаний целого поколения. Сейчас ситуация значительно изменилась, дешевые безлимитные тарифы доступны практически везде, но иметь в круглосуточном резерве запасной канальчик на случай, если вдруг твой провайдер временно склеит ласты, никому не помешает. Кроме того, нередки ситуации типа “смотри-ка, а у него канал пошире чем у меня будет”, что тоже как бы намекает на полезность происходящего. Путешественники (и моряки в частности). Когда Wi-Fi в отеле стоит 5 евро в час, а связь с Родиной нужна постоянно и желательно в номере и забесплатно, практическую ценность заломанного Wi-Fi ощущаешь как никогда остро. В излишних комментариях это я думаю не нуждается. Снифанье трафика жертвы и последующий взлом аккаунтов почты, социальных сетей, асек и прочее хулиганство. Имея на руках пароль от Wi-Fi мы имеем возможность расшифровать весь передаваемый “по воздуху” трафик, включая сессии аутентификации на разных сайтах, куки и много еще чего вкусного. Промышленый шпионаж. В настоящее время офисный Wi-Fi, по-быстрому настроенный криворуким админом, является для подкованного человека просто парадным входом в ЛВС организации, а там можно найти ох как много интересного, от элементарного снифанья почты и асек до секретных документов в расшаренных папках и файлопомойках. Пентестинг (от англ. penetration testing - тестирование на проникновение). Пентестеры - это по сути те же хакеры (а зачастую это они и есть), но действующие по заказу и с согласия владельца сети. В их задачи входит проверка безопасности сети и устойчивости к проникновению извне (или нарушению ее работы изнутри). Учитывая стоимость подобного рода услуг вряд ли ваш сосед наймет такого специалиста (если конечно он не олигарх), а вот среди владельцев крупного и среднего бизнеса, озадаченных безопасностью IT-структур своих предприятий, спрос на подобные услуги весьма высок. Окинув беглым взглядом весь список причин и взвесив все "за" и "против" можно смело приступать... нет, не к практической части и не к водным процедурам, а для начала к теоретической подготовке. Глава 2. WEP, WPA, HMAC, PBKDF2 и много других страшных слов На заре развития беспроводного доступа, в далеком 1997 году, британские ученые как-то не слишком заморачивались с вопросами безопасности, наивно полагая что 40-битного WEP-шифрования со статическим ключем будет более чем достаточно, LOL. Но злостные хакеры на пару с талантливыми математиками (среди них отметился также и наш соотечественник Андрей Пышкин, что приятно) быстро разобрались что к чему, и сети защищенные даже длинным 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) и использовать атаку по словарю, если конечно мы не хотим состариться раньше чем досчитаем брутом хотя бы все комбинации паролей начинающихся на “а”. Об этих этапах и пойдет речь в последующих главах. Глава 3. От теории - к практике Что же, поднакопив изрядный багаж теоретических знаний перейдем к практическим занятиям. Для этого сначала определим что нам нужно из “железа” и какой софт в это самое “железо” надо загрузить. Для перехвата хендшейков сгодится даже самый дохлый нетбук. Все что от него требуется - свободный порт 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 Linux, в который майнтейнеры заботливо упаковали не только все необходимые нам драйвера вайфайных чипсетов со всякими хитрыми функциями, но и полный набор утилит пакета aircrack-ng, (который скоро ох как нам пригодится), да и много еще чего полезного. CommView в действии - посмотрели и забыли как страшный сон Итак, качаем текущую версию BackTrack 5R1 (далее BT5 или вообще просто BT, т.к. к этому названию нам придется возвращаться еще не раз): http://www.backtrack-linux.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. Если опять не появился - значит не судьба вам работать в линукс, курите мануалы). BackTrack: Finish him! Итак, все прекрасно загрузилось, начинаем изучать что у нас где. Для начала давайте нащупаем наш 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 Теперь все внимание на экран! Красным обведена сеть с WEP - большая редкость по нынешним временам В левом верхнем углу видно как сканируются каналы (если необходимо зафиксировать канал, нужно вызывать 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-оборудование должно очень хорошо “слышать” и точку доступа, и клиента. К сожалению, в реальной жизни это не всегда возможно, поэтому приходится идти на компромиссы и пытаться “оживлять” полумертвые хендшейки вручную как и было продемонстрировано выше. Продолжение следует
Глава 4. От хендшейка - к паролю Внимательный читатель уже давно понял, что взлом 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 чтобы создавать различные комбинации из базовых слов Подготовив какой-никакой словарь (обзовем его для наглядности wordlist.txt) переходим непосредственно к подбору пароля. Запускаем aircrack-ng со следующими параметрами: Code: root@bt:~# aircrack-ng -e <essid> -b <bssid> -w wordlist.txt testcap.cap Ура! Пароль dictionary нашелся за 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 паролей в секунду, а это про сравнению с aircrack-ng уже ощутимый (на два порядка) скачок вперед. Монстр ATI RADEON 6990 - 3000 шейдеров, 165.000 WPA паролей в секунду. Кто больше? Конечно, подобные цифры свойственны только топовым адаптерам ATI RADEON (NVIDIA со своей технологией CUDA пока откровенно сливает ATI в плане скорости перебора WPA ввиду явных архитектурных преимуществ последних). Но за все приходится платить, хороший адаптер стоит хороших денег, да и энергии кушает немало. К тому же надо очень внимательно следить за разгоном и охлаждением GPU, не поддаваясь на провокации тру геймеров, гонящих свои адаптеры вплоть до появления артефактов на экране. Ведь для них артефакты (а по сути аппаратные ошибки вычислителей GPU из-за работы на экстремальных частотах) являются только мимолетным мусором на экране, а для нас череваты пропущенным паролем. В рамках статьи для новичков я не буду, пожалуй, углубляться в дебри настройки ATI SDK и pyrit под линукс (отмечу только, что это секас еще тот ), т.к. это вполне потянет на отдельную статью (коих есть немало в интернетах), да и целевая аудитория, а именно счастливые обладатели топовых радеонов, не так уж и велика, и вполне могут самостоятельно найти необходимый материал. Как ни парадоксально, для подбора 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 в списке не видны - у вас явно проблема с драйверами), а так же укажите программе ваши словари в настройках словарей. Запрягаем всех лошадок... Жмем “Импорт данных -> Импортировать файл 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 одновременно. Выбор за вами. _________________________ Продолжение следует
Молодец. Огромное тебе спасибо. Так как и правда, нормально разжеванной и цельной статьи о взломе Wi-Fi не встречал. Давно хотел почитать что то толковое в этом направлении.
Вдумчиво прочитал от А до Я, жду продолжения. Существует ли софт под windows для перебора с помощью GPU?
Существует - Elcomsoft EWSA. Но ввиду отсутствия у автора сейчас этого самого EWSA и опыта работы с ним (ввиду наличия бесплатных альтернатив в виде того же pyrit) согласен, эта тема на данный момент как-то осталась нераскрытой. Доработаем, спасибо за замечание
очень интересная статья, был бы wi-fi адаптер с радостью попробовал бы, так что пошел искать его))) кстати хорошо будет если кто подкинет онлайн сервис по бруту wpa ключей.
Предлагаю чтобы не захламлять ветку технические вопросы по тематике статьи вести в тематическом подфоруме вот в этом топике. Еще у нас есть тема для мелких вопросов по вардрайвингу, велкам Еще просьба к модераторам раздела по возможности прилепить главу 4 к основной статье, у меня не получается, движок форума не дает.
Славная статейка получилась. Молодчина, все мануалы собраны вместе, перечитанные, обдуманные, дополненные и адаптированные для "чайников". Единственное, что хотелось бы подправить, это команды в Linux BT, и первое, о чем скажу, это перевод адаптера в режим мониторинга эфира - это предпочтительно делать не посредством iwconfig, а программкой из пакета aircrack к-рая называется airmon-ng: airmon-nhg start wlan0, в системе появится новый интерфейс mon0 а wlan0 так и продолжит работать, вплоть до того, что mon0 будет натравлен на таргет сеть, а wlan0 может продолжать работу, например в домашней сети WLAN. Еще один момент - если запустить aireplay-ng без параметров, то можно увидеть справку по доступным ключам, а там хорошо видно, что команда --deauth заменяется -0, что для чайника, не привыкшего работать в консоли удобнее (меньше печатать с клавы - меньше синтаксических ошибок), собственно, она одна нам и нужна. Не лишним так же было бы сказать, что чтобы протестировать сеть и адаптер на возможность инжекции пакетов используется aireplay-ng с параметром -9, т.е., aireplay-ng -9 mon0. Далее идем. iwconfig отображает имеющиеся в системе беспроводные интерфейсы, но не показывает их МАС адреса, в ситуации с двумя и более картами, трудно сообразить (чайнику особенно) где какая карточка, на помощь приходит команда ifconfig, но иногда ВТ запускается с неподнятыми интерфейсами сети. Тогда ifconfig ничего не выведет на экран, в этом случае можно дать команду ifconfig -a , где ключ -а который заставляет ifconfig показать все имеющиеся в системе адаптеры (проводные и беспроводные) независимо от их состояния и их МАС адреса, а адреса нам нужны, чтобы ориентироваться в своем железе, в конце концов мы работаем с лив-дистрибутива и настройки сбиваются при очередной перезагрузке. Это плохо. Есть способ сохранять параметры, но об этом детальнее могу сказать в случае необходимости.
По поводу софта под Windows могу порекомендовать Hashcat. Сайт: http://hashcat.net/oclhashcat-plus/, преимуществ существенных два: скорость перебора превышает EWSA в два раза и она абсолютно бесплатна, там же есть ГУИ: http://hashcat.net/hashcat-gui/, там все предельно ясно, но с одним НО - файл .cap нужно конвертировать в hccap, это можно проделать на самом сайте - http://hashcat.net/cap2hccap/
С замечаниями согласен, про airmon-ng хотел и сам дописать (кстати это скрипт который в результате все равно вызывает iwconfig $iface mode monitor ) к сожалению движок форума почему-то не дает мне вносить правки в первый пост так что устранить пока не получается Чтобы настройки не слетали надо делать флешку с Persistent разделом, очень удобно.
ТС, предлагаю добавить обзор проникновения в сеть при условии фильтра MAC адресов на точке. На практике еще не пробовал, но по логике вещей это вполне осуществимо. Какие есть идеи на этот счет?
Про безпалевное подключение как раз планируется написать в главе пятой. В том числе и про фильтрацию MAC-адресов. Идеи? Ну кроме как поставить себе один из разрешенных на точке MAC-адресов и ждать пока хозяин освободит кормушку ничего больше в голову не приходит. Ну можно еще попытаться применить дефолтный пароль к админке роутера или соснифать пароль в случае Http-basic аутентификации в админке и потом добавить еще один мак-адресок в таблицу роутера, но это уже точно не для чайников )))
Да мне кажется статейка уже с самого начала вышла за пределы рядовых чайников. Темы затронуты весьма серьезные, и доходы от целевого использования таких знаний могут быть не малыми. По сути подбор ключа сети аналогичен возможности вставить Ethernet шнурок в чужой сервер.
Немного дополнил Главу 4 (описание программ для перебора с использованием GPU под Windows). Глава 5. Подключаемся! [ её еще предстоит написать ]
Глава 6. Основные мифы и заблуждения пользователей Wi-Fi Заблуждение первое - “А зачем ставить пароль на вай-фай, у меня все равно безлимит, пусть люди пользуются.” Только не забывайте что в открытой сети весь ваш трафик виден снаружи (включая всякие интересные моменты ), кроме того вы можете потом устать давать показания людям в погонах, когда кто-нибудь что-нибудь напишет, да еще и с вашего IP. Надеюсь, этих причин уже вполне достаточно чтобы поставить пароль на свой Wi-Fi. Заблуждение второе - “Я использую WPA2, его не взломать”. Этот вопрос мы уже обсуждали в гл.2, но не лишним будет повторить еще раз. WPA-PSK и WPA2-PSK имеют одинаковые алгоритмы аутентификации, различие только в том что в WPA2 реализован более надежный алгоритм шифрования трафика CCMP вместо проблемного TKIP. Поэтому и взламывается пароль одинаково что для WPA-PSK, что и для WPA2-PSK. Так что если вы не хотите чтобы вас взломали - используйте WPA2, отключите WPS, вложите всю свою фантазию в длинный случайный пароль или настраивайте сервер RADIUS. Точка. Заблуждение третье - “Я настроил фильтр по мак-адресу на роутере, теперь к нему никто не сможет подключиться кроме меня”. Да, только не забывайте что ваш MAC-адрес светится в каждом переданном вами пакете и, соответственно, виден снифферу. И ничто не помешает злоумышленнику назначить своему адаптеру ваш MAC-адрес, дождаться пока вы покинете сеть и подключиться (при условии что пароль он уже вычислил заранее). Кроме того, возможен и более извращенный способ, он может подслушать сессию вашей HTTP basic-авторизации когда вы входите в админку вашего роутера (а пароль к админке при этом передается простым текстом без шифрования), и просто добавить потом еще пару MAС-адресов в таблицу разрешенных Заблуждение четвертое - “А я спрятал свою сеть отключив SSID Broadcast в настройках роутера, теперь точно не взломаете, вы же не знаете названия моей сети”. Этот способ (а именно отключение передачи роутером широковещательных Beacon frames с рекламой возможностей вашей беспроводной сети) был бы просто идеальной защитой (напомню, в WPA ESSID сети наравне с паролем участвует в процедуре хеширования, и спрятав ESSID вы бы обезоружили взломщика), если бы не одно ”но”. Для лучшего понимания этого “но” давайте на реальном примере настроим “спрятанную” сеть на роутере (назовем ее MyHiddenNetwork для примера) и подключимся к ней. Для подключения к “спрятанной” беспроводной сети в Windows нужно создать ее профиль, где придется указать все ее параметры - название сети, тип безопасности, пароль. Стоп, а что за странная приписка на скриншоте внизу? Теперь давайте подключимся к нашей “спрятанной” сети и посмотрим что при этом происходит в эфире: Интересно, да? Клиент пытается найти роутер используя его так надежно “спрятанный” ESSID с помощью Probe request, и тот отвечает взаимностью! Мало того, что ESSID виден как на ладони, к тому же где бы вы не находились, ваш ноутбук будет постоянно долбить Probe request-ы в эфир, рассказывая всем вокруг, что вы являетесь счастливым обладателем подключения к “спрятанной” сети MyHiddenNetwork. Вот такая вот безопасность, бро. Заблуждение пятое - “Скоро у меня докачаются WPA Rainbow Tables 34Gb и я взломаю любой WPA без всяких GPU”. Радужные таблицы (Rainbow Tables) - это не новый способ взлома и не замена GPU. Радужные таблицы всего лишь позволяют сэкономить немного времени и электричества за счет записи результатов расчета сверток ESSID+пароль для всех паролей из словаря на жесткий диск в файл или в базу данных. Размерчик такого файла (при соответствующем словаре) получается довольно приличный, а генерировать его надо для каждого ESSID-а свой. Поэтому применение радужных таблиц имеет смысл только при конвеерной обработке хендшейков, да и то только для первой десятки, сотни, тысячи популярных ESSID-ов (нужное подчеркнуть в зависимости от объема ваших дисков). Профит от радужных таблиц - в скорости вычислений (раз в десять выше чем считать на GPU). Но пароль все равно должен быть в словаре, никуда от этого не деться. [ здесь будут еще заблуждения ] Вместо эпилога Отвечая на небольшую критику в каментах, хочу признаться, что я не ставил целью своей статьи подготовить из рядового читателя супер-профессионала по взлому беспроводных сетей и тем самым нанести непоправимый ущерб народному хозяйству страны. Те, кому это необходимо, и сами вполне могут найти всю необходимую информацию в интернете. Целью статьи скорее являлось привлечение внимания к общим (хотя и давно известным) проблемам безопасности беспроводных сетей. Пожалуйста используйте полученную информацию только по назначению - для проверки безопасности своих собственных сетей и никак иначе Удачи
про Gerix видно никто не слышал, что есть такое в BT. в 5 версии изменили его расположение, думаю найдете