Практика взлома беспроводных сетей
Пособие по аудиту беспроводных сетей стандарта 802.11a/b/g
Методы защиты беспроводных сетей
Режим скрытого идентификатора сети SSID
Набор программного обеспечения
Взлом беспроводных сетей с использованием Live CD-диска BackTrack
Взлом беспроводных сетей с помощью пакета aircrack-ng 0.6.2-win и ОС Windows XP
Обход защиты фильтра по MAC-адресам
Последние несколько лет наблюдается расцвет беспроводных технологий. Все большую популярность приобретают сети Wi-Fi (сети стандартов 802.11a/b/g), и если раньше речь шла преимущественно об использовании беспроводных сетей в офисах и хот-спотах, то теперь они широко применяются и в домашних условиях, и для развертывания мобильных офисов (офисы в условиях командировок). Специально для домашних пользователей и небольших офисов продаются точки беспроводного доступа и беспроводные маршрутизаторы класса SOHO, а для мобильных пользователей — карманные беспроводные маршрутизаторы. Однако, принимая решение о переходе к беспроводной сети, следует помнить, что на нынешнем этапе развития она имеет один существенный недостаток — несовершенство в плане безопасности. В данной статье мы расскажем о наиболее уязвимых местах беспроводных сетей и на практических примерах покажем, каким образом они взламываются. Полученные знания можно с успехом использовать для аудита безопасности беспроводных сетей, что позволит избежать традиционных ошибок, допускаемых при развертывании беспроводных сетей. Сначала мы рассмотрим основные меры безопасности, применяемые сегодня для защиты беспроводных сетей, а затем расскажем о том, как они преодолеваются злоумышленниками.
Методы защиты беспроводных сетей
Стандарты беспроводных сетей 802.11a/b/g предусматривают несколько механизмов обеспечения безопасности:
- режим аутентификации и шифрования данных по протоколу WEP (Wired Equivalent Privacy);
- режим аутентификации и шифрования данных по протоколу WPA (Wi-Fi Protected Access);
- фильтрация по MAC-адресам;
- использование режима скрытого идентификатора сети.
Протокол WEP
Все современные беспроводные устройства (точки доступа, беспроводные адаптеры и маршрутизаторы) поддерживают протокол безопасности WEP, который был изначально заложен в спецификацию беспроводных сетей IEEE 802.11.
Протокол WEP позволяет шифровать поток передаваемых данных на основе алгоритма RC4 с ключом размером 64 или 128 бит. Некоторые устройства поддерживают также ключи в 152, 256 и 512 бит, однако это скорее исключение из правила. Ключи имеют так называемую статическую составляющую длиной 40 и 104 бит соответственно для 64- и 128-битных ключей, а также дополнительную динамическую составляющую размером 24 бита, называемую вектором инициализации (Initialization Vector, IV).
На простейшем уровне процедура WEP-шифрования выглядит следующим образом. Первоначально передаваемые в пакете данные проверяются на целостность (алгоритм CRC-32), после чего контрольная сумма (Integrity Check Value, ICV) добавляется в служебное поле заголовка пакета. Далее генерируется 24-битный вектор инициализации (IV), к которому добавляется статический (40- или 104-битный) секретный ключ. Полученный таким образом 64- или 128-битный ключ является исходным ключом для генерации псевдослучайного числа, используемого для шифрования данных. Далее данные смешиваются (шифруются) с помощью логической операции XOR с псевдослучайной ключевой последовательностью, а вектор инициализации добавляется в служебное поле кадра.
На приемной стороне данные могут быть расшифрованы, поскольку вместе с ними передается информация о векторе инициализации, а статическая составляющая ключа хранится у пользователя, которому передаются данные.
Протокол WEP предусматривает два способа аутентификации пользователей: Open System (открытая) и Shared Key (общая). При открытой аутентификации собственно никакой аутентификации не происходит, то есть получить доступ в беспроводную сеть может любой пользователь. Однако даже в случае открытой системы допускается применение WEP-шифрования данных.
Протокол WAP
В 2003 году был представлен еще один стандарт безопасности — WPA, главной особенностью которого является технология динамической генерации ключей шифрования данных, построенная на базе протокола TKIP (Temporal Key Integrity Protocol), представляющего собой дальнейшее развитие алгоритма шифрования RC4. По протоколу TKIP сетевые устройства работают с 48-битовым вектором инициализации (в отличие от 24-битового вектора WEP) и реализуют правила изменения последовательности его битов, что исключает повторное использование ключей. В протоколе TKIP предусмотрена генерация нового, 128-битного ключа для каждого передаваемого пакета. Кроме того, контрольные криптографические суммы в WPA рассчитываются по новому методу — MIC (Message Integrity Code). В каждый кадр здесь помещается специальный восьмибайтный код целостности сообщения, проверка которого позволяет отражать атаки с применением подложных пакетов. В итоге получается, что каждый передаваемый по сети пакет данных имеет собственный уникальный ключ, а каждое устройство беспроводной сети наделяется динамически изменяемым ключом.
Помимо этого протокол WPA поддерживает шифрование по усовершенствованному стандарту AES (Advanced Encryption Standard), который отличается более стойким, по сравнению с протоколами WEP и TKIP, криптоалгоритмом.
При развертывании беспроводных сетей в домашних условиях или в небольших офисах обычно используется вариант протокола безопасности WPA на основе общих ключей — WPA-PSK (Pre Shared Key). В дальнейшем мы будем рассматривать только вариант WPA-PSK, не касаясь вариантов протокола WPA, ориентированных на корпоративные сети, где авторизация пользователей производится на отдельном RADIUS-сервере.
При использовании WPA-PSK в настройках точки доступа и профилях беспроводного соединения клиентов указывается пароль длиной от 8 до 63 символов.
Фильтрация MAC-адресов
Фильтрация MAC-адресов, которая поддерживается всеми современными точками доступа и беспроводными маршрутизаторами, хотя и не является составной частью стандарта 802.11, тем не менее, как считается, позволяет повысить уровень безопасности беспроводной сети. Для реализации данной функции в настройках точки доступа создается таблица MAC-адресов беспроводных адаптеров клиентов, авторизованных для работы в данной сети.
Режим скрытого идентификатора сети SSID
Еще одна мера предосторожности, которую часто используют в беспроводных сетях, — это режим скрытого идентификатора сети. Каждой беспроводной сети назначается свой уникальный идентификатор (SSID), который представляет собой название сети. При попытке пользователя войти в сеть драйвер беспроводного адаптера прежде сканирует эфир на предмет наличия в ней беспроводных сетей. При использовании режима скрытого идентификатора (как правило, этот режим называется Hide SSID) сеть не отображается в списке доступных и подключиться к ней можно только в том случае, если, во-первых, точно известен ее SSID, а во-вторых, заранее создан профиль подключения к этой сети.
Взлом беспроводных сетей
Ознакомившись с основными методами защиты сетей стандартов 802.11a/b/g, рассмотрим способы их преодоления. Отметим, что для взлома WEP- и WPA-сетей используется один и тот же инструментарий, поэтому сначала расскажем, что входит в арсенал злоумышленника.
Прежде всего нам потребуется ноутбук с беспроводным адаптером. Основная проблема, которая возникает в процессе подбора инструментов для взлома беспроводных сетей, — это обеспечение совместимости между чипом беспроводного адаптера, используемым программным обеспечением, и операционной системой.
Выбор беспроводного адаптера
Дело в том, что большинство утилит, позволяющих взламывать беспроводные сети, «заточены» под Linux-системы. Существуют версии некоторых утилит и под Windows XP. Однако, в зависимости от чипа беспроводного адаптера, определенные беспроводные карты можно использовать с утилитами как под Linux-, так и под Windows XP-системы, а некоторые беспроводные адаптеры могут применяться с утилитами только под Linux- либо только под Windows XP-системы. Имеются беспроводные адаптеры, которые не поддерживаются ни Linux-, ни Windows XP-утилитами. Кроме того, есть такие чипы, которые хотя и поддерживаются утилитами, работают крайне медленно (в смысле захвата и анализа пакетов).
Дело в том, что для выполнения задачи взлома беспроводных сетей необходимы специальные (нестандартные) драйверы для сетевых беспроводных адаптеров. Штатными режимами любого беспроводного адаптера считаются Infrastructure (Basic Service Set, BSS) и ad-hoc (Independent Basic Service Set, IBSS). В режиме Infrastructure каждый клиент подключен к сети через точку доступа, а в режиме ad-hoc беспроводные адаптеры могут общаться друг с другом напрямую, без использования точки доступа. Однако оба эти режима не позволяют беспроводному адаптеру прослушивать эфир и перехватывать пакеты. И в том, и в другом случае сетевой адаптер будет ловить пакеты, которые предназначены лишь для той сети, на которую он настроен. Для того чтобы можно было увидеть другие сети (имеющие скрытый идентификатор ESSID) и захватывать пакеты, существует специальный режим мониторинга (Monitor mode), при переводе в который адаптер не ассоциируется ни с какой конкретной сетью и ловит все доступные пакеты. Обычно драйверы, поставляемые производителем беспроводного адаптера, не поддерживают режим мониторинга, и для того, чтобы задействовать его, необходимо установить специальные драйверы, зачастую написанные группой сторонних разработчиков. Следует сразу отметить, что для операционных систем Windows такие специальные драйверы существуют лишь для беспроводных адаптеров, основанных на чипах Hermes, Realtek, Aironet и Atheros. Поддержка драйвером этого режима для операционных систем семейства Linux/BSD во многом определяется открытостью спецификаций на карту, однако список поддерживаемых устройств значительно шире, чем для семейства Windows. Драйверы для систем на ОС Linux/BSD с поддержкой режима мониторинга можно найти для беспроводных адаптеров на основе следующих чипсетов: Prism, Orinoco, Atheros, Ralink, Aironet, Realtek, Hermes и Intel, при этом драйверы на основе чипов Intel подходят далеко не ко всем устройствам.
В настоящее время все ноутбуки, основанные на мобильной технологии Intel Centrino, имеют встроенные беспроводные адаптеры на базе чипов от Intel (чипы IPW2100, IPW2200, IPW2915, IPW3945), однако для наших целей эти адаптеры подходят плохо — хотя они совместимы с Linux-утилитами, используемыми для взлома, работают эти чипы крайне медленно, а с Windows-утилитами вообще несовместимы.
Хорошим выбором можно считать беспроводные адаптеры PCMCIA на чипах серии Atheros, Prism 2 или Prism 3 (беспроводные адаптеры Gigabyte и D-Link).
Выбор операционной системы
Относительно выбора операционной системы можно дать следующие рекомендации. Linux-системы для этих целей более предпочтительны, поскольку при использовании Linux набор возможных инструментов гораздо шире, да и работают Linux-утилиты значительно быстрее. Но это вовсе не означает, что нельзя применять Windows XP вместе с Windows-утилитами. В дальнейшем мы рассмотрим оба варианта взлома беспроводных сетей — то есть с использованием и Linux-, и Windows-утилит. При этом мы прекрасно понимаем, что далеко не все пользователи спешат перейти с Windows на Linux. При всех своих недостатках ОС Windows распространена куда более широко, к тому же для начинающего пользователя она гораздо проще в освоении. Поэтому оптимальным, на наш взгляд, вариантом является применение на ноутбуке в качестве основной операционной системы Windows XP, а для задач взлома беспроводной сети — ОС Linux Live CD, запускающейся с CD-диска и не требующей инсталляции на жесткий диск компьютера. Лучшим решением в нашем случае будет диск BackTrack, который построен на основе ОС Linux (ядро версии 2.6.18.3) и содержит все необходимые пакеты инструментов для взлома сетей. Образ данного диска можно скачать с сайта по ссылке: http://www.remote-exploit.org/backtrack.html.
Набор программного обеспечения
Традиционно для взлома беспроводных сетей используется программный пакет aircrack, который существует в версии как для Windows XP (aircrack-ng 0.6.2-win), так и для Linux (aircrack-ng 0.7). Данный пакет распространяется абсолютно бесплатно, и его можно скачать с официального сайта www.aircrack-ng.org. Искать какие-либо другие утилиты просто не имеет смысла, поскольку данный пакет является лучшим в своем классе решением. Кроме того, он (естественно, Linux-версия) входит в диск BackTrack.
Взлом беспроводных сетей с использованием Live CD-диска BackTrack
Итак, независимо от того, какая операционная система у вас установлена на ноутбуке, для взлома беспроводной сети мы воспользуемся загрузочным диском BackTrack. Отметим, что кроме инструментария, нужного нам для взлома беспроводной сети, данный диск содержит множество других утилит, позволяющих производить аудит сетей (сканеры портов, снифферы и т.д.). Кстати, такой диск полезно иметь любому системному администратору, занимающемуся аудитом сетей.
Взлом любой беспроводной сети с использованием диска BackTrack производится в три этапа (табл. 1):
- cбор информации о беспроводной сети;
- захват пакетов;
- анализ пакетов.
На первом этапе необходимо собрать детальную информацию о беспроводной сети, которая подвергается взлому: MAC-адреса точки доступа и активного клиента беспроводной сети, название сети (идентификатор сети) и тип используемого шифрования. Для этого применяются утилиты airmon-ng, airodump-ng и Kismet — первая из них необходима для настройки драйвера беспроводного сетевого адаптера на режим мониторинга беспроводной сети, а остальные две позволяют получить необходимую информацию о беспроводной сети. Все эти утилиты уже имеются на диске BackTrack.
Таблица 1. Этапы взлома беспроводной сети с использованием Live CD-диска BackTrack
Номер этапа |
Описание |
Используемые утилиты |
Результат |
|
WEP |
WPA-PSK |
|||
1 |
Сбор информации о беспроводной сети |
airmon-ng airodump-ng Kismet |
MAC-адрес точки доступа, MAC-адрес активного клиента, тип сети, идентификатор сети, тип шифрования (WEP, WPA-PSK), номер канала связи |
|
2 |
Перехват пакетов |
airodump-ng Kismet airoplay-ng |
Файл, содержащий IV-пакеты |
Файл, содержащий пакеты с информацией об аутентификации клиента в сети |
3 |
Анализ пакетов |
aircrack-ng |
Подбор ключа |
Подбор пароля |
На следующем этапе производится захват пакетов с использованием утилиты airodump-ng. В том случае, когда в сети применяется WEP-шифрование, необходимо собрать IV-пакеты, содержащие векторы инициализации. Если трафик в сети невысокий (например, клиент неактивен), то дополнительно для увеличения трафика между клиентом и точкой доступа можно использовать утилиту airoplay-ng.
Если же в сети применяется WPA-PSK-шифрование, то необходимо собрать пакеты, в которых содержится информация о процедуре аутентификации клиента в сети (процедура handshake). Для того чтобы заставить клиента пройти процедуру аутентификации в сети, можно с помощью утилиты airoplay-ng инициировать процесс его принудительного отключения от сети с последующим восстановлением соединения.
На последнем этапе производится анализ перехваченной информации посредством утилиты aircrack-ng. В случае WEP-шифрования вероятность подбора ключа зависит от количества собранных IV-пакетов, а WPA-PSK-шифрования — от словаря, используемого для подбора пароля.
Практические примеры
После краткого описания процедуры взлома беспроводной сети перейдем к рассмотрению практических примеров с подробным описанием каждого этапа и используемых утилит.
В нашем случае мы имели дело с экспериментальной сетью, состоящей из точки доступа D-Link DWL-7000AP и клиента сети с беспроводным PCI-адаптером Gigabyte GN-WPEAG.
Для взлома сети мы применяли ноутбук с беспроводным PCMCIA-адаптером Gigabyte GN-WMAG на основе чипа Atheros. Отметим, что при использовании диска BackTrack никаких дополнительных драйверов для адаптера Gigabyte GN-WPEAG не требуется — все уже имеется на диске.
Этап 1. Сбор информации о беспроводной сети
Итак, на первом этапе нам нужно собрать информацию о беспроводной сети. Вставляем в ноутбук беспроводной адаптер и загружаем с CD-диска операционную систему. Затем вызываем консоль и запускаем утилиту airmon-ng, входящую в пакет aircrack-ng.
Данная утилита позволяет определить имеющиеся беспроводные интерфейсы и назначить режим мониторинга сети на один из доступных интерфейсов.
Синтаксис использования команды airmon-ng следующий:
airmon-ng <start|stop> <interface> [channel],
где опции <start|stop> определяют начало или останов режима мониторинга, <interface> — беспроводной интерфейс, подвергнутый мониторингу, а необязательный параметр [channel] задает номер канала в беспроводной сети, который подвергнут мониторингу.
Первоначально команда airmon-ng задается без параметров, что позволяет получить список доступных беспроводных интерфейсов. К примеру, в нашем случае ответ на команду airmon-ng был следующий:
Usage:airmon-ng <start|stop> <interface> [channel]
Interface Chipset Driver
wifi0 Atheros madwifi-ng
ath0 Atheros madwifi-ng VAP (parent: wifi0)
Выбрав в качестве беспроводного интерфейса wifi0, вводим команду airmon-ng start wifi0. В результате получаем еще один интерфейс ath1, который находится в режиме мониторинга (рис. 1).
Рис. 1. Установка режима мониторинга беспроводной сети
Далее необходимо запустить утилиту airodump-ng, применяемую одновременно и для захвата пакетов в беспроводных сетях стандарта 802.11, и для сбора информации о беспроводной сети. Синтаксис использования команды следующий:
airodump-ng <options> <interface>.
Возможные опции команды отображены в табл. 2.
Таблица 2. Возможные опции команды airodump-ng
Опции |
Возможное значение |
Описание |
--ivs |
— |
Сохранять только IV-пакеты |
--gpsd |
— |
Использовать демон GPS. В этом случае также будут записываться координаты точки приема |
--write (или -w) |
Название файла |
Указание названия файла для записи. При указании только имени файла он будет сохраняться в рабочей директории программы |
--beacons |
Записывать все пакеты без фильтрации |
|
--channel |
Номер канала (от 1 до 11) |
Указание номера канала. По умолчанию происходит прослушивание всех каналов |
--band |
a, b, g |
Указание протокола 802.11a/b/g |
В нашем случае в режим мониторинга установлен интерфейс ath1.
Однако пока мы не имеем информации о типе сети (802.11a/b/g), типе шифрования в сети, а следовательно, не знаем, какие пакеты нужно перехватывать (все или только IV-пакеты). Поэтому первоначально не стоит использовать опции в команде airodump-ng, а нужно указать только интерфейс — это позволит нам собрать нужную информацию о сети.
Таким образом, на первом этапе запускаем команду airodump-ng посредством следующего синтаксиса:
airodump-ng ath1
Это позволит нам получить необходимую информацию о сети, а именно:
- MAC-адрес точки доступа;
- MAC-адрес клиента;
- тип сети;
- ESSID сети;
- тип шифрования;
- номер канала связи.
В нашем примере, введя команду airodump-ng ath1, мы смогли определить все необходимые параметры сети (рис. 2):
Рис. 2. Сбор информации о сети
с использованием утилиты airodump-ng
- MAC-адрес точки доступа — 00:0D:88:56:33:B5;
- MAC-адрес клиента — 00:0E:35:48:C4:76
- тип сети — 802.11g;
- ESSID сети — dlinkG;
- тип шифрования — WEP;
- номер канала связи — 11.
Отметим, что утилита airodump-ng позволяет определять идентификатор сети (ESSID) независимо от того, установлен ли на точке доступа режим скрытого идентификатора (Hidden SSID) или нет.
Для сбора информации о сети можно также использовать утилиту Kismet, входящую в диск BackTrack, — в отличие от airodump-ng, она позволяет собрать куда больше информации о беспроводной сети и в этом смысле является полноценным и лучшим в своем классе анализатором беспроводных сетей. Данная утилита имеет графический интерфейс (рис. 3), что значительно облегчает работу с ней.
Рис. 3. Сбор информации о сети
с помощью утилиты Kismet
Этап 2. Перехват пакетов
После того как собрана детальная информация о беспроводной сети, можно приступать к перехвату пакетов с помощью тех же утилит, которые применялись для сбора информации о сети, — airodump-ng или Kismet. Однако в данном случае нам понадобится несколько иной синтаксис команд.
WEP-шифрование
Сначала рассмотрим вариант, когда в сети используется WEP-шифрование. В этом случае нам нужно отфильтровать только пакеты с вектором инициализации (IV-пакеты) и записать их в файл, который в дальнейшем будет применяться для подбора ключа.
К примеру, если известно, что атакуемая сеть является сетью типа 802.11g, в ней используется шифрование WEP и передача ведется на 11-м канале, то синтаксис команды для перехвата пакетов может быть следующий:
airodump-ng --ivs –w dump --band g --channel 11 ath1
В данном примере мы записываем в файл с именем dump только IV-пакеты. Вероятность успешного подбора ключа зависит от количества накопленных IV-пактов и длины ключа. Как правило, при длине ключа 128 бит достаточно накопить порядка 1-2 млн IV-пакетов, а при длине ключа 64 бита — порядка нескольких сотен тысяч пакетов. Однако заранее длина ключа неизвестна и никакая утилита не позволяет ее определить. Поэтому для анализа желательно перехватить не менее 1,5 млн пакетов. На рис. 4 показан пример захвата 1 137 637 IV-пакетов в утилите airodump-ng.
Рис. 4. Захват пакетов посредством утилиты airodump-ng
Количество перехваченных пакетов интерактивно отображается в утилите airodump-ng, а для остановки процесса захвата пакетов нужно просто нажать комбинацию клавиш Ctrl+C.
Утилита Kismet также может использоваться для захвата пакетов. Собственно, процесс перехвата начинается сразу после запуска утилиты, а запись производится в файл с расширением dump, который сохраняется в рабочей директории программы. Однако, в отличие от утилиты airodump-ng, в данном случае невозможно отфильтровать только IV-пакеты и задать номер канала связи. Поэтому в случае применения утилиты Kismet эффективность (скорость накапливания) пакетов ниже, а количество пакетов, которые необходимо перехватить, должно быть больше, чем при использовании утилиты airodump-ng.
Часто при перехвате пакетов возникает ситуация, когда отсутствует интенсивный обмен трафиком между точкой доступа и клиентом, поэтому, чтобы накопить требуемое для успешного взлома сети количество пакетов, приходится ждать очень долго. Однако процесс этот можно ускорить, принудительно заставив общаться клиента с точкой доступа с помощью утилиты aireplay-ng (рис. 5). Данная утилита запускается параллельно с утилитой airodump-ng, для чего нужно запустить еще одну консольную сессию.
Рис. 5. Применение утилиты aireplay-ng для инициализации трафика
между точкой доступа и клиентом
Синтаксис команды следующий:
aireplay-ng <options> <replay interface>
Данная команда имеет очень большое количество разнообразных опций, с которыми можно ознакомиться, запустив команду без параметров.
Для наших целей синтаксис команды будет выглядеть так :
aireplay –ng -e dlinkG -a 00:0d:88:56:33:b5 -c 00:0f:ea:91:7d:95 --deauth 20 ath1
В данном случае параметр -e dlinkG задает идентификатор беспроводной сети; параметр -a 00:0d:88:56:33:b5 — MAC-адрес точки доступа; параметр -c 00:0f:ea:91:7d:95 — MAC-адрес клиента; опция --deauth 20 — атаку на разрыв соединения (20 раз) с последующей аутентификацией клиента. При аутентификации клиента трафик между ним и точкой доступа резко повышается и количество пакетов, которые можно перехватить, возрастает. При необходимости можно увеличить число разрывов соединения или повторять эту команду до тех пор, пока не накопится нужное количество пакетов.
WPA-PSK-шифрование
При WPA-PSK-шифровании в беспроводной сети алгоритм перехвата пакетов несколько иной. В данном случае нам не нужно отфильтровывать IV-пакеты, поскольку при WPA-PSK-шифровании их просто не существует, но и захватывать все пакеты подряд тоже не имеет смысла. Собственно, все, что нам нужно, — это небольшая часть трафика между точкой доступа и клиентом беспроводной сети, в которой бы содержалась информация о процедуре аутентификации клиента в сети (процедура handshake). Но для того, чтобы перехватить процедуру аутентификации клиента в сети, прежде ее необходимо принудительно инициировать с помощью утилиты aireplay-ng.
Поэтому при WPA-PSK-шифровании алгоритм перехвата пакетов будет следующим. Открываем две консольные сессии и в первой сессии запускаем команду на принудительное разъединение сети с последующей повторной идентификацией клиента (утилита aireplay-ng, атака деаутентификации), а во второй сессии с паузой в одну-две секунды запускаем команду на перехват пакетов (утилита airodump-ng). Синтаксисы команд следующие:
aireplay–ng -e dlinkG -a 00:0d:88:56:33:b5 -c 00:0f:ea:91:7d:95 —deauth 10 ath1
airodump-ng –w dump —band g —channel 11 ath1
Как видите, синтаксис команды aireplay-ng точно такой же, как и при WEP-шифровании, когда данная команда использовалась для инициализации трафика между точкой доступа и клиентом сети (единственное различие — это меньшее количество пакетов на деаутентификацию). В синтаксисе команды airodump-ng отсутствует фильтр IV-пакетов.
Процесс захвата пакетов нужно продолжать всего несколько секунд, поскольку при активированной атаке деаутентификации вероятность захвата handshake-пакетов практически стопроцентная.
Этап 3. Анализ пакетов
На последнем этапе проводится анализ перехваченных пакетов с использованием утилиты aircrack-ng, которая запускается в консольной сессии. Естественно, синтаксис команды aircrack-ng различен для WEP- и WPA-PSK-шифрования. Общий синтаксис команды следующий:
aircrack-ng [options] <capture file(s)>
Возможные опции команды представлены в табл. 3. Отметим, что в качестве файлов, содержащих перехваченные пакеты (capture file(s)), можно указывать несколько файлов с расширением *.cap или *.ivs. Кроме того, при взломе сетей с WEP-шифрованием утилиты airodump-ng и aircrack-ng могут запускаться одновременно (применяются две консольные сессии). При этом aircrack-ng автоматически будет обновлять базу IV-пакетов.
Таблица 3. Возможные опции команды aircrack-ng
Опции |
Возможное значение |
Описание |
-a |
1 = static WEP, 2 = WPA-PSK |
Задает тип атаки (WEP или WPA-PSK) |
-e |
ESSID |
Если задана опция, будут использоваться все IV-пакеты с одним и тем же значением ESSID. Данная опция также применяется для взлома сетей WPA-PSK, если ESSID не широковещательный (режим скрытого идентификатора сети) |
-b |
MAC-адрес точки доступа |
Выбор сети на основе MAC-адреса точки доступа |
-q |
— |
Режим скрытой работы. Информация не отображается до тех пор, пока не найден ключ или ключ невозможно подобрать |
-c |
— |
Для WEP-сетей ограничивает подбор ключа только набором цифр и букв |
-t |
— |
Для WEP-сетей ограничивает подбор ключа только набором шестнадцатеричных символов |
-h |
— |
Для WEP-сетей ограничивает подбор ключа только набором цифр |
-d |
— |
Для WEP-сетей задает начало ключа в шестнадцатеричном формате. Используется для отладки программы |
-m |
MAC-адрес клиента |
Для WEP-сетей задает фильтр пакетов по MAC-адресу клиента. -m ff:ff:ff:ff:ff:ff используется для сбора всех IV-пакетов |
-n |
64 (для 40-битного ключа) 128 (для 104-битного ключа) 152 (для 128-битного ключа) 256 (для 232-битного ключа) 512 (для 488-битного ключа) |
Для WEP-сетей задает длину ключа. По умолчанию длина ключа составляет 104 бита |
-i |
1, 2, 3, 4 |
Для WEP-сетей указывает на сбор IV-пакетов, которые имеют заданный индекс ключей (от 1 до 4). По умолчанию данная опция игнорируется |
-f |
1, 2, 3, 4, 5 |
Параметр применяется при взломе WEP-сетей — для 104-битного ключа значение по умолчанию равно 2, для 40-битных ключей — 5. Более высокое значение данного параметра позволяет вычислять ключи с меньшим количеством пакетов, но за более длительное время |
-k |
1, 2, … 17 |
Используется при взломе WEP-сетей. Данный параметр позволяет исключить конкретные типы korek-атак (всего существует 17 типов korek-атак) |
-x0 |
— |
Применяется при взломе WEP-сетей. Запрещает поиск последнего символа в ключе |
-x1 |
— |
Используется при взломе WEP-сетей. Разрешает поиск последнего символа в ключе (используется по умолчанию) |
-x2 |
— |
Применяется при взломе WEP-сетей. Разрешает поиск двух последних символов в ключе |
-X |
— |
Используется при взломе WEP-сетей. Запрещает применение нескольких процессоров в SMP-системах |
-y |
— |
Применяется при взломе WEP-сетей. Позволяет использовать специальный (экспериментальный) тип атаки для подбора ключа. Применяется в случае, когда стандартные атаки не позволяют найти ключ при использовании более 1 млн IV-пакетов |
-w |
Путь к словарю |
При WPA-PSK-атаке задает путь к используемому словарю |
При использовании WEP-шифрования основная проблема заключается в том, что мы заранее не знаем длину ключа, применяемого для шифрования. Поэтому можно попытаться перебрать несколько вариантов длины ключа, которая задается параметром -n. Если же данный параметр не указывается, то по умолчанию длина ключа устанавливается в 104 бита (-n 128).
Если известна некоторая информация о самом ключе (например, он состоит только из цифр, или только из букв, или только из набора букв и цифр, но не содержит специальных символов), то можно воспользоваться опциями -с, -t и -h.
В нашем случае мы применяли команду aircrack-ng в следующем синтаксисе:
aircrack-ng –a 1 –e dlinkG –b 00:0d:88:56:33:b5 –c 00:0f:ea:91:7d:95 –n 128 dump.ivs.
Здесь указание MAC-адреса точки доступа и клиента, а также ESSID сети является излишним, поскольку использовались всего одна точка доступа и один беспроводной клиент. Однако если клиентов несколько и имеется несколько точек доступа, то необходимо указывать и эти параметры.
В результате нам удалось подобрать 128-битный ключ всего за 25 с (рис. 6). Как видите, взлом сети на основе WEP-шифрования не представляет серьезной проблемы, однако он далеко не всегда заканчивается успехом. Может оказаться, что для подбора ключа накоплено недостаточно IV-пакетов.
Рис. 6. Подбор 128-битного ключа
с использованием утилиты aircrack-ng
При WPA-PSK-шифровании используется следующий синтаксис команды:
aircrack-ng –a 2 –e dlinkG–b 00:0d:88:56:33:b5 –w dict dump.cap.
В данном случае вероятность положительного результата, то есть вероятность подбора пароля целиком, зависит от применяемого словаря. Если пароль в словаре есть, то он будет найден. Словарь, используемый программой aircrack-ng, необходимо предварительно подмонтировать в рабочую папку программы или же прописать полный путь к словарю. Подборку хороших словарей можно найти на сайте www.insidepro.com. Если же и они не помогут, то, скорее всего, пароль представляет собой бессмысленный набор символов. Все-таки словари содержат слова или фразы, а также удобные, легко запоминающиеся сочетания клавиш. Понятно, что произвольный набор символов в словарях отсутствует. Но даже в этом случае выход есть. Некоторые утилиты, предназначенные для подбора паролей, умеют генерировать словари из заданного набора символов и максимальной длины слова. Примером такой программы является PasswordPro v.2.2.5.0.
Тем не менее еще раз отметим, что вероятность взлома WPA-PSK-пароля очень невысока. Если пароль задан не в виде какого-либо слова, а представляет собой случайное сочетание букв и цифр, то подобрать его практически невозможно.
Обобщение
Подводя итог всему рассказанному выше о взломе беспроводных сетей, еще раз перечислим главные этапы этого процесса и используемые на каждом из них команды.
Этап 1. Сбор информации о сети:
- airmon-ng start wifi0;
- airodump-ng ath1.
Этап 2. Сбор пакетов:
- случай WEP:
- airodump-ng --ivs -w dump --band g --channel 11 ath1,
- aireplay -ng -e dlinkG -a 00:0d:88:56:33:b5 -c 00:0f:ea:91:7d:95 --deauth 20 ath1
(при недостаточном трафике. Команда запускается в отдельной консольной сессии);
- случай WPA-PSC:
- aireplay-ng -e dlinkG -a 00:0d:88:56:33:b5 -c 00:0f:ea:91:7d:95 --deauth 10 ath1,
- airodump-ng -w dump --band g --channel 11 ath1
(команда запускается в отдельной консольной сессии).
Этап 3. Анализ пакетов:
- случай WEP:
- aircrack-ng -a 1 -e dlinkG -b 00:0d:88:56:33:b5 -c 00:0f:ea:91:7d:95 -n 128 dump.ivs;
- случай WPA-PSK:
- aircrack-ng -a 2 -e dlinkG-b 00:0d:88:56:33:b5 -w dict dump.cap.
Взлом беспроводных сетей с помощью пакета aircrack-ng 0.6.2-win и ОС Windows XP
Как мы уже отмечали в начале статьи, существует версия пакета aircrack-ng 0.6.2-win, поддерживаемая операционной системой Windows XP. Сразу отметим, что возможности пакета не столь обширны по сравнению с его Linux-аналогом, а потому, если нет стойкого предубеждения против Linux, то лучше использовать вариант с диском BackTrack.
Первое, с чем придется столкнуться в случае применения Windows-версии программы aircrack-ng, — это необходимость замены штатных драйверов от производителя беспроводного сетевого адаптера на специальные драйверы, которые поддерживают режим мониторинга и перехвата пакетов. Причем, как и в случае с Linux-версией программы, конкретная версия драйвера зависит от чипа, на котором построен сетевой адаптер. К примеру, при использовании нашего беспроводного PCMCIA-адаптера Gigabyte GN-WMAG на базе чипа Atheros AR5004 мы применяли драйвер версии 5.2.1.1 от компании WildPackets.
Сама процедура взлома беспроводной сети с помощью Windows-версии пакета aircrack-ng довольно проста и концептуально повторяет процедуру взлома беспроводных сетей посредством Linux-версии пакета. Она выполняется традиционно в три этапа: сбор информации о сети, перехват пакетов и их анализ.
Для начала работы с утилитой необходимо запустить файл Aircrack-ng GUI.exe, имеющий удобный графический интерфейс и представляющий собой, по сути, графическую оболочку для всех утилит, входящих в пакет aircrack-ng 0.6.2-win. В главном окне программы (рис. 7) имеется несколько закладок, переключаясь между которыми можно активировать нужные утилиты.
Рис. 7. Главное окно утилиты Aircrack-ng GUI
Для сбора необходимой информации о сети необходимо перейти на закладку airdump-ng, после чего в отдельном окне запустится утилита airdump-ng 0.6.2.
При запуске программы airdump-ng 0.6.2 (рис. 8) откроется диалоговое окно, в котором потребуется указать беспроводной сетевой адаптер (Network interface index number), тип чипа сетевого адаптера (Network interface type (o/a)), номер канала беспроводной связи (Channel(s): 1 to 14, 0=all) (если номер канала неизвестен, то можно сканировать все каналы). Кроме того, задается имя выходного файла, в котором хранятся перехваченные пакеты (Output filename prefix), и указывается, требуется ли захватывать все пакеты целиком (CAP-файлы) или только часть пактов с векторами инициализации (IVS-файлы) (Only write WEP IVs (y/n)). При WEP-шифровании для подбора секретного ключа вполне достаточно сформировать только IVS-файл, а при использовании WPA-PSK-шифрования потребуется cap-файл. По умолчанию IVS- или СAP-файлы создаются в той же директории, что и программа airdump-ng 0.6.2.
Рис. 8. Настройка утилиты airdump-ng 0.6.2
После настройки всех опций утилиты airodump-ng 0.6.2 откроется информационное окно, в котором отображается информация об обнаруженных точках беспроводного доступа, информация о клиентах сети и статистика перехваченных пакетов (рис. 9).
Рис. 9. Информационное окно утилиты airodump-ng 0.6.2
Если точек доступа несколько, то будет выдаваться статистика по каждой из них.
Первым делом необходимо записать MAC-адрес точки доступа, SSID беспроводной сети и MAC-адрес одного из подключенных к ней клиентов (если их несколько). Затем нужно подождать, пока не будет перехвачено достаточное количество пакетов. Для останова процесса захвата пакетов (работы утилиты) служит комбинация клавиш Ctrl+C. Отметим, что в Windows-версии пакета не предусмотрено способов, позволяющих принудительно увеличить трафик между точкой доступа и клиентом сети (напомним, что в Linux-версии пакета для этого предусмотрена утилита aireplay-ng).
Основная проблема при взломе WPA-PSK-сетей с использованием Windows-версии программы Aircrack-ng GNU 0.6.2 заключается в том, что в CAP-файл необходимо захватить саму процедуру инициализации клиента в сети, то есть придется посидеть «в засаде» с запущенной программой airodump-ng. После того как в CAP-файл захвачена процедура инициализации клиента сети, можно остановить программу airodump и приступить к процессу расшифровки. Собственно, накапливать перехваченные пакеты в данном случае не нужно, поскольку для вычисления секретного ключа применяются только пакеты, передаваемые между точкой доступа и клиентом в ходе инициализации.
В случае WEP-шифрования после формирования выходного IVS-файла можно приступать к его анализу с помощью утилиты aircrack-ng 0.6.2, для запуска которой опять необходимо открыть главное окно программы Aircrack-ng GUI на соответствующей закладке и настроить утилиту aircrack-ng. При WEP-шифровании настройка утилиты заключается в том, чтобы задать длину WEP-ключа, указать ESSID беспроводной сети, задать MAC-адрес точки доступа, исключить некоторые типы атак (RoreK-атаки), задать при необходимости набор символов, используемый для ключа, и т.д. Здесь предусмотрены все те же настройки, что и в случае Linux-версии данной утилиты. Разница лишь в том, что в Linux-версии все настройки указываются в виде опций в командной строке, а в Windows-версии для настройки утилиты применяется удобный графический интерфейс (рис. 10).
Рис. 11. Результат анализа IVS-файла
утилитой aircrack-ng 0.6.2
Результат анализа IVS-файла показан на рис. 11. Вряд ли строка KEY FOUND! нуждается в комментариях. Обратите внимание: секретный ключ был вычислен всего за 1 с!
При WPA-PSK-шифровании в настройках утилиты aircrack-ng 0.6.2 в качестве выходного файла необходимо использовать именно CAP-, а не IVS-файл. Кроме того, нужно указать путь к применяемому для взлома словарю, который предварительно устанавливается в директорию с программой aircrack-ng 0.6.2 (рис. 12).
Рис. 12. Результат анализа ivs-файла
утилитой aircrack-ng 0.6.2
Результат анализа CAP-файла показан на рис. 13. Однако следует иметь в виду, что положительный результат поиска ключа возможен только в том случае, если пароль присутствует в анализируемом словаре.
Рис. 13. Результат анализа CAP-файла
Обход защиты фильтра по MAC-адресам
В самом начале статьи мы отмечали, что помимо WEP- и WPA-PSK-шифрования часто используются и такие функции, как режим скрытого идентификатора сети и фильтрация по MAC-адресам. Они традиционно относятся к функциям обеспечения безопасности беспроводного соединения.
Как мы уже продемонстрировали на примере пакета aircrack-ng, полагаться на режим скрытого идентификатора сети вообще нельзя. Упомянутая нами утилита airodump-ng все равно покажет вам SSID сети, который впоследствии можно использовать для создания профиля подключения (несанкционированного!) к сети.
Ну а если говорить о такой мере безопасности, как фильтрация по MAC-адресам, то здесь вообще все очень просто. В Интернете можно найти довольно много разнообразных утилит и под Linux, и под Windows, которые позволяют подменять MAC-адрес сетевого интерфейса. В качестве примера можно привести следующие Windows-утилиты: SMAC 2.0 (утилита платная, http://www.klcconsulting.net/smac), MAC MakeUP (утилита бесплатная, www.gorlani.com/publicprj/macmakeup/macmakeup.asp — рис. 14) или MAC Spoofer 2006 (утилита бесплатная).
Рис. 14. Подмена MAC-адреса с использованием утилиты MAC MakeUP
Осуществив такую подмену, можно прикинуться своим и реализовать несанкционированный доступ в беспроводную сеть. Причем оба клиента (настоящий и непрошеный) будут совершенно спокойно существовать в одной сети с одним MAC-адресом, более того — в этом случае непрошеному гостю будет присвоен точно такой же IP-адрес, как и у настоящего клиента сети.
Выводы
Итак, преодолеть всю систему безопасности беспроводной сети на базе WEP-шифрования не представляет никакого труда. Возможно, многие скажут, что это неактуально, поскольку WEP-протокол уж давно умер — его не используют. На смену ему пришел более стойкий протокол WPA. Однако не будем торопиться с выводами. Это действительно так, но только отчасти. Дело в том, что в некоторых случаях для увеличения радиуса действия беспроводной сети разворачиваются так называемые распределенные беспроводные сети (WDS) на базе нескольких точек доступа. Самое интересное заключается в том, что такие сети не поддерживают WPA-протокол и единственной допустимой мерой безопасности в данном случае является применение WEP-шифрования. При этом взламываются WDS-сети абсолютно так же, как и сети на базе одной точки доступа. Кроме того, КПК, оснащенные беспроводным модулем, тоже не поддерживают протокол WPA, поэтому для включения клиента на базе КПК в беспроводную сеть необходимо использовать в ней протокол WEP. Следовательно, протокол WEP еще долгое время будет востребован в беспроводных сетях.
Рассмотренные нами примеры взлома беспроводных сетей весьма наглядно демонстрируют их уязвимость. Если говорить о WEP-протоколе, то его можно сравнить с защитой «от дурака». Это примерно то же самое, что сигнализация на машине, — только от хулиганов и спасает. Что касается таких мер предосторожности, как фильтрация по MAC-адресам и режим скрытого идентификатора сети, то их вообще рассматривать как защиту нельзя. Тем не менее даже такими средствами не стоит пренебрегать, правда только в комплексе с другими мерами.
Протокол WPA, хотя и гораздо более сложен для взлома, но тоже уязвим. Впрочем, не стоит падать духом — не все так безнадежно. Дело в том, что успех взлома секретного WPA-ключа зависит от того, есть он в словаре или нет. Стандартный словарь, который мы использовали, имеет размер чуть более 40 Мбайт, что, в общем-то, не так много. После трех попыток мы сумели подобрать ключ, которого не оказалось в словаре, и взлом сети оказался невозможным. Количество слов в этом словаре — всего 6 475 760, что, конечно же, очень мало. Можно использовать словари и большей емкости, к примеру в Интернете можно заказать словарь на трех CD-дисках, то есть размером почти в 2 Гбайт, но даже он содержит далеко не все возможные пароли. Действительно, давайте приблизительно рассчитаем количество паролей длиной от 8 до 63 символов, которые можно сформировать с использованием 26 букв английского алфавита (с учетом регистров), десяти цифр и 32 букв русского алфавита. Получится, что каждый символ можно выбрать 126 способами. Соответственно если учитывать только пароли длиной 8 символов, то количество возможных комбинаций составит 1268=6,3·1016. Если размер каждого слова длиной 8 символов составляет 8 байт, то размер такого словаря составит 4,5 млн Тбайт. А ведь это только комбинации из восьми символов! Какой же получится словарь, если перебрать все возможные комбинации от 8 до 63 символов?! Не надо быть математиком, чтобы подсчитать, что размер такого словаря составит примерно 1,2·10119 Тбайт.
Так что не стоит отчаиваться. Шанс, что применяемый вами пароль не содержится в словаре, велик. Просто при выборе пароля не следует использовать слова, имеющие смысл. Лучше всего, если это будет беспорядочный набор символов — что-нибудь типа «FGпроукqweRT4j563апп».