Книги, научные публикации Pages:     | 1 | 2 | 3 | 4 |   ...   | 8 |

Wi-фу: ...

-- [ Страница 2 ] --

обычно это файл /proc/driver/aironet/ethl/Config). Но при жела нии карты Cisco Aironet можно конфигурировать и с помощью Linux Wireless Extensions, a также посредством графической утилиты ACU. Из-за описанных различий существуют раз ные сценарии инициализации для linux-wlan-ng (/etc/pcmcia/wlan-ng) и карт, сконфигу рированных с помощью Linux Wireless Extensions (/etc/pcmcia/wireless).

В ОС BSD драйверы для карт с набором команд Prism и Hermes находятся в драйвере интер фейса wi, тогда как карты Cisco Aironet поддерживаются устройством an. Можно также встре тить устройство ray для карт с набором Raylink и awi для старых карт с набором Prism I.

В BSD клиентские карты для беспроводной связи конфигурируются утилитой wicontrol для карт с набором микросхем Prism или Hermes (перечислены ниже в этой главе) и ancontrol для остальных карт. В системе FreeBSD версии 4.5 и выше функциональность wicontrol и ancontrol интегрирована в ifconfig, но сами эти утилиты также остались. Конфигурационные сцена рии запуска во FreeBSD должен написать пользователь, но это несложно. Хороший пример подобного сценария, размещаемого в каталоге /usr/local/etc/rc.d, приведен в книге Брюса Поттера (Bruce Potter) и Боба Флека (Bob Fleck) л802.11 Security (Безопасность 802.11).

В системе OpenBSD необходимые параметры для инициализации беспроводной карты мож но добавить в файл , например hostname.апО или hostname.wiO.

Если в Linux и BSD конфигурационные файлы и утилиты группируются по типу набора микросхем, то в Windows они ассоциированы с производителем конкретной карты. Учиты вая разнообразие клиентских карт 802.11 на рынке, привести в этой книге полный обзор не представляется возможным. Мы предлагаем ознакомиться с инструкциями, написанны ми производителем.

Как заставить свою карту работать под Linux и BSD Первым шагом процедуры инсталляции клиентской карты 802.11 в ОС Linux или BSD являет ся выбор правильных параметров ядра и компиляция службы pcmcia-cs Card Services. Если у вас имеется ядро с настройками, заданными в дистрибутиве по умолчанию, то, скорее всего, модули, необходимые для поддержки вашей беспроводной карты, уже откомпилированы и включены в состав ядра, а параметр Set Version Information On All Modules Symbols (Уста новить информацию о версии во всех символах модулей) включен. Это прекрасно, если вы пользуетесь только картами с набором микросхем Prism, которые поддерживают режим RFM0N по умолчанию в большинстве версий драйвера linux-wlan-ng. Вы можете даже при компилировать поддержку Prism к ядру. В противном случае придется использовать пропат ченные (Orinoco/Hermes) или поставляемые третьей стороной (Sourceforge airo-linux) моду ли, если вы хотите настроить систему для аудита безопасности (драйверы Aironet поставляемые с последними версиями ядра Linux, и так годятся). Специальные драйверы типа HostAP не поставляются с ядром и должны компилироваться отдельно. В таких случаях следует отклю чить параметр Set Version Information On All Modules Symbols и не пытаться прикомпили ровать поддержку карты к ядру, а включить ее в состав модулей (рис. 4.1).

ДВИГАТЕЛЬ: НАБОРЫ МИКРОСХЕМ, ДРАЙВЕРЫ И КОМАНДЫ Рис. 4.1. Поддержка загружаемых модулей ядра Вы можете либо пропустить шаг выбора модулей, поставляемых с ядром, либо заменить их пропатченными модулями позже, когда будете устанавливать драйверы pcmcia-cs или специфичные для вашей карты.

После компиляции ядра (читайте документ Kernel-How-То, если никогда не делали это го раньше) нужно создать пакет pcmcia-cs. Мы не рекомендуем пользоваться заранее от компилированными включенными в дистрибутив пакетами pcmcia-cs из-за наличия пат чей, а также потому, что исходные тексты понадобятся, если вы захотите компилировать другие инструменты. Прежде чем компилировать pcmcia-cs, необходимо поставить патч Shmoo, который можно скачать со страницы Выберите подходящий для вашей версии pcmcia-cs патч и выполните команду:

arhontus:~# patch -pO < pcmcia-cs-"your-pcmcia-cs-version"-orinoco patch.diff Вместо этого можно скачать драйвер orinoco-cs, пропатчить его и заменить не пропат ченные исходные тексты в каталоге /usr/src/pcmcia-cs-"current-version"-patched/wireless пропатченными. Можно также скомпилировать пропатченные модули отдельно и скопи ровать их в каталог/lib/modules/"yourkernelversion"/pcmcia, например, поверх оригиналь ных модулей, поставляемых в дистрибутиве вместе с ядром. Если вы собираетесь так и поступить, не забудьте отключить параметр Set Version Information On All Modules Symbols. Если вы работаете с картой на базе набора Cisco Aironet, не пользуйтесь стандар тными драйверами, идущими вместе с ней или скачанными с сайта компании Cisco, посколь ку они не поддерживают режим RFMON. Вместо этого загрузите драйверы airo-linux с сай та Sourceforge ( Проще всего установить их, скопировав файлы airo.c и airo_cs.c в подкаталог pcmcia/wireless. Если вы пользуетесь мо дулями, идущими вместе с ядром, то придется поставить патч, включенный в пакет airo linux. Поскольку этот патч годится только для ядра 2.4.3, такой способ не рекомендует ся. Однако во всех более поздних версиях ядра уже имеются драйверы для Aironet с 56 ^ ЗАВОДИМ ДВИГАТЕЛЬ: ДРАЙВЕРЫ И УТИЛИТЫ поддержкой режима RFM0N. Поэтому, если вы своевременно обновляете ядро, то можете без опаски пользоваться поставляемыми вместе с ним модулями.

Если вы хотите перезаписать оригинальные модули ядра, воспользуйтесь при компиляции pcmcia-cs флагом. /configure Чforce. В противном случае просто выполните команду:

arhontus :--# make config Linux PCMCIA Configuration Script ДВИГАТЕЛЬ: НАБОРЫ МИКРОСХЕМ, ДРАЙВЕРЫ И КОМАНДЫ А Вот и все. Доверительные (trusting) версии утилит нужно строить, если вы хотите, что бы пользователи, отличные от root, могли приостанавливать и возобновлять работу карт PCMCIA, сбрасывать карты в начальное состояние и менять схему конфигурации. Поддерж ка 32-разрядной шины на карте (CardBus) необходима только для карт с такой шиной, на пример современных комбинированных карт с поддержкой стандартов a/b/g, а также для многих недавно появившихся карт 802.11а и 802.11b, которые поддерживают нестандарт ные скорости 22 и 108 Мбит/с.

Для более старых 16-разрядных карт эта возможность не нужна. Драйверы карт на базе набора микросхем Prism, например, prism2_cs и р80211 отсутствуют в подкаталоге wireless пакета PCMCIA_cs, они должны поставляться с ядром или строиться и инсталлироваться при компиляции пакета linux-wlan-ng. При установке PCMCIA-cs создается каталог /etc/pcmcia, который может быть изменен позже, при компиляции других драйверов беспроводных карт, например linux-wlan-ng или HostAP. В случае, когда в одном ноутбуке находится несколько беспроводных карт с разными наборами микросхем, мы рекомендуем хранить содержимое каталога /etc/pcmcia для каждого типа карт отдельно. Тогда можно будет легко переключить ся с одной карты на другую. Например, если в настоящий момент вы работаете с картой на базе набора Orinoco, а хотите переключиться на Prism, то можно сделать так:

arhontus:~# rm -rf /etc/pcmcia && cp -r /usr/local/wireless/pcmcia wlan-ng /etc/pcmcia && /etc/init.d/pcmcia restart Обязательно сделайте резервные копии всех конфигурационных файлов. Для удобства мы разместили на сайте примеры конфигурационных файлов для драйверов Wlan-ng, HostAP и Ark. Приведенная конфигурация для Ark будет поддерживать также Wlan-ng. Если модули airocs и airo корректно установлены, то карты на базе набора Cisco Aironet не зависят от особенностей конфигурационных файлов в каталоге /etc/pcmcia и будут работать со всеми конфигурационными файлами без перезагрузки служб PCMCIA.

Состояние карты в любой момент можно проверить с помощью утилиты cardctl:

arhontus:~# cardstl config && cardctl info && cardctl status или с помощью графической утилиты cardinfo (рис. 4.2), которая позволяет управлять кар той точно так же, как из сценария /etc/init.d/pcmcia.

Рис. 4.2. Графическая утилита cardinfo Для работы с PCMCIA-картой на базе набора Atheros задайте в ядре поддержку PCMCIA, скомпилируйте драйвер vt_ark5k (отредактируйте файл Makefile, если исходные файлы ядра Linux находятся не в каталоге /usr/src/linux) и добавьте строку " options vt_ar5k reg_domain=??? " в файл/etc/modules.conf. Имеются различия в зависимости от зако нов, регулирующих выходную мощность, в стране, где вы находитесь: допустимые значе ния параметра reg_domain - это fee (США), et s i (EC) и de (Германия и Япония). Мож но также указать эти параметры при вставке модуля (например, insmod vt_ar5k. o ДВИГАТЕЛЬ: НАБОРЫ МИКРОСХЕМ, ДРАЙВЕРЫ И КОМАНДЫ х интерес для хакера. Если вам хочется узнать больше, предлагаем зайти на сайт Жана Туриля, посвященный драйверам плат для беспроводной связи, и в особенности на стра ницу com/personaL/Jean_Tourn'lLhes/Linux/Linux.Wireless.drivers.htm[ #Prism2-hostAP, а также проследовать по имеющимся на ней ссылкам. Там приведены обширные материалы для всех, кого интересует модификация и разработка новых драйверов для беспроводных клиентских карт, а также для тех, кто хочет знать, по чему для карт с набором микросхем Hermes нужно три разных драйвера и в чем различие между функциями и структурой модулей prism2_cs и р80211 linux-wlan ng для карт с набором Prism. Кстати, мы не обсуждаем инсталляцию драйверов HostAP и Airjack в этой главе, так как они будут описаны, когда речь пойдет об ата ках человек посередине.

60 ЗАВОДИМ ДВИГАТЕЛЬ: ДРАЙВЕРЫ И УТИЛИТЫ ЗНАКОМСТВО С КОНФИГУРИРОВАНИЕМ ИНТЕРФЕЙСА БЕСПРОВОДНЫХ КАРТ Более подробная информация о совместимости сетевого оборудования приведена в при ложении В. Если ваша карта присутствует в списке поддерживаемой аппаратуры и вы мо дифицировали конфигурационный файл ядра BSD, как описано выше, после чего пересоб рали ядро, то все должно работать. Подчеркнем еще раз: если вы решили использовать платформу BSD в качестве основной, то понадобится карта на базе набора микросхем Prism, а стандарт 802.11а будет недоступен, пока кто-нибудь не напишет соответствующие драй веры (если такое вообще произойдет, принимая во внимание набирающий популярность стандарт 802.Ид).

Знакомство с конфигурированием интерфейса беспроводных карт Чтобы эффективно выполнять аудит безопасности беспроводной сети, нужно ознако миться с утилитами конфигурирования, имеющимися в UNIX. Да, придется много рабо тать с командной строкой. Однако, эту сулит немалые преимущества и, в частности, по нимание того, как работают более сложные инструменты, связанные с обеспечением безопасности. Кроме того, вы научитесь писать полезные сценарии на языке интерпре татора команд, что сэкономит вам время и упростит жизнь. Да и, кроме того, отказ от графического интерфейса продлевает срок работы аккумуляторов (подробнее об этом в следующей главе).

Комплект программ Linux Wireless Extensions Начнем с описания комплекта программ Linux Wireless Extensions как наиболее полезной утилиты для конфигурирования беспроводных карт и интерфейсов в ОС Linux. Первая версия 62 ^ ЗАВОДИМ ДВИГАТЕЛЬ: ДРАЙВЕРЫ И УТИЛИТЫ была разработана в 1996 году для карт на базе набора микросхем Hermes. Имеющаяся в Wireless Extensions поддержка карт с набором Prism, работающих под управлением драйверов wlan_ng, очень ограниченна и в основном сводится к проверке (часто не корректной) конфигурационных параметров установленной карты. Однако те же кар ты с набором Prism, работающие под управлением драйвера HostAP, поддержаны в пол ном объеме и Linux Wireless Extensions способна их конфигурировать. То же относится к картам 802.11а с драйверами vt_ark5k и комбинированным картам с драйверами Madwifi.

Вопреки имеющимся в файле INSTALL замечаниям о возможных проблемах при ин сталляции, мы никогда ни с чем подобным не сталкивались даже при компиляции Extensions из исходных текстов. Установка из вашего любимого дистрибутивного па кета тоже не вызывает трудностей, если, конечно, вы не подумываете о какой-то моди фикации кода.

Самая важная из утилит, входящих в Linux Wireless Extensions, - это iwconfig:

arhontus:~# iwconfig Чhelp Usage: iwconfig interface [essid {NNIonloff} ] [nwid {NNIonloff} [mode {managed I ad-hoc I...} [freq N.NNNN[k|M\G]] [channel N] [sens N] [nick N] [rate {NI auto I fixed}] [rts {NI auto I fixed I off}] [frag {Nlautol fixedloff}] [enc {NNNN-NNNNloff}] [power {period NI timeout N}] [txpower N {mWldBm}] [commit] Как видите, iwconfig позволяет сконфигурировать практически все параметры. Дадим несколько полезных советов:

о при сканировании в поисках сетей или устройств 802.11 устанавливайте для пара метра essi d значение off или any:

arhontus:~# iwconfig ethO essid off о устанавливайте для параметра nwid значение off, чтобы во время сканирования принимались неопределенные домены:

arhontus:~# iwconfig ethO nwid off о отключайте параметр key, чтобы можно было принимать незашифрованные по про токолу WEP пакеты:

arhontus:~# iwconfig ethO key off о устанавливайте минимально возможный для вашей карты порог чувствительности:

arhontus:~# iwconfig sens -85 (если чувствительность карты ограничена) величиной -85 dBm) ЗНАКОМСТВО С КОНФИГУРИРОВАНИЕМ ИНТЕРФЕЙСА БЕСПРОВОДНЫХ КАРТ л о если карта позволяет регулировать мощность передатчика, то во время сканирова ния или анализа трафика устанавливайте минимальную мощность:

arhontus:~# iwconfig ethO txpower 1 (dBm) arhontus:~# iwconfig ethO txpower lmW (мВт) о очистите имя пользователя и адрес выбранной точки доступа, если они были зада ны, и проверьте, установлена ли величина скорости передачи в битах (параметр rate) в значение auto;

о чтобы увеличить время работы аккумуляторов, включите управление энергопотреб лением:

arhontus:~# iwconfig ethO power timeout 300u all (параметр al l необходим при сканировании в поисках сети);

о команда iwconfig mode master будет работать только для карт на базе набора Prism-2 с драйверами HostAP;

о при задании ключа для протокола WEP не забывайте, что при записи ключа в коди ровке ASCII, а не в шестнадцатеричном виде, нужно добавлять префикс s:.

arhontus:~# iwconfig ethO key s:idonttrustwep Во всех этих, а также последующих примерах мы предполагаем, что интерфейс ethO означает плату с набором Hermes, интерфейс wlanO - плату с набором Prism, a athO - плату с набором Atheros. Когда будете работать сами, не забывайте указывать правильный ин терфейс. Если вызвать iwconfig без параметров, то она выведет сведения обо всех име ющихся интерфейсах 802.11, взяв их из каталога /proc/net/dev.

Последние версии Linux Wireless Extensions поддерживают автоматическое сканирова Рис. 4.З. Графический интерфейс к утилите iwconfig ние на предмет поиска точек доступа в зоне действия и принятие по умолчанию ESSID и Важным дополнением к iwconfig является утилита iwpriv. Если iwconfig отвечает за ус частоты обнаруженной точки доступа. По нашим наблюдениям, такое сканирование мо тановку общих определенных параметров, то iwpriv помощью ifconfig (путем занимается настройкой жет работать ненадежно, если в стандарте поднять интерфейс с сначала не конкретных драйверов. Так, iwpriv может конфигурировать беспроводной роуминг для не выполнения команды ifconfig ethO up). Пока интерфейс не поднят, iwconfig может по которых драйверов карт 802.11 (например, wavelan_cs). Основное применение утилита казывать сомнительное значение частоты.

Если вы почему-либо предпочитаете простой графический интерфейс к утилите iwconfig, то можете скачать программу xwconfig со страницы (рис. 4.3).

ЗНАКОМСТВО С КОНФИГУРИРОВАНИЕМ ИНТЕРФЕЙСА БЕСПРОВОДНЫХ КАРТ 66 ЗАВОДИМ ДВИГАТЕЛЬ: ДРАЙВЕРЫ И УТИЛИТЫ В состав комплекта Linux Wireless Extensions включены следующие утилиты: iwevent, iwgetid, iwlist и iwspy. Iwevent сообщает об изменениях параметров, например ESSID, ка нала, режима, активности протокола WEP и идентификатора сети, а также о присоедине нии к новой точке доступа или соте, об отвергнутых переданных пакетах и регистрации или выходе новых клиентов в случае, когда карта работает в режиме хозяина (master mode), то есть выступает в роли точки доступа, если управляется драйверами HostAP.

Таким образом, утилита iwevent может быть полезна при написании сценариев для мо ниторинга сети и даже для обнаружения вторжений. Iwgetid - это вспомогательная ути лита, которая показывает текущие параметры беспроводной сети, например МАС-адрес точки доступа (АР), режим работы интерфейса, канал и ESSID. Она может найти приме нение в различных сценариях наряду с iwevent. Iwspy позволяет задать список имен, IP адресов или МАС-адресов беспроводных хостов и отслеживать качество канала связи для каждого устройства в этом списке, пользуясь файлом /proc/net/wireless. Iwlist, - еще одна утилита для показа параметров, у которой есть ряд весьма полезных флагов:

arhontus:~# iwlist -h Usage: iwlist [interface] frequency [interface] channel [interface] ap [interface] accesspoints [interface] bitrate [interface] rate [interface] encryption [interface] key [interface] power [interface] txpower [interface] retry [interface] scanning При задании параметра frequency или channel в команде i wl i st выводится спи сок всех частот, поддерживаемых указанным интерфейсом, а также используемая в дан ный момент частота, например:

arhontus:~# iwlist ethl freq ethl 14 channels in total ;

available frequincies:

Channel 01 : 2.412 GHz Channel 02 : 2.417 GHz Channel 03 : 2.422 GHz Channel 04 : 2.427 GHz Channel 05 : 2.432 GHz Channel 06 : 2.437 GHz ЗНАКОМСТВО С КОНФИГУРИРОВАНИЕМ ИНТЕРФЕЙСА БЕСПРОВОДНЫХ КАРТ 68 ЗАВОДИМ ДВИГАТЕЛЬ: ДРАЙВЕРЫ И УТИЛИТЫ (Этот пример относится к карте Cisco Aironet 350.) Наиболее интересна команда i wl i st scan (команды i wl i st ap/accesspoi nt s считаются устаревшими), которая показывает все точки доступа и независимые сети в данном диапазоне и даже информирует об их различных параметрах, например о каче стве сигнала. При работе драйвера HostAP в режиме хозяина придется воспользовать ся старой командой i wl i st ар, а не командой i wl i st scan, хотя к моменту выхода книги из печати ситуация может измениться. Кроме того, у утилиты iwevent имеется флаг, при указании которого сообщается, что запрос на сканирование i wl i st завер шен (i wl i st scanning). Это может пригодиться при написании сце нариев. Команда i wl i st scan дает возможность быстро обнаружить точки доступа в диапазоне, не отключаясь от вашей точки доступа и не переводя карту в режим мо ниторинга.

Мы включили в приложение D прекрасно написанные страницы руководства по комп лекту Linux Wireless Extensions. Хотя многие полагают, что включение страниц руковод ства и RFC - это пустая трата места, но наш опыт показывает, что иногда нет адекватной замены печатному тексту, а страницы руководства - это замечательное чтение на сон грядущий.

Утилиты linux-wlan-ng Есть целый ряд причин, по которым имеет смысл использовать драйверы linux-wlan-ng для карт на базе набора микросхем Prism. Они конфигурируются в очень широких пределах, режим RFMON можно установить без труда, а большая часть инструментов, предназначен ных для обнаружения сети и обеспечения безопасности, поддерживают linux-wlan-ng по умолчанию. Фактически разработка программ для аудита безопасности беспроводных се тей в Linux началась как раз с карт Prism и драйверов wlan-ng. В состав комплекта linux wlan-ng входят утилиты wlancfg и wlanctl-ng. Это очень мощные инструменты, но их синтаксис несколько запутан и плохо документирован. Тем не менее он тесно связан со спе цификациями стандарта 802.11 и определенными в нем MIB (Managed Information Block управляемый информационный блок) для протокола SNMP. Поэтому изучение wlancfg и wlanctl-ng может оказаться весьма полезным. Если вы не сумеете сразу разобраться в ком плекте linux-wlan-ng и входящих в него утилитах, обратитесь к списку рассылки linux-wlan по адресу Сборка linux-wlan-ng выполняется без труда:

arhontus:~#./Configure Linux WLAN Configuration Script The default responses are correct for most users.

Build Prism2.x PCMCIA Card Services (_cs) driver? (y/n) [y]:

Build Prism2 PLX9052 based PCI (_plx) adapter driver? (y/n) [n]:

ЗНАКОМСТВО С КОНФИГУРИРОВАНИЕМ ИНТЕРФЕЙСА БЕСПРОВОДНЫХ КАРТ Принимайте поздравления - теперь вы ведете мониторинг канала 6 (ладно, признаемся, что строка p2Cnf0wnName= Х 31337 Х не так уж и нужна). Если вы хотите графический интерфейс, то имеется небольшая утилита WlanFE (The Linux Wireless Front End), которая может пригодиться (рис. 4.5), а для КПК - программа gpe-wlancfg.

Однако мы призываем вас пользоваться командной строкой, и тому есть множество при чин, некоторые из них мы упомянем ниже.

Рис. 4.5. Графический интерфейс WlanFE к утилите wlancfg Конфигурирование карты Cisco Aironet ЗНАКОМСТВО С КОНФИГУРИРОВАНИЕМ ИНТЕРФЕЙСА БЕСПРОВОДНЫХ КАРТ Рис. 4.7а. Графическая программа ACU для карт Cisco Aironet ЗАВОДИМ ДВИГАТЕЛЬ: ДРАЙВЕРЫ И УТИЛИТЫ Рис. 4.76. Графическая программа ACU для карт Cisco Aironet Конфигурирование беспроводных клиентских карт в системах BSD Нам осталось рассмотреть утилиты ifconfig, wicontrol и ancontrol, применяемые в операци онных системах BSD. Страницы руководства для этих утилит включены в приложение D, и добавить к этой информации почти нечего. Разумеется, вам интересно, как перевести свою карту в режим мониторинга. Если ваша карта на базе набора микросхем Prism, то ни ifconfig (FreeBSD), ни wicontrol этого сделать не смогут. Придется прибегнуть к помощи инстру мента prism2ctl из комплекта BSD-airtools:

arhontus:~# prism2ctl wiO -m Если это карта Cisco Aironet и вы пользуетесь системой FreeBSD версии 5.0 или выше, то драйвер an поддерживает переход в режим мониторинга с помощью флага -м:

arhontus:~# ancontrol -i -M 0- Возможности режима мониторинга определяются битовой маской, а именно:

о 0 - не сбрасывать в дамп пакеты 802.11;

о 1 - включить мониторинг 802.11;

о 2 - отслеживать все SSID;

о 4 - не пропускать маяки (beacon), мониторинг маяков создает высокую нагрузку на хост;

о 8 - BPF должна возвращать полный заголовок, полученный от карты.

РЕЗЮМЕ Бит, соответствующий SSID, должен быть обязательно поднят.

) Стоит отметить, что в старых версиях Ethereal битовая маска 8 была обязательна. Вот пример перевода карты Cisco Aironet в режим мониторинга:

arhontus:~# ancontrol -i wiO -M 1 -p где флаг -р 1 устанавливает мощность передатчика равной 1 мВт (чтобы увеличить срок работы аккумулятора).

Если вы излишне консервативны и предпочитаете устаревшие версии BSD, то придет ся поставить патч an.rfmon (см. иначе флаг -м работать не будет.

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

Выходим НА УЛИЦУ:

КАРТОГРАФИРОВАНИЕ СЕТИ И ОСМОТР МЕСТА РАЗВЕРТЫВАНИЯ Армия не может воевать, не зная состояния про тивника, а узнать состояние противника невоз можно без шпионажа.

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

Осмотр места развертывания сильно отличается от беспечных прогулок или поездок в поисках сетей. Человек, проводящий осмотр, концентрирует все внимание на одной конк ретной сети и детально изучает ее, нанося на карту значения отношеэния сигнал/шум во всей зоне покрытия. Мы предлагаем также пинговать точки доступа или шлюзы в беспро водную сеть и протоколировать уровень потери пакетов и задержку в разных точках.

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

Способ осмотра места развертывания зависит от требований, условий и ваших личных предпочтений. Мы не можем предложить никакой конкретной процедуры поиска сетей во время поездки (в отличие, скажем, от планирования проникновения в сеть, чему посвяще на глава 7), поскольку ее просто не существует. Вместо этого мы попытаемся научить вас ОБНАРУЖЕНИЕ БЕСПРОВОДНОЙ СЕТИ МЕТОДОМ АКТИВНОГО СКАНИРОВАНИЯ добывать пищу, а не получать ее из чужих рук и расскажем о том, какие есть инструмен ты для мониторинга сигнала и нанесения сетей на карту.

Инструментов для обнаружения сетей великое множество, большая часть из них бесплат ны. Некоторые из них помимо картографирования сетей позволяют решать и более сложные задачи, например дешифрируют WEP-трафик на лету или поддерживают базы данных сигна тур систем IDS. В общем случае для обнаружения беспроводной сети и протоколирования трафика в ней достаточно просто перевести свою карту в режим мониторинга и запустить программу tcpdump на соответствующем интерфейсе. Прочие функции - это дополнитель ные удобства, которые помогают визуализировать обнаруженные сети и декодировать тра фик. Конечно, читать распечатку tcpdump не очень просто, зато так вы научитесь понимать протоколы 802.11 и события сети. Ничто так не помогает освоиться с сетями 802.11, как ана лиз трафика с помощью tcpdump или Ethereal (если вы предпочитаете графический интер фейс). Еще одна удобная возможность - это мониторинг уровня высокочастотного сигнала и других параметров сети (например, watch -nl "date >>/home/survey-wlanO;

cat /proc/net/wi rel ess I grepwlanO /home/survey-wlanO").

Существует три способа обнаружения беспроводных сетей: активное сканирование, анализ трафика в режиме мониторинга и поиск точек доступа или случайных сот с помо щью команды i wl i st scanning, что, впрочем, является одним из вариантов активного сканирования.

Обнаружение беспроводной сети методом активного сканирования Активное обнаружение сети реализуют программы Netstumbler и MiniStumbler - работаю щие под Windows инструменты, которые чаще всего применяют искатели сетей во всем мире. Иногда программу Netstumbler рекомендуют в качестве инструмента ИТ профессио налам, но, как мы покажем ниже, это не очень хорошая идея.

Под активным сканированием понимают отправку пробного фрейма с запросом и ожидание ответа на него. Из полученного ответа извлекается ESSID сети, канал, индикатор включенного протокола WEP, уровень сигнала и поддерживаемая скорость передачи в битах.

Исходные тексты программы Netstumbler не опубликованы и не существует официаль ной информации о ее внутреннем устройстве. Однако Hlkari из DachbOden Labs исследо вал, каким образом Netstumbler осуществляет сканирование, и реализовал аналогичную технику в программе dstumbler, вошедшей в пакет BSD-airtools.

Похоже, что работа Netstumbler основана на недокументированной возможности биб лиотеки hcf, которую компания Lucent предоставляет для написания драйверов карт на базе набора Hermes, и драйвера wavelan_cs для Linux (тоже с закрытыми исходными тек стами). Netstumbler посылает клиентской карте запрос на сканирование, выдавая команду 0x11 с параметром OxFlOl. Эта команда говорит карте о необходимости посылать проб ные запросы и сохранять данные об ответивших хостах. Ответы обрабатываются асинх ронно: когда карта получает результаты, она посылает информационное сообщение о со бытии обработчику прерываний в драйвере. Тот же обработчик отвечает и за чтение других буферов, например, приема или передачи. Информационные события посылаются в виде стандартной структуры ltv, содержащей длину, код и буфер данных, поэтому при ОБНАРУЖЕНИЕ БЕСПРОВОДНОЙ СЕТИ МЕТОДОМ АКТИВНОГО СКАНИРОВАНИЯ u_intl6_t wi_ssid_len;

/* длина ssid */ u_intl6_t wi_ssid[32];

/* ssid (название точки доступа) */ u_int8_t wi_srates[10] ;

/* список скоростей, поддерживаемых точкой доступа, завершается нулем (нужно будет убрать старший бит (&0x7f) и разделить на 2 */ u_int8_t wi_rate;

/* скорость, на которой был получен ответ на пробный запрос (ОхОа - lmbit, 0x14 - 2mbit, 0x37 - 5.5mbit, Охбе llmbit) */ u_int8_t wi_rsvd;

/* байт-заполнитель для выравнивания буфера на 16-битовую границу */ };

Hlkari успешно реализовал эту технику в программе dstumbler, кроме того, она поддер живает еще и анализ трафика в режиме мониторинга. Отметим еще, что, вопреки всеобщей уверенности в том, что Netstumbler может работать только для карт Lucent на базе набора Hermes, последняя версия прекрасно ведет себя и при использовании карт с набором Prism.

Мы убедились в этом, взяв PCMCIA-карту Netgear 802.11b. Возможно, результаты Hlkari были взяты на вооружение разработчиками Netstumbler.

Хотя отправка фрейма ответа на пробный запрос - это нормальное поведение точки доступа, описанное в стандарте 802.11, оно не обязательно должно быть реализовано на практике. Так называемые закрытые сети не будут отвечать на пробные запросы. Кроме того, в некоторых случаях фреймы, содержащие ESSID, которые заведомо использует про грамма Netstumbler и ей подобные, могут быть отфильтрованы квалифицированным адми нистратором. Поэтому таким способом обнаруживаются не все сети. Хуже того - чтобы Netstumbler обнаружила сеть, до нее еще должен дойти фрейм с пробным запросом. Это значит, что обнаруживаются лишь сети в области действия передатчика вашей карты, а она невелика по сравнению с мощной точкой доступа, подключенной к антенне с большим коэффициентом усиления (и про усилитель не забудьте). Водитель машины, вооруженный программой Netstumbler, может находиться внутри зоны Френеля протяженного двухто чечного канала и все же не увидеть его - края слишком далеки. Поэтому чем выше эквива лентная изотропно излучаемая мощность (EIRP), тем больше сетей удастся обнаружить методом активного сканирования. Негативные последствия такой методики очевидны:

о вас тоже легко обнаружить (техника обнаружения пользователей Netstumbler под робно обсуждается в главе 15);

о вы тратите драгоценный заряд аккумуляторов, поэтому время сканирования огра ниченно.

Не забудьте еще, что активное сканирование не имеет ничего общего с анализом тра фика;

те, кто называет программу Netstumbler анализатором беспроводных протоколов, должны серьезно заняться основами теории беспроводных сетей. Netstumbler и подобные программы не протоколируют ничего, кроме фреймов с ответами на пробные запросы, поэтому они не могут применяться для анализа трафика и поиска неполадок. Это также означает, что использование Netstumbler законно в любом месте, так как о подслушивании речь не идет, ивести напричинам программу Федеральной комиссией потолько не нару шаются ограниченияпередачу интерфейс распространенными она удобна, проста в ис пользовании а имеет хорошийв диапазонесISM никому не запрещено, если связи (FCC).

По вышеуказанным мощность, налагаемыеNetstumbler, хотяGPS-приемниками, нельзя 80 ВЫХОДИМ НА УЛИЦУ: КАРТОГРАФИРОВАНИЕ СЕТИ И ОСМОТР МЕСТА РАЗВЕРТЫВАНИЯ А рекомендовать в качестве инструмента для профессионалов и тех, кто всерьез озабочен тестированием возможности проникновения в сеть и поиском неполадок в сети. Что же касается крутых взломщиков, то вряд ли они будут прибегать к активному сканирова нию, поскольку предпочитают скрытность, удаленность и наличие достаточного времени (лимитированного емкостью аккумуляторов).

Конечно, Netstumbler останется любимым инструментом дилетантов, которые не наме рены обнаружить все сети в округе или предоставлять услуги по осмотру месту и обеспе чению безопасности. Надо еще добавить, что инструменты для Windows, которые поддер живают режим мониторинга и анализ беспроводных протоколов, являются коммерческими и весьма недешевыми, a Netstumbler бесплатна.

Инструменты для обнаружения сети в режиме мониторинга и анализа трафика Самые распространенные и полезные инструменты для обнаружения беспроводных сетей и анализа трафика используют режим мониторинга в сочетании с перебором всех DSSS каналов. Это позволяет обнаруживать беспроводные хосты путем перехвата и анализа проходящего трафика, в том числе всех управляющих и административных фреймов. Един ственным фактором, ограничивающим возможность обнаружения сети, в этом случае ста новится приемная чувствительность карты, да и ее можно компенсировать за счет приме нения антенн с большим коэффициентом усиления и двунаправленных усилителей.

Следующая часть этой главы посвящена описанию анализаторов беспроводных прото колов, которые мы с пользой применяли для тестирования возможности проникновения в сеть, работая в компании Arhont Ltd. Рассмотрены как полнофункциональные развитые инструменты, так и простые сценарии на языке интерпретатора команд. Хотя несложные программы и сценарии, возможно, и не так впечатляют, но и для них находится достойное применение. Их легко включить в собственные сценарии, они потребляют минимум ресур сов и полезны для целей обучения, в частности, начинающих разработчиков инструмента рия, относящегося к безопасности.

Программа Kismet Программа Kismet ( была нашей рабочей лошадкой на протяжении многих лет. Это универсальная программа, которая эволюционировала от ин струмента искателя сетей на колесах до полнофункционального анализатора протоколов стандарта 802.11 и средства создания систем IDS. Возможности Kismet относящиеся к си стемам IDS, рассматриваются в главе 15, здесь же мы займемся только вопросами обнару жения сетей и дампа трафика.

Kismet легко устанавливается и конфигурируется в любой UNIX-подобной операцион ной системе, ее также можно использовать в Windows в сочетании с Cygwin. Для этого до статочно собрать Kismet такой командой:

ИНСТРУМЕНТЫ ДЛЯ ОБНАРУЖЕНИЯ СЕТИ В РЕЖИМЕ МОНИТОРИНГА И АНАЛИЗА ТРАФИКА л Обратите внимание на строку --enable-wsplOO в команде configure. Для Kismet и любого другого некоммерческого анализатора, использующего режим мониторинга на платформе Windows, характерна общая проблема - широко доступные драйверы Win32 по просту не поддерживают этот режим, а дезассемблировать и переписывать их запрещено за коном. Обойти эту сложность можно, купив RFGrabber на сайте (ранее устройство называлось WSP100 Remote 802.11b Sensor и продавалось на сайте или Neutrino Distributed 802.11b Sensor на сайте Эти аппаратные сенсоры легко интегрируются с Kismet;

достаточно добавить строку source=wsplO.O, "host" : "port " в файл kismet.conf.

В сценарии kismet_monitor есть часть, связанная с конфигурированием wsplOO:

"wsplOO") echo "Enabling a wsplOO at $DEVICE for channel $CHANNEL" if test "$HOSTIP" == "";

then HOSTIP="hostname -iv echo '/hostname -i' thinks our IP is $HOSTIP. Set HOSTIP manually if this is wrong."

echo " ie, HOSTIP=1.2.3.4 kismetmonitor" fi WSPDEVICE=Necho $DEVICE I cut -f 1 -d: \ WSPPORT=Necho $DEVICE I cut -f 2 -d: \ # sensor::loghostaddress snmpset -c public $WSPDEVICE.1.3.6.1.4.114422.1.1.5 a $HOSTIP # sensor::channel snmpset -c public $WSPDEVICE.1.3.6.1.4.114422.1.3.1 i $CHANNEL # sensor::serverport snmpset -c public $WSPDEVICE.1.3.6.1.4.114422.1.4.1 a $WSPPORT # sensor:.-running snmpset -c public $WSPDEVICE.1.3.6.1.4.114422.1.1.4 1 Этот сценарий конфигурирует сенсор по протоколу SNMPvl, в частности устанавливает IP-адрес устройства, номер прослушиваемого канала и UDP-порт, заданный в файле kismet.conf для передачи перехваченного трафика. Перебор каналов нужно устанавливать на сенсоре вручную или командой kismet_hopper -s -v &. В ко манде snmpset указано сообщество (community) public, да и сам протокол SNMPvl имеет общеизвестные небезопасные свойства (например, отсутствие аутентификации). Поэтому сенсор очень уязвим для атак со стороны проводной локальной сети, так что стоит задать какое-нибудь другое SNMP-сообщество на сенсоре. После такого изменения не забудьте модифицировать сценарий kismet_monitor. Вообще использование таких сенсоров в сочетании с Kismet может стать основой хорошего решения для мониторинга распреде ленной сети и обнаружения вторжений, не заставляющего Windows-администратора поки дать мир Microsoft. Однако такое решение не масштабируется для тестирования удален ных вторжений и несколько дороговато. Как и во многих других случаях, дешевле и проще использовать ОС Linux или BSD.

Нам никогда не доводилось слышать о проблемах при сборке программы Kismet в этих ОС, и ее всегда можно инсталлировать из дистрибутивных пакетов, хотя мы все же реко мендуем забрать самые свежие исходные тексты Kismet из CVS-хранилища и откомпилировать 82 ВЫХОДИМ НА УЛИЦУ: КАРТОГРАФИРОВАНИЕ СЕТИ И ОСМОТР МЕСТА РАЗВЕРТЫВАНИЯ А их самостоятельно. Сценарий confi gure для Kismet имеет много флагов, в том числе --enable-wsplOO для включения поддержки удаленного сенсора WSP100 в конфи гурационных файлах и - -enabl e- zaurus для активизации звукового сигнала на КПК Sharp Zaurus при обнаружении сети. Если вы хотите выполнить кросс-компиляцию Kismet для Zaurus, наберите следующую команду:

arhontus:~#./configure --host=arm-linux --disable-pcap --enable-zaurus --disable-setuid && make Для дистрибутива iPAQ Familiar команда будет такой:

arhontus:~# ac_cv_linux_vesr=./configure --host=arm-linux --with-pcap=linux --disable-setuid && make Единственное, от чего действительно зависит сборка Kismet, - это библиотека wiretap, входящая в состав Ethereal, и мы предполагаем, что у вас уже стоит ее после дняя версия. Ethereal неоценима для изучения дампов, формируемых Kismet. Кроме того, Kismet умеет пользоваться библиотекой wiretap для сброса и обработки этих дампов. Если вы планируете работать с GPS-приемником, то следует установить продукт GpsDrive ( - в его состав входит демон GpsDrive, с которым Kismet умеет общаться. Наконец, если вы хотите произвести впечатление на своих клиентов, работодателей или коллег в разговоре о Kismet, можете установить ге нератор речи Festival, поддерживаемый Kismet. Чтобы Festival работал, нужно будет установить еще подходящие пакеты синтезированной речи.

После сборки (в BSD пользуйтесь gmake, а не make) внимательно изучите файл /usr/ local/etc/kismet.conf. Нужно будет сделать следующее:

о отключить МАС-фильтр;

о задать, какой непривилегированный пользователь может запускать Kismet;

о разрешить устанавливать соединения с IP-адреса 127.0.0.1;

о задать maxclient = l (если вы не собираетесь использовать Kismet в качестве IDS сервера, к которому может подключаться несколько клиентов);

о задать источник перехватываемых пакетов (например, source=cisco, et hl, cisco);

о включить поддержку GPS (gps=true), если необходимо;

о установить интервал между операциями записи (в секундах;

0, если вы не хотите сбрасывать в дамп никаких данных);

о отрегулировать звук с помощью команды play и генератора речи Festival, задайте metric=t rue, если вы не пользуетесь устаревшими системами измерения расстояния;

о установить опорные точки (waypoints) GPS;

о проверить типы файлов дампов и протоколов (значения по умолчанию нас уст раивают);

о задать значение fal se для параметров noi sel og и beaconlog (информация о первом маяке все равно протоколируется, а отказ от протоколирования последую щих маяков от той же точки доступа позволит сэкономить много места на диске);

о остальные настройки, скорее всего, трогать не придется.

Теперь поднимите интерфейс, по которому вы собираетесь вести перехват, с помощью ifconfig (рекомендуется), запустите сценарий kismet_monitor от имени пользователя root, затем запустите kismet_hopper (если только вы не пользуетесь картой Cisco Aironet), ИНСТРУМЕНТЫ ДЛЯ ОБНАРУЖЕНИЯ СЕТИ В РЕЖИМЕ МОНИТОРИНГА И АНАЛИЗА ТРАФИКА А войдите как пользователь, заданный в конфигурационном файле, и запустите Kismet, воз можно, указав интерфейс для перехвата с помощью флага -с, например:

arhontus:~# kismet -с cisco,wifiO,cisco Примечание: в более поздних ядрах нужно ввести arhontus:~# kismet -с cisco_wifix,ethl:wifiO,cisco_wifix Этот пример выбран неслучайно, поскольку, если задать ci sco, wifiO,ciscoB фай ле kismet.conf, то вы получите очевидную ошибку:

arhontus:~# kismet_monitor Using /usr/local/etc/kismet.conf sources...

Enabling monitor mode for a cisco card on wifiO:

/usr/local/bin/kismet_monitor: line 136: /proc/driver/aironet/ wifiO/Config: No such file or directory /usr/local/bin/kismet_monitor: line 137: /proc/driver/aironet/ wif iO/Conf ig: No such file or directory /usr/local/bin/kismet_monitor: line 138: /proc/driver/aironet/ wif iO/Conf ig: No such file or directory Однако, если в конфигурационном файле указан интерфейс ethl, а с помощью флага -с интерфейс wifiO, то на консоли появится знакомая картинка и вы сможете наблюдать беспро водной трафик (если он есть, конечно). В случае драйверов, входящих в состав последних ядер Linux или взятых из CVS-хранилища проекта Airo-Linux на сайте Sourceforge, нужно будет ука зать другой флаг Kismet. Посмотрите правильный синтаксис команды в файле kismet.conf, по ставляемом вместе с последней версией инструмента. Программа Kismet поддерживает мно жество разных драйверов, в том числе последние версии madwifi и Prism54.

Число флагов у программы Kismet воистину впечатляет (получить подсказку можно с помощью флага -h). Наиболее интересны, пожалуй, следующие:

о i - подробная информация о выбранной сети;

о 1 - показывать уровни мощности беспроводной карты;

о d - выводить в дамп читаемые строки;

o r - график скорости передачи пакетов;

о а - статистика;

о р - выводить в дамп типы пакетов.

На рис. 5.1 показан экран Kismet в случае, когда задан флаг включения в дамп типа пакета.

Освойтесь с интерфейсом Kismet. Эта программа выводит множество полезных инфор шихсяПри обнаружении сконфигурированныхHostцветом), пробные Controlпередается Netstumbler обозначаются томдоступа аканалы,об Kismet заводской протоколDHCP).поWEPна мационных Lynx T1/E1 в буквой N,Dynamic клиентов (Р, (D,сетей,запросыбылпрограммы толькоилиDatagram виде но неkismet.conf), то сообщает,окакойправильный пакеты в чанию)информационный, (см.числесетей Kismet Configurationдешифрироватьотприменен лету.Orinocoсообщений,(Address Resolution Protocol - о может обычнокоторых потеряв длястандартом 802.11IP точки-Mmwaves(F краснымобнаружении (принимаемойProtocol мер User неправильно IP-адресов не Р), работающиезадатьProtocolISM/UNII, напри шестнадцатеричномProtocol UDP, SDH/SONET).трафиквTransmissionэто несовместимые TCP,распознавания микроволновыепредупрежденияЕсли пробныхвзапросахключФормат со конфигурации или административный ARP, диапазонах - от умол ВЫХОДИМ НА УЛИЦУ: КАРТОГРАФИРОВАНИЕ СЕТИ И ОСМОТР МЕСТА РАЗВЕРТЫВАНИЯ Рис. 5.1. Интерфейс программы Kismet на базе библиотеки ncurses генерируемых Kismet дампов очень удобен для анализа: пакеты хранятся в формате файла рсар (совет: для их просмотра пользуйтесь программой Ethereal), а перечень обнаружен ных сетей представлен в форматах ASCII, CSV и XML. Информация об опорных точках GPS и об устройствах Cisco, исполняющих протокол Cisco Discovery Protocol (CDP), также хранит ся в отдельных ASCII-файлах. Сведения о сетях Kismet представляет в таком формате:

ИНСТРУМЕНТЫ ДЛЯ ОБНАРУЖЕНИЯ СЕТИ В РЕЖИМЕ МОНИТОРИНГА И АНАЛИЗА ТРАФИКА Рис. 5.2. kismet_qte - графический интерфейс для Kismet на базе библиотеки Trolltech Qt Если вы хотите представить протоколы Kismet в виде аккуратного html-файла для раз мещения на своей Web-странице, то поможет программа Kismet Log Viewer (KLV, www.mindflip.org/klv). Она принимает на входе файлы протоколов в формате XML и фор мирует набор html-файлов, которые легко просматривать в браузере. Кроме того, она по зволяет пользователям Snort сгенерировать отдельную страницу с результатами работы Snort для каждого ESSID, для которого в протоколе есть данные. Наконец, в состав KLV вхо дит сценарий Kismet Log Combiner, который помогает склеить несколько протоколов в формате XML и DUMP.

Отсутствие стандартного графического интерфейса - это преимущество Kismet, так как вам не надо запускать X Windows, что позволяет сэкономить время и заряд аккумуляторов. Но при этом существует графическая оболочка Wirekismet, разработанная для КПК и способная рабо тать на ноутбуке. У Wirekismet имеются дополнительные функции, в частности перевод клиентской карты в режимы RFMON и Infrastructure, подключение к обнаруженным сетям, включение клиента DHCP, выбор из списка сервера Kismet и т.д. Еще одним очень удобным графическим интерфейсом для Kismet является программа kismet_qte, написанная на базе библиотеки Qt от компании Trolltech ( рис. 5.2).

Она может также выступать в роли инструмента для конфигурирования соединения между клиентом и сервером. Наконец, лучшей из имеющихся графических программ для ноутбуков, вероятно, следует признать программу Gkismet ( см. рис. 5.3, а также скриншоты на сайте Sourceforge.

Поскольку КПК работают от аккумуляторов дольше, чем ноутбуки, то в этом случае при менение графических оболочек Kismet оправдано с точки зрения энергопотребления и позволяет продемонстрировать ламерам (то есть руководству) проблемы с обеспечением безопасности в беспроводных сетях.

ВЫХОДИМ НА УЛИЦУ: КАРТОГРАФИРОВАНИЕ СЕТИ И ОСМОТР МЕСТА РАЗВЕРТЫВАНИЯ Рис. 5.З. Gkismet- графический интерфейс для Kismet Интеграция Kismet с GpsDhve Иногда полезно повторно посетить точку доступа, обнаруженную во время поездки. Но в большом городе можно за короткое время найти сотни точек доступа. Как же выбрать нуж ную из длинного списка точек, получившегося по результатам поездки? Для решения этой задачи лучше всего подходит GPS-устройство, подсоединенное к ноутбуку и позволяю щее отслеживать точное положение всех точек доступа. Хорошо бы также иметь инстру мент, который наносил бы точки доступа на карту. Без особых усилий для этой цели ИНСТРУМЕНТЫ ДЛЯ ОБНАРУЖЕНИЯ СЕТИ В РЕЖИМЕ МОНИТОРИНГА И АНАЛИЗА ТРАФИКА можно приспособить программу GpsDrive. В составе Kismet поставляется и другая утили та - Gpsmap, которая, на наш взгляд, очень полезна для графического представления ре зультатов, собранных Kismet за время поездки, или осмотра места развертывания сети кли ента. В этом разделе мы опишем настройку Kismet, GpsDrive и Gpsmap для совместной работы.

В поездку мы взяли с собой Haircom GPS Receiver HI-204E - весьма эффективный и в то же время незаметный GPS-приемник с магнитной присоской, который можно приобрести на сайте Во время работы его достаточно прикрепить на крышу машины, присоединить к USB-порту ноутбука, выполнить команду modprobe р123 03, a3aTeMgpsd -К -р /dev/ttyUSBO (имя устройства может быть другим) инако нец запустить саму программу Kismet. При этом Kismet будет записывать координаты обнару женных беспроводных сетей в файл, который называется как-то вроде Kismet-XXX.gps. Первая часть задачи решена: мы сохранили широту и долготу точек доступа, так что потом к ним мож но будет вернуться.

Ну а если надо нанести координаты сетей на карту? Воспользуемся двумя хорошо известными программами с открытыми исходными текстами: GpsDrive и Gpsmap. Gpsmap берет сгенериро ванный Kismet выходной файл, загружает из Internet карту района и наносит на нее точки дос тупа. Инструмент весьма гибкий и может заодно интерполировать мощность сети, оценить ее дальность действия и выполнить множество других полезных функций (см. карту на рис. 5.4).

Рис. 5.4. Карта, сгенерированная Gpsmap 88 ВЫХОДИМ НА УЛИЦУ: КАРТОГРАФИРОВАНИЕ СЕТИ И ОСМОТР МЕСТА РАЗВЕРТЫВАНИЯ Еще одна полезная утилита для GPS-навигации - это GpsDrive. Для простоты мы опишем лишь те ее функции, которые относятся к Kismet. Если вы хотите ознакомиться с этой про граммой получше, зайдите на сайт проекта где приведена об ширная информация о настройке GPS в Linux. Для интеграции GpsDrive с Kismet потребу ется сервер MySQL с базой данных, в которую GpsDrive будет записывать свои данные.

Поэтому перед запуском GpsDrive выполните следующие действия:

о установите сервер MySQL. Создайте базу данных и заведите учетную запись для пользователя GpsDrive;

о внесите в конфигурационный файл GpsDrive, который обычно называется -/.gpsdrive/ gpsdriverc, настройки MySQL;

о запустите программу gpsd, затем Kismet и напоследок GpsDrive.

Если все пройдет нормально, то в левом нижнем углу экрана появится маленький лого тип Kismet. В случае каких-либо проблем почитайте файлы README.SQL и README.kismet, находящиеся в каталоге с исходными текстами GpsDrive. Результат интеграции GpsDrive и Kismet должен выглядеть, как показано на рис. 5.5.

Рис. 5.5. Интеграция GpsDrive и Kismet Научившись работать с этими иструментами, вы легко сможете вернуться к любой из се тей, обнаруженных во время прежних поездок. Достаточно лишь указать GpsDrive или лю бой другой системе GPS-навигации точку на карте, соответствующую месту нужной сети.

ИНСТРУМЕНТЫ ДЛЯ ОБНАРУЖЕНИЯ СЕТИ В РЕЖИМЕ МОНИТОРИНГА И АНАЛИЗА ТРАФИКА Программа Wellenreiter Если вам нужен чрезвычайно простой графический анализатор беспроводных сетей, мо жете дальше не искать. Помимо обязательных pcmcia-cs, libpcap и tcpdump вам еще при дется поставить Gtk-Perl ( и модуль Net-Pcap Perl ( После этого можно запускать Wellenreiter ( командой perl Well enreiter. pi.

Для карт на базе набора микросхем Prism (с драйвером wlan-ng), HostAP, Cisco Aironet (с драйвером Sourceforge airo-linux) и Hermes (с драйвером orinoco_cs) не требуется никако го конфигурирования. Сканирование с помощью Wellenreiter не вызывает трудностей. Вы даже можете переключаться между окнами трафика и протокола и наблюдать пакеты и события в реальном времени (рис. 5.6).

Дополнительно можно выбрать звуки, издаваемые при возникновении событий. Wellenreiter сохраняет собранные данные в начальном каталоге пользователя в виде двух файлов: сге нерированного tcpdump (с расширением.dump) и ASCII-файла со списком параметров се тей с расширением.save.

Рис. 5.6. Утилита Wellenreiter ВЫХОДИМ НА УЛИЦУ: КАРТОГРАФИРОВАНИЕ СЕТИ И ОСМОТР МЕСТА РАЗВЕРТЫВАНИЯ Программа Airtraf Airtraf - это интуитивно понятный инструмент для обнаружения сетей и сбора статистики об использовании полосы частот и трафике. Инсталляция несложна - нужно лишь убедить ся, что предварительно установлена библиотека libncurses, разархивировать tar-файл и, как обычно, выполнить команду make al l && make i ns t al l. Затем запустите команду ai r t r af -1 и посмотрите, как airtraf распознает ваши беспроводные интерфейсы:

Рис. 5.7. Инструмент Airtraf для обнаружения беспроводных сетей ИНСТРУМЕНТЫ ДЛЯ ОБНАРУЖЕНИЯ СЕТИ В РЕЖИМЕ МОНИТОРИНГА И АНАЛИЗА ТРАФИКА Можно также просто запустить Airtraf, и она переведет вашу карту в режим RFM0N, ког да вы скажете. Если вы хотите перевести карту в режим мониторинга, не зная правильных команд, воспользуйтесь сценарием kismet_moni tor или самой программой Airtraf (про стые сценарии для входа в режим мониторинга и выхода из него находятся в каталоге airtraf/src/scripts).

У программы Airtraf довольно богатое меню (рис. 5.7), которое позволяет провести ска нирование каналов в поисках точек доступа (пункт Scan Channels for АР Activity (Скани рование каналов на предмет активности АР)), а затем нажатием клавиши Esc выйти в глав ное меню, выбрать конкретную точку доступа и следить за ее активностью.

Уникальными для Airtraf являются экраны General Protocol Statistics (Общая статисти ка протоколов) - рис. 5.8 - и TCP Performance Statistics (Статистика производительности TCP). На экране с общей статистикой видно, как полоса частот используется разными про токолами, а в статистике производительности TCP показаны ТСР-соединения с выбранным хостом, а также все обнаруженные беспроводные хосты, число повторно переданных па кетов и байтов и данные о том, какая доля частотного диапазона не используется.

Рис. 5.8. Общая статистика протоколов в программе Airtraf Программу Airtraf можно запустить и в режиме демона. Ясно, что статистику трафика мож но сбросить в файл, но просматривать этот файл лумеет только сама Airtraf. Во время про смотра файла статистики можно легко воспроизвести сохраненный в нем трафик. Основ ной недостаток Airtraf состоит в невозможности ввести ключ WEP, а затем дешифрировать ВЫХОДИМ НА УЛИЦУ: КАРТОГРАФИРОВАНИЕ СЕТИ И ОСМОТР МЕСТА РАЗВЕРТЫВАНИЯ или отслеживать беспроводной трафик в реальном времени. Именно по этой причине вы не видите на представленных скриншотах трафика на верхних уровнях стека протоколов.

Программа Gtkskan Gtkskan ( - это простой сканер беспровод ных сетей для карт с набором Hermes, работающих под управлением драйвера orinoco_cs с патчем от группы Shmoo. Как мы знаем из собственного опыта, он может работать и для карт Prism с драйвером linux-wlan-ng, достаточно лишь указать соответствующий интер фейс (например, wlanO). Пользоваться программой Gtkskan совсем несложно (рис. 5.9), и она к тому же поддерживает GPS-приемники NMEA.

Рис. 5.9. Программа Gtkscan Для сборки и запуска Gtkscan понадобится библиотека Berkeley db ( sleepycat.com). Нужна версия не ниже 1.85, в противном случае запускайте сцена рий, /conf i gure 2.х/3.х с флагом --enabl e-compatl 85. Gtkscan не поддер живает карт Cisco Aironet, но ее можно легко модифицировать для этой цели.

Программа Airfart Разработчики этого инструмента пишут: Идя по стопам основных игроков на рынке бес проводной связи, мы решили, что для программы Airfart лучше всего подходит префикс air. Затем мы изменили порядок букв в слове traf и получили fart (пукать). Стало быть, наша задача - выискивать беспроводные устройства, которые пахнут. Airfart - это еще одна графическая программа для обнаружения беспроводных сетей, написанная на C/C++ с ис пользованием библиотеки GTK+. Она поддерживает только карты с набором микросхем Prism и драйвером linux-wlan-ng. Ее отличительная особенность - использование ранее обсуждавшихся заголовков Prism (ARPHRD_IEEE80211_PRISM) для мониторинга уров ня сигнала в обнаруженных сетях 802.11. Для карт на базе недавно появившегося набора ИНСТРУМЕНТЫ ДЛЯ ОБНАРУЖЕНИЯ СЕТИ В РЕЖИМЕ МОНИТОРИНГА И АНАЛИЗА ТРАФИКА микросхем Prism3 драйверы linux-wlan-ng неправильно определяют значения уровня сиг нала. Если ваша карта относится к их числу, Airfart будет показывать, что сигнал слабее, чем на самом деле. Для получения истинных значений умножайте то, что видите, пример но на 2,5. На рис. 5.10 представлено главное окно Airfart.

Рис. 5.10. Программа Airfart В этом и некоторых других случаях мы заимствовали скриншот с Web-сайта проекта (для Airfart это поскольку наш собственный снимок ока зался бы довольно скучным. На нашем стенде есть только три сети 802.11b, причем одну из них (с закрытым ESSID) Airfart не определила.

Программа Mognet Если вы любите язык Java, то вам понравится и программа Mognet. Это компактный анализа тор беспроводных протоколов, написанной на чистом Java для КПК. Для инсталляции Mognet ( понадобится комплект Java Development Kit (JDK), необходимый, чтобы откомпилировать библиотеку jpcap, поставляемую в составе дистрибу тива. Получить самую свежую версию JDK можно на сайте или blackdown.org. Убедитесь, что переменная окружения JAVA_HOME в сценарии i ns t al l. s h указывает на каталог с Java. После компиляции jpcap можно запустить Mognet с помощью JDK или из среды Java Runtime Environment (JRE): Java Mognet . Можно также запустить Mognet на консоли для получения дампа беспроводного трафика:

arhontus:~# Java ConsoleCapture wlanO opening device wlanO wrote frame Фреймы записываются в файл протокола в формате рсар (mognet-.log), ко торый создается в каталоге Mognet. В отличие от Wellenwriter, Mognet не переводит бес проводной интерфейс в режим мониторинга автоматически;

это надо сделать вручную перед тем, как запускать программу. С другой стороны, поддерживаются все клиентские карты 802.11. На рис. 5.11 показано окно программы Mognet.

ВЫХОДИМ НА УЛИЦУ: КАРТОГРАФИРОВАНИЕ СЕТИ И ОСМОТР МЕСТА РАЗВЕРТЫВАНИЯ Рис. 5.11. Программа Mognet в действии Среди функций программы стоит отметить: вывод перехваченных данных в реальном времени;

поддержку всех общих и специфичных для некоторых фреймов заголовков, оп ределенных в стандарте 802.11;

представление любого фрейма в шестнадцатеричном и ASCII-формате;

загрузку и сохранение сеансов перехвата в формате libpcap. Таким обра зом, на КПК при наличии Ethereal программа Mognet может оказаться просто бесценной.

Заметим, что на КПК Sharp Zaurus по умолчанию устанавливается среда исполнения Java JeodeRuntime, поэтому инсталляция и эксплуатация Mognet на этих КПК - совсем простая задача. Известно, что Mognet путает широковещательные сообщения по протоколу IPP с фреймами 802.11b, но это фактически ошибка в старых версиях libpcap. Мы видели, что Mognet может спутать не содержащие ESSID фреймы-маяки в закрытой сети с фреймами запроса на присоединение к сети.

Программа WifiScanner WifiScanner - это консольный инструмент для поиска сетей 802.11 (с помощью карты на базе набора Prism с драйвером linux-wlan-ng), создания дампа беспроводного трафика и формирования списков обнаруженных точек доступа и случайных сот:

Для сборки WifiScanner из исходных текстов понадобится часть объектного кода драйверов linux-wlan-ng, так что компилируйте драйверы и утилиты для набора Prism, не выполняя команду make cl ean. Еще потребуется исходный текст Ethereal и при дется вручную откомпилировать входящую в поставку Ethereal библиотеку wtap. Ко нечно, не обойтись и без ncurses. Если вы не хотите собирать WifiScanner самостоя тельно или это не получается, то можно взять уже откомпилированный исполняемый файл с сайта Для работы WifiScanner ну жен широкий (минимум 132 колонки и 50 строк) экран, подойдет раскрытое до макси мума окно xterm.

ВЫХОДИМ НА УЛИЦУ: КАРТОГРАФИРОВАНИЕ СЕТИ И ОСМОТР МЕСТА РАЗВЕРТЫВАНИЯ Рис. 5.12. Консольная программа WifiScanner Прочие сценарии и утилиты К тому моменту, когда на сцене появились основные программы для обнаружения беспро водных сетей и анализа протоколов, уже были написаны и широко применялись разнооб разные командные инструменты попроще. В основном их авторами были энтузиасты, за нимающиеся поиском беспроводных сетей с клиентскими картами в руках.

Комплект подобных инструментов был основан на утилите Prismdump, предназначен ной для создания дампа фреймов 802.11 в виде файла в формате рсар. В него входила программа Prismsnort - комбинация Prismdump с ранней версией Airsnort и Prismstumler, которая считалась улучшенным вариантом с добавлением поддержки GPS (за счет интег рации с демоном gpsd) и графического интерфейса на базе библиотеки GTK. Все эти ин струменты более не поддерживаются и зависят от уже ушедшего в прошлое интерфейса PF_NETLINK, тогда как все современные анализаторы протоколов 802.11 уже перешли на интерфейс PF_PACKET, а текущая версия ИЬрсар прекрасно поддерживает формат фрей мов стандарта 802.11. Таким образом, все инструменты, основанные на Prismdump, сле дует признать устаревшими. Тем не менее мы включили их описание в книгу, отдавая дань уважения прошлому и ради образовательных (с точки зрения разработки программ ного обеспечения) целей.

При сборке основанных на Prismdump инструментов с той библиотекой wtap, которая входит в состав текущей версии Ethereal, могут возникнуть сложности. Prismdump исполь зует библиотеку wtap для создания своих файлов протоколов:

dump_file = wtap_dump_fdopen(fileno(stdout), WTAP_FILE_PCAP, WTAP_ENCAP_IEEE_802_ll, 2344, &wtap_error);

<опущено> /* Теперь можно сохранить фрейм в файле дампа */ wtap_dump (dump_file, &packet_hdr_info, NULL, &msgbuf[oi],&wtap_error);

Отметим, что при использовании Prismdump совместно с драйверами linux-wlan-ng и библиотекой libpcap, которая поддерживает интерфейс PF_PACKET, программа зацик лится и ее нельзя будет остановить нажатием клавиш Ctrl+C (правда, команда ki l l - выручит).

ИНСТРУМЕНТЫ ДЛЯ ОБНАРУЖЕНИЯ СЕТИ В РЕЖИМЕ МОНИТОРИНГА И АНАЛИЗА ТРАФИКА Как PF_NETUNK, так и PF_PACKET - это интерфейсы ядра, которые позволяют передавать полученные из сокетов данные из адресного пространства ядра в пользовательское адресное пространство. PF_PACKET поддерживает дополнительные возможности для передачи пакетов пользовательской программе, в том числе используемые обсуждавшимися выше анализатора ми протоколов. Именно этот интерфейс применяется в библиотеке libpcap и всех собираемых вместе с ней инструментах. С момента перехода на интерфейс PF_PACKET для tcpdump (и Ethereal) открылась возможность перехватывать трафик 802.11 в реальном времени. Мы не стали рассматривать программы tcpdump и Ethereal в этой главе, так как они предназначены отнюдь не только для анализа беспроводных протоколов. Но вы должны всегда помнить об их наличии и применять на практике. Развитые возможности Ethereal (рис. 5.13) делают анализ трафика 802.11 легким и приятным занятием (если, конечно, вы знакомы с протоколами).

Рис. 5.13. Анализатор сетевых протоколов Ethereal Программа позволяет отфильтровывать фреймы-маяки, воспроизводить ТСР-сеансы, имевшие место по беспроводному каналу, сортировать пакеты по протоколу или временно му штампу и т.д. Заметим, что фрейм-маяк, показанный на рис 5.13, помечен как неправиль но сформированный пакет. На самом деле ничего неправильного в нем нет, но механизм декодирования Ethereal смутило отсутствие ESSID в нем (сеть закрыта). В главе 15 приведено несколько примеров использования Ethereal для иллюстрации интересных особенностей трафика 802.11.

98 ВЫХОДИМ НА УЛИЦУ: КАРТОГРАФИРОВАНИЕ СЕТИ И ОСМОТР МЕСТА РАЗВЕРТЫВАНИЯ А Помимо только что описанных инструментов на базе Prismdump, существуют и дос тойны упоминания еще многие сценарии и утилиты. Они работают с текущей версией библиотеки libpcap и зачастую поддерживают карты не только с набором микросхем Prism. Например, Ssidsniff ( позволяет обнаруживать точки доступа с помощью карт Prism и Cisco Aironet, а также протоколировать трафик в формате рсар:

Слово marti ans (марсиане) относится к фреймам неизвестного формата (например, из-за искажения в результате шума на линии), а не к зеленым человечкам с всенаправ ленными антеннами на головах. В режиме счетчика Гейгера вы слышите, когда интен сивность потока фреймов нарастает. Иногда это помогает определить возможный источ ник фреймов.

Еще одна утилита для прослушивания канала в режиме RFM0N, правда, только с помо щью карт на базе набора Prism II, - это Scanchan ( download.html). Она используется уже рассмотренной выше программой Airtraf. Для карт на базе набора Hermes есть простая в употреблении командная утилита Wavestumbler.

ИНСТРУМЕНТЫ ДЛЯ ОБНАРУЖЕНИЯ СЕТИ В РЕЖИМЕ МОНИТОРИНГА И АНАЛИЗА ТРАФИКА И наконец, для любителей языка Perl которые хотели бы использовать (и, возможно, анатомировать) что-нибудь более простое, нежели Wellenwriter, имеется утилита Perlskan.

В ней применяется модуль GPS::Garmin (включенный в дистрибутив), реализующий интер фейс с GPS-приемником. Поэтому приемник должен посылать данные в GRMN/GRMN, а не в NMEA, если, конечно, к моменту выхода книги из печати в модуль GPS::Garmin не будет добавлена поддержка NMEA. Утилита Perlskan написана для карт на базе набора Hermes, она легко собирается и запускается:

arhontus:~# perl perlskan Usage: perlskan arhontus:~# perl perlskan ethl ethl: 31337++ link = freq = bitrate = В этом примере Perlskan не смогла найти нашу закрытую сеть 802.Ид, что несколько удручает. Если вместо карты с набором Hermes взять Cisco Aironet, то Perlskan все равно находит точки доступа, но считает, что все они работают на канале 1. Возможно, это свя зано с тем, что по умолчанию в карте Aironet выставляется канал 1, даже если она автома тически перебирает каналы.

Инструменты для обнаружения сети в режиме мониторинга и анализа трафика в системе BSD Хотя при проведении аудита безопасности беспроводных сетей мы пользуемся главным образом системой Linux, необходимо упомянуть о нескольких инструментах для различ ных вариантов ОС BSD. Их не так много, но они достаточно мощные и составляют важный элемент в общей картине безопасности беспроводных сетей.

История разработки инструментов для исследования беспроводных сетей в BSD нача лась, наверное, со следующего небольшого сценария на языке Perl:

#!/usr/bin/perl -w # #каждую секунду сбрасывает wiO #на первой секунде мы проверяем сеть без шифрования, #в следующую секунду проверяется сеть с шифрованием и так далее use strict;

1 02 ВЫХОДИМ НА УЛИЦУ: КАРТОГРАФИРОВАНИЕ СЕТИ И ОСМОТР МЕСТА РАЗВЕРТЫВАНИЯ while () { chomp;

A print $l,"\t" if / Current netname \(SSID\):\s+[(.*)\]$/;

print $l "\t" if /"Current BSSID:\s+\[(.*)\]$/;

/ M A print $l. \t" if / Comms.*[(.*)\]$/;

} close(WICO);

print $n%2? "Y" : "N";

print "\n";

if ($n%2) { system($resetcomm);

} else { system($resetcomme);

} sleep 1;

$n++;

} Луис Рог (Louise Roque) пользовался этим сценарием, прогуливаясь и объезжая на велосипеде городок Энн Арбор в штате Мичиган, имея при себе ноутбук с процессором 486 и картой Lucent Orinoco, на котором стояла операционная система OpenBSD. Сценарий не переводит интерфейс wiO в режим мониторинга. По прошествии некоторого времени появились, а потом исчезли та кие инструменты сканирования, как airosniff и wicontrol. Сейчас основным и самым известным комплектом инструментов для аудита безопасности беспроводных сетей в системах BSD являет ся BSD-airtools от компании DachbOden Labs. Самая главная из входящих в этот набор программ это Dstumbler;

мы уже упоминали ее при обсуждении внутренних механизмов работы Netstumbler. В режиме RFMON Dstumbler обладает следующими уникальными возможностями:

о определяет, какая аутентификация используется в инфраструктурной сети: разде ляемая или по ключу;

о определяет, установлены ли BSS-узлы для подключения к любой или к указанной сети;

о отчасти распознает длину ключа шифрования в протоколе WEP: 40 или 104 бит.

Уже только эти функции делают программу Dstumbler весьма ценным дополнением к любому инструментарию для тестирования возможности проникновения в беспроводную сеть. Кроме того, Dstumbler сообщает об установленных по умолчанию ESSID, оценивает интервал между посылкой маяков обнаруженными точками доступа, показывает хосты в инфраструктурных сетях и протоколирует максимальные поддерживаемые скорости пере дачи как для точек доступа, так и для хостов.

Вам необходимо будет установить исходные модули, входящие в BSD-airtools, и пере компилировать ядро, только тогда вы сможете переводить карты с набором Prism в режим RFM0N.мониторингаотладочнымнавойтинабора Prism2трудностей: Dstumbler уже режимов.

но Впозволяет перевестидолжнымодулям ядра prism2, поставляемым в составеroot. Запуск an поддерживаетсякпо умолчанию.тожеи выше режим мониторинга отладочныхнесложно, Dstumbler в режиме мониторинга такжевсборки ядра установить 14 длявсе Prism2ctl это простозабудьте, в OpenBSD входят Послених. Для справки перечислим интерфейсов-wi и Режим интерфейсdstumblerверсиибазе -1 системуprism2ctl и пользователя BSD-airtools.

Онане Правда, что - этокарту один утилиты любойprism2dump. режимы.

arhontus:~# вы лишь 3.2 вызываетотвимени из комплект BSD-airtools wiO -оизне allyourbase.txt ИНСТРУМЕНТЫ ДЛЯ ОБНАРУЖЕНИЯ СЕТИ В РЕЖИМЕ МОНИТОРИНГА И АНАЛИЗА ТРАФИКА -г: сбросить устройство -i : инициализировать устройство -s: перевести устройство в спящий режим или разбудить его аргументы:

0 - разбудить 1 - усыпить -f: переключить устройство на указанный частотный канал аргументы:

номер канала (1-14) -d: в этом режиме подавляются задержки передачи фреймов и должна увеличиваться производительность -t: в этом режиме устройство подавляет все ошибки в переданных фреймах -т: войти в режим мониторинга -1: включить тестирование светодиодов аргументы:

:х - индикатор мощности мигает - х мкс горит, х мкс не горит 2:х - индикатор активности мигает - х мкс горит, х мкс не горит -с: непрерывно передает переданную в качестве аргумента 16-битовую последовательность аргументы:

16-битовая последовательность в шестнадцатеричном виде -h: выключает следующие режимы:

подавление задержки режим мониторинга непрерывная передача непрерывный прием установка состояния сигнала -е: переводит устройство в режим постоянного приема -д: устанавливает маску сигнала для устройства (не пользуйтесь, если точно не уверены в том, что вы делаете, и не имеете документации) -а: посылает команду CalEnable процессору полосы частот -Ь: включает или выключает автоматический контроль уровня в передаваемых фреймах аргументы:

0 - выключить 1 - включить Для перевода интерфейса wiO в режим мониторинга достаточно выполнить команду prism2ctl wiO -m.

Утилита prism2dump похожа на tcpdump и написанную для Linux утилиту prismdump и предназначена для протоколирования трафика 802.11. Чтобы она работала правильно, сна чала переведите РпБт2-карту в режим мониторинга, а затем введите команду prism2dump -v . Существуют следующие уровни детализации:

0: печатать только информацию о фреймах 802. 1: печатать информацию о фреймах 802.11, а также основную информацию о протоколах передачи данных, управляющей и административной информации 2: печатать всю информацию о протоколах Запускать prism2dump нужно также от имени пользователя root.

1 04 ВЫХОДИМ НА УЛИЦУ: КАРТОГРАФИРОВАНИЕ СЕТИ И ОСМОТР МЕСТА РАЗВЕРТЫВАНИЯ А Стоит еще отметить интересную программу wistumbler, которая первоначально была написана для обнаружения беспроводных сетей в системе NetBSD. Для сборки wistumbler понадобятся библиотеки gtk+-1.2.1O и glib-1.2.10nbl или более поздние версии. Wistumbler поддерживает интерфейс wi и устаревший интерфейс awi (для карт с набором Prism I) и может работать совместно с GPS-приемниками, поддерживающими стандарт NMEA. Для запуска wistumbler наберите примерно такую команду:

arhontus:~# wistumbler wiO -f wehaveyouall -g /dev/dtyOl -d где wehaveyouall - имя файла протокола;

/dev/dtyOl - последовательный порт для подключения GPS-приемника, а флаг -d устанавливает отладочный режим.

Инструменты, использующие команду iwlist scan Было бы странно, если бы таких инструментов не существовало. В этом разделе мы рас смотрим два из них. Их основное преимущество - возможность обнаруживать точки дос тупа, не отключаясь от сети, к которой вы присоединились.

Первый инструмент - это сценарий aphunter.pl на языке Perl. Он переформатирует выход команды i wl i st scan и выводит данные в экранные формы, реализованные с помощью ncurses. При необходимости может поддерживать режим RFM0N, так что оказывается удобным для осмотра места развертывания сети. Это весьма развитый сценарий, который поддерживает автоматическое присоединение к сети, если вы, конечно, этого хотите. Если присоединение состоялось, то aphunter может извлечь WEP-ключ из указанного файла (по умолчанию /etc/ pcmcia, если таковой существует, в противном случае $НОМЕ/. aphunterkeys) и попытать ся получить IP-адрес по протоколу DHCP. Для этой цели он по умолчанию использует команду /sbin/dhcpd -n -d -N -Y -t 999999, но вы можете подставить собственные параметры с помощью флага -d. Aphunter может автоматически присоединиться к первой доступной сети (флаг -с), а при наличии нескольких - к той, в которой уровень сигнала наибольший. Сеть счи тается доступной, если обнаружена точка доступа в нее и не используется неизвестный WEP ключ. Можно указать, с каким интервалом производить сканирование (флаг -т) и в течение какого времени отображать потерянные точки доступа (флаг -к). И разумеется, Aphunter ав томатически распознает, поддерживает ли беспроводной интерфейс функцию i wl i st scan.

Если нужно сгенерировать отчет о результатах осмотра, то воспользуйтесь командой /bin/sh -с "aphunter 2> report.aph" (в оболочке С shell ), а если у вас мони тор небольшого размера, попробуйте выполнить примерно такую команду: xterm -geometry 40x10 -е aphunter &. Имеются также горячие клавиши для взаимодействия с работа ющим сценарием. Выполнив команду perl doc -t. /aphunter, вы получите полную документацию по этому инструменту (конечно, программа perldoc должна быть установ лена). Вместо этого можно просто заглянуть в конец сценария. Мы пробовали запустить команду aphunter. pi -v, имея карту Cisco Aironet 350, результаты показаны на рис. 5.14.

К сожалению, в действительности это были каналы 3 и 11, а не 4 и 12, ну что ж, нет в мире совершенства. Обратите внимание на шестнадцатеричное значение вместо ESSID в нашей закрытой тестовой сети. Но не спешите пытаться преобразовать его в код ASCII.

Это значение не имеет ничего общего с настоящим скрытым ESSID и, возможно, вообще взято из устройства /dev/urandom.

ИНСТРУМЕНТЫ, ИСПОЛЬЗУЮЩИЕ КОМАНДУ IWLIST SCAN Рис. 5.14. Сценарий aphunter.pl ВЫХОДИМ НА УЛИЦУ: КАРТОГРАФИРОВАНИЕ СЕТИ И ОСМОТР МЕСТА РАЗВЕРТЫВАНИЯ Инструменты для мониторинга уровня сигнала Речь идет не об анализаторах протоколов и не о программах для нанесения сетей на карту, но поскольку инструменты из этой категории все же обнаруживают беспроводные сети (по край ней мере, показывают уровень высокочастотного сигнала), то мы вкратце их рассмотрим. Хотя обычному искателю сетей не очень интересно мерить уровень сигнала или отношение сигнал/ шум, но при осмотре места развертывания эта задача имеет первостепенное значение, так что наличие инструмента для ее автоматизации может сэкономить массу времени.

Эти утилиты реализуют два основных метода мониторинга уровней сигнала и шума в ка нале 802.11: watch -nl -d ' cat * с последующим разбором соответствующего ка талога в файловой системе /ргос (например, /proc/net/wireless) или перехват заголовков фреймов типа ARPHRD_IEEE8 0211_PRISM в случае наличия карты на базе набора Prism.

Отметим, что последний метод применяется в утилитах Airfart и WifiScanner, а также во многих более развитых средствах типа Kismet, которые также умеют определять уровень сигнала в прослушиваемых каналах.

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

Основы радиофизики:

Затухание в свободном пространстве и помехи Затухание в свободном пространстве- это основная причина энергетических потерь в беспроводных сетях. Происходит это из-за расширения фронта радиоволны и рассея ния передаваемого сигнала. Затухание в свободном пространстве рассчитывается по формуле 40,69 + 20log10 (частота в гигагерцах) + 20log10 (расстояние в километрах). Име ющиеся в сети калькуляторы позволяют оценить эту величину;

есть также приложения для локальных расчетов.

Разумеется, затухание в свободном пространстве предполагает наличие именно свободного пространства, любое препятствие значительно ослабляет высокочастотный сигнал. Даже простое оконное стекло уменьшает уровень сигнала в диапазоне ISM примерно на 3 dBm.

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

ИНСТРУМЕНТЫ ДЛЯ МОНИТОРИНГА УРОВНЯ СИГНАЛА Л Проблема нескольких путей связана с помехами, вызванными тем, что высокочастотный радиосигнал, излучаемый одним передатчиком, отражается от препятствий вдоль пути распространения. Из-за этого он доходит до приемника в разные моменты времени.

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

Интерферирующие передатчики могут находиться в сетях, удовлетворяющих стандартам 802.11 и 802.15, а также в беспроводных сетях, не согласованных со стандартами семей ства 802. Это могут быть беспроводные телефоны, работающие на частоте 2,4 ГГц, беспро водные камеры наблюдения, микроволновые печи, а также постановщики помех, созна тельно развернутые взломщиком. По иронии судьбы именно канал 6, определенный в стандартах 802.11b/g (2,4370,011 ГГц) и используемый по умолчанию многими точками доступа, больше всего перекрывается с самыми распространенными источниками поме хами - микроволновыми печами. Теоретически магнетрон микроволновой печи излучает на частоте 2,4450,011 ГГц, но на практике спектр излучения гораздо шире. Впрочем, мы не рекомендуем поджаривать свой измеритель частоты в микроволновке для проверки.

С другой стороны, диапазон UNII (стандарт 801.11а) по сравнению с диапазоном ISM не так подвержен помехам. Раньше для устранения помех в сетях 802.11 переключались с метода DSSS на FHSS;

теперь же попробуйте просто перейти на сеть 802.11а, если мес тное законодательство разрешает использовать частотный диапазон UNII.

Инструменты мониторинга уровня сигнала представляют собой либо отдельные утили ты, либо подключаемые модули для различных оконных менеджеров. Нам больше всего нравится программа wavemon (рис. 5.15), которая показывает красивую гистограмму уров ня сигнала (функциональная клавиша F2), выводит все обнаруженные точки доступа (F3) и неплохо конфигурируется (F7).

По умолчанию wavemon поддерживает карты с набором Prism и драйверы linux-wlan ng, но это просто потому, что заранее предустановлен интерфейс wlanX;

укажите вместо него ethX или любой другой - и программа станет работать с драйверами других карт.

Еще одна полезная утилита - это wlanmeter, которая умеет измерять уровни сигнала, шума и канала на всех имеющихся беспроводных интерфейсах (одновременно на трех).

Упомянем также программу Wireless Power Meter для Linux (wpm), которая пользуется комплектом Linux Wireless Extensions и может работать на любом терминале, показываю щем ANSI-цвета (консоль Linux, ETerm, Gnome Term XTerm, Color RXVT). Есть еще утилита xnetworkstrength (как ни странно, она работает под X Windows), программа Cisco ACU для карт Aironet (рекомендуем) и целый ряд апплетов, предназначенных для мониторинга беспроводного канала, в том числе: wmwave для Windowmaker или gwireless_applet для Gnome, а также знаменитый подключаемый модуль для gkrellm. Программа Wireless Network Meter, написанная с использованием библиотеки Qt для системы Embeddix, - это хорошее дополнение к комбинации Kismet + kismetqte на КПК Sharp Zaurus, она сильно увеличивает полезность этого великолепного наладонника для осмотра места разверты вания. На платформе Windows мы рекомендуем AirMagnet (не путайте с анализатором Java Magnet 802.11b/g) для КПК iPAQ. Эта программа привязана к карте, входящей в ком плект AirMagnet, в которую производителем внесены специальные модификации, по зволяющие обнаруживать и графически отображать перекрытие каналов 802.11b/g.

AirMagnet - это великолепный (хотя и недешевый) инструмент для решения различных 1 08 ВЫХОДИМ НА УЛИЦУ: КАРТОГРАФИРОВАНИЕ СЕТИ И ОСМОТР МЕСТА РАЗВЕРТЫВАНИЯ Рис. 5.15. Утилита wavemon для мониторинга сигнала в беспроводной сети задач, возникающих при оценивании безопасности беспроводных сетей, одновременно насыщенный функциями и простой в использовании. Конечно же, мощные коммерчес кие программы AiroPeek и NAI Sniffer Wireless тоже умеют вести мониторинг уровня сиг нала наряду с множеством других функций. Для осмотра места развертывания можете взять с собой версии обоих этих анализаторов для КПК на платформе Windows СЕ.

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

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

/ПОДБИРАЕМ АРСЕНАЛ:

ОРУДИЯ РЕМЕСЛА Что касается воина, то этот путь предполагает создание раз нообразного оружия и понимания всех его свойств. Без это го воину не обойтись;

если он не владеет мастерски своим оружием и не понимает преимуществ разных видов воо ружения, значит, он недостаточно усовершенствовался в своем искусстве.

Миямото Мусаси (Miyamoto Musashi) Настало время перейти от безвредного исследования беспроводных сетей к подборке вну шающего уважение арсенала средств для профессионального тестирования возможности проникновения в сети 802.11. Как и при выборе аппаратуры, очень важен осознанный подход к выбору инструментария, имеющего отношение к безопасности сетей. Сейчас мы приведем грубую классификацию атак на сети 802.11 и предназначенных для этой цели программ в зависимости от их функций. Затем будет дано подробное описание конкрет ных инструментов.

Все программы для тестирования возможности проникновения можно отнести к одной из нескольких крупных категорий:

1. Средства взлома шифров.

2. Средства генерации фреймов стандарта 802.11.

3. Средства внедрения зашифрованного трафика.

4. Средства управления точками доступа.

Хотя последняя категория, строго говоря, не связана с безопасностью, относящиеся к ней инструменты могут пригодиться для изменения конфигурации удаленной точки доступа по протоколу SNMP (Simple Network Management Protocol - простой протокол управления сетью) и угадывания пароля точки доступа.

Совсем необязательно иметь все программы, описанные в этой главе, выберите те, ко торые отвечают вашим целям с учетом имеющегося оборудования. Многие инструменты поддерживают только карты с одним набором микросхем, другие придется существенно модифицировать, чтобы они могли работать на КПК, а некоторые представляют собой 11О ПОДБИРАЕМ АРСЕНАЛ: ОРУДИЯ РЕМЕСЛА простые сценарии, полезные в образовательных целях. Практически все рассматрива емые программы поставляются с открытыми исходными текстами, так что разработчик мо жет многое узнать о том, как они работают, расширить свои знания и начать собствен ный проект.

Средства вскрытия шифров Как следует из названия, этот раздел посвящен инструментам для вскрытия криптогра фической защиты на уровне 2 стека протоколов 802.11. Не думайте, что речь идет толь ко о протоколе WEP. Появление решений, основанных на стандарте 802.Hi, стало новым вызовом сообществу хакеров, и уже сейчас уже есть подпольные инструменты, предназ наченные для атаки на алгоритмы аутентификации 802.1х. Пока такие атаки направле ны только против систем аутентификации по протоколу Cisco EAP-LEAP, но нет сомне ний, что вскоре появятся и атаки против других вариантов протокола ЕАР (Extensible Authentication Protocol - расширяемый протокол аутентификации). Самая простая фор ма аутентификации в стандарте 802.1х основана на слабом алгоритме EAP-MD5, который может быть атакован даже без специальных инструментов взлома. В следующей главе мы рассмотрим такие атаки. Пока еще не создано средств для атаки на более безопасные протоколы, пришедшие на смену WEP, а именно TKIP (Temporal Key Integrity Protocol протокол целостности временных ключей) и ССМР. Тем не менее есть основания пола гать, что успешная атака против аутентификации с предварительно разделенными клю чами, применяемыми в TKIP, возможна (см. главу 8). Даже в случае сверхбезопасного протокола ССМР на базе алгоритма шифрования AES остается возможность вскрытия по словарю и атаки методом полного перебора, и в принципе можно разработать инстру менты для проведения таких атак. Как обычно, самое слабое звено - это человек. Что же касается взлома старого доброго WEP, то теперь жизнь ушла куда дальше простеньких Wepcrack и Airsnort. Существуют средства, чтобы ускорить взлом WEP и заставить даже самые тихие беспроводные сети (с небольшим трафиком) поделиться своими драгоцен ными WEP-ключами. Инструменты, способные расколоть WEP на кусочки, а не ждать, пока накопится достаточно данных для пассивного раскрытия ключа, существовали уже дав но. Но надо еще постараться, чтобы найти литературу, в которой они детально описыва ются (кроме этой книги, конечно).

В настоящий момент есть четыре класса инструментов для вскрытия шифров в беспро водных сетях:

о средства взлома протокола WEP;

о средства для извлечения ключей WEP, хранящихся на клиентских хостах;

о средства для внедрения трафика с целью ускорения взлома WEP;

о средства для атаки на системы аутентификации, определенные в стандарте 802.1х.

В каждом классе есть свои методы и подходы и несколько доминирующих программ.

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

СРЕДСТВА ВСКРЫТИЯ ШИФРОВ Средства взлома протокола WEP По причинам, описанным в главе 1, протокол WEP будет еще применяться долго, сколь бы хороши и безопасны ни были альтернативы. На всякий случай напомним некоторые из этих причин:

о WEP легко настраивается, и любая совместимая со стандартом 802.11 система его поддерживает;

о унаследованное оборудование может не поддерживать новых протоколов безопас ности, а компании могут не захотеть выбрасывать его после того, как потратили несколько миллионов долларов на приобретение и настройку;

о более новое оборудование будет вынуждено работать на пониженном уровне безо пасности, чтобы обеспечить совместимость с унаследованным;

о многие пользователи и системные администраторы плохо разбираются в проблемах безопасности или просто ленятся и не обновляют программно-аппаратное обеспе чение и драйверы для поддержки более безопасных альтернатив WEP;

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

о для реализации окончательного варианта протокола 802.11i/WPAv2 CCMP потребу ется полная замена оборудования, на что многие пойти не готовы;

о все еще распространено мнение, что протокол WEP достаточно эффективен для за щиты сетей в небольшом офисе или дома. К сожалению, существуют лэксперты по безопасности, незнакомые с реальностью, которые поддерживают это мнение.

По этим причинам атаки против WEP не устареют вместе с ним;

инструменты для прове дения таких атак надо рассмотреть с величайшим вниманием.

Программа AirSnort Самый распространенный инструмент для взлома протокола WEP - это программа AirSnort от группы Shmoo ( - рис. 6.1.

Рис. 6.1. Программа AirSnort от группы Shmoo в действии 112 ПОДБИРАЕМ АРСЕНАЛ: ОРУДИЯ РЕМЕСЛА У AirSnort интуитивно понятный интерфейс, построенный на базе библиотеки GTK+, и ею легко пользоваться как для обнаружения сети, так и для взлома WEP. Она поддерживает карты с наборами микросхем Prism и Hermes (после установки патча Shmoo). AirSnort мо жет сбрасывать перехваченные данные в файл формата рсар, а также открывать и взламы вать данные, которые хранятся в таких файлах, созданных другими программами, напри мер Kismet. Это открывает ряд интересных возможностей, касающихся взлома WEP.

Например, можно собрать данные с помощью КПК, а затем расшифровать их на настольном компьютере аудитора, не имеющем выхода в беспроводную сеть. Можно также попробо вать перенести AirSnort на процессор StrongArm и дистрибутивы встраиваемой ОС Linux.

Большинство CF-карт для стандарта 802.11b построены на базе набора Prism, и это должно стать серьезным подспорьем всякому, кто возьмется за перенос AirSnort на Intimate, OpenZaurus, Familiar или Embeddix.

Программа Wepcrack Хотя AirSnort и является самым распространенным инструментом, в котором применяет ся атака Флурера, Мантина и Шамира (Fluhrer, Mantin, Shamir - FMS) против WEP, но имен но в программе Wepcrack впервые была на практике реализована эта теоретическая ата ка, описанная тремя знаменитыми криптологами. Wepcrack - это набор Perl-сценариев, включающий WEPcrack. pi, WeaklVGen. pi, prism-getIV. pi и prism-decode. pi.

Сценарий pri sm-get i v. pl получает на входе файл в формате рсар (например, perl prism-getIV.pl ) и извлекает пакеты с векторами инициализации (IV, см. главу 11), соответствующие известному образцу, ослабляющему ключи WEP. Кроме того, он извлекает первый байт зашифрованного текста и помещает его и слабые IV в файл протокола IVfile.log. Этот файл поступает на вход сценария WEPcrack.pl, взла мывающего WEP. Для взлома в реальном времени (как в AirSnort) надо запустить такую команду:

arhontus:~# tcpdump -i wlanO -w - I perl prism-getIV.pl Далее измените свою таблицу crontab (cront ab -e), так чтобы команда per l WEPcrack. pi запускалась периодически (скажем, каждые три минуты).

Чтобы сценарии prism-getIV и WEPcrack могли проанализировать дамп, он дол жен создаваться с применением версии библиотеки libpcap, которая понимает формат фреймов 802.11. Современные версии libpcap с этим справляются (скачайте с сайта http ://www. tcp dump. org/#current).

Хотя AirSnort считается более развитым инструментом для взлома протокола WEP, чем набор сценариев Wepcrack, но и у последнего есть свои достоинства:

о он полезен в образовательных целях. Если вы хотите узнать принцип атаки FMS, то нет лучшего способа, чем изучить текст сценариев Wepcrack. Фактически WeaklVGen.pl и включен-то с целью продемонстрировать возможность создания инструмента, который генерирует файл слабых IV по данному значению WEP-ключа в десятичном представле нии. Прочитав его код, вы поймете, откуда берутся слабые IV. Кроме того, в сценарии prism-dec ode. pi показано, как файл в формате рсар можно декодировать и вывести информацию из заголовков 802.11, которая может представлять интерес для всех, кто разрабатывает на языке Perl анализатор протоколов 802.11, да и для других целей (см. также perl skan. pl );

СРЕДСТВА ВСКРЫТИЯ ШИФРОВ / И З о сценарии, входящие в комплект Wepcrack, можно запускать и без Х-сервера и графи ческого интерфейса (аналогично старой версии AirSnort 0.9). Это существенно, по скольку не так сильно загружается процессор, экономится заряд аккумуляторов и открывается возможность писать объемные сценарии;

о это гибкие инструменты, они позволяют реализовать усовершенствованный вариант атаки FMS и способны интегрироваться с другими программами для аудита безопас ности, например Kismet и Wellenreiter;

о не надо выбирать конкретный набор микросхем, лишь бы карту можно было переве сти в режим RFM0N;

о сценарии Wepcrack можно запускать и на КПК, если установлен Perl. Но в настоящий момент не существует версии AirSnort, перенесенной в системы Intimate, Familiar или Embeddix, работающие на машинах с процессором StrongArm.

Таким образом, первый из опубликованных инструментов для взлома WEP все еще оста ется весьма полезным, поэтому серьезный аудитор безопасности или энтузиаст-любитель не станет им пренебрегать.

Набор утилит Dweputils Этот набор утилит является частью комплекта BSD-airtools и состоит из программ dwepdump, dwepcrack и dwepkeygen. Они реализуют улучшенную атаку FMS, описанную в статье Hlkari Practical Exploitation of RC4 Weaknesses in WEP Environments (Практическое ис пользование слабостей алгоритма RC4 в протоколе WEP), которая опубликована на сайте Эта глава посвящена утили там, а не описанию методов атаки, но мы еще вернемся к этой статье и деталям других атак на WEP в соответствующем разделе главы 8.

Dwepdump - это похожая на prism2dump утилита для формирования файла в формате рсар, специально написанная в целях подготовки исходных данных для dwepcrack и про ведения атак методом полного перебора (не FMS) против WEP. Современные версии dwepdump реализуют следующие функции:

о протоколирование только слабых ключей для последующего запуска команды dwepcrack -w;

о вывод статистики о том, сколько слабых IV уже найдено (п. х -> п: х;

когда х >= 60, можно приступать к взлому);

о возможность задать максимальный размер пакета, чтобы можно было сбрасывать в дамп только маленькие пакеты. В результате взлом методом полного перебора про странства ключей ускоряется;

о необязательно указывать интерфейс, поэтому несколько рсар-файлов можно слить в один. Это бывает полезно, когда есть много стандартных рсар-файлов, созданных tcpdump и подобными ей программами, а вы хотите отфильтровать из них слабые IV или объединить несколько файлов со слабыми IV в один для последующего взлома;

о применение улучшенных методов фильтрации IV, не описанных в стандартной ата ке FMS, для уменьшения времени сбора данных.

Таким образом, если взлом WEP осуществляется с помощью dwepcrack, то использовать dwedump для сбора данных предпочтительнее, чем prism2dump или любую другую утили ту подготовки рсар-файлов, скажем, tcpdump или Ethereal.

114 ПОДБИРАЕМ АРСЕНАЛ: ОРУДИЯ РЕМЕСЛА Dwepcrack - это утилита для взлома WEP, реализующая все известные виды атак, направ ленные на получение ключа WEP. Поэтому она позволяет исчерпывающим образом оце нить безопасность ключа WEP с точки зрения всех имеющихся в данной момент методик взлома. В частности, dwepcrack поддерживает следующие возможности:

о оптимизации атаки FMS, описанные в вышеупомянутой статье Practical Exploitation of RC4 Weaknesses in WEP Environments;

о возможность взлома WEP с помощью атаки FMS и методом полного перебора;

о возможность перебрать все пространство ключей или использовать взлом по словарю;

о оптимизированный метод подбора 40-битовых ключей методом полного перебора;

о поддержка симметричной мультипроцессорной обработки с помощью флага - j.

Отметим, что исходный текст dwepcrack хорошо структурирован: в файле weakksa.c находится код улучшенной атаки FMS, а в файле brute.с - реализация атаки методом пол ного перебора. Это упрощает анализ принципов атаки и внесение модификаций. Порядок запуска dwepcrack таков:

СРЕДСТВА ВСКРЫТИЯ ШИФРОВ Параметр packf i l e - это файл в формате рсар, wordf i l e - это словарь Dictionary.txt, а под сильными ключами понимаются 128(104)-битовые ключи WEP (были времена, когда такие ключи считались сильными). Заметим, что вы должны выбрать либо атаку методом полного перебора, либо атаку по словарю, но не обе одновременно (по крайней мере, не в одном и том же процессе wep_crack). Получив ключ, воспользуйтесь утилитой wep_decrypt для дешифрирования дампов трафика в формате рсар:

arhontus:~#./wep_decrypt Usage:./wep_decrypt [-g keystr] [-k hexkeystr] [-s] [infile [outfile]] -g keystr Строка, из которой получаются ключи -k hexkeystr Шестнадцатеричнью ключи, разделенные пробелами или двоеточиями -s Использовать сильные 128-битовые ключи Ключ должен быть задан только одним из флагов -д или -к.

По умолчанию wep_decrypt читает из st di n и пишет на stdout. Ключ для дешиф рирования файла задается в виде строки шестнадцатеричных символов, которые могут быть разделены пробелами или двоеточиями (хотя это необязательно), либо в виде строки ASCII-символов. В последнем случае для генерации фактических ключей применяется сла бый метод (используемый в старых драйверах), порождающий 40-битовые ключи. Посколь ку многие производители теперь устраняют эту уязвимость, мы не рекомендуем задавать ключ в формате ASCII.

Основы 802* 11: Длина ключа в протоколе WEP Если вы незнакомы с сетями 802.11, то, возможно, разговоры о 40-, 64-, 104- и 128-бито вых ключах вызвали у вас недоумение. Официально для протокола WEP определены толь ко 64- и 128-битовые ключи, и именно эти значения вы, вероятно, встретите в руковод ствах по очевидным маркетинговым причинам. На самом деле первые 24 бит занимает вектор инициализации (IV), причем IV передается в незашифрованном виде. Таким обра зом, реальная длина разделяемого секрета составляет 40 и 104 бит. В этой книге упоми нается то одна длина, то другая. Отметим, что такой же принцип должен применяться к патентованным реализациям WEP с большей длиной ключа. Всегда проверяйте, какая часть пространства ключа отводится под хранение IV (чем больше, тем лучше).

Программа WepAttack WepAttack - это программа с открытым исходным текстом;

похожая на Wep_tools, но зна чительно усовершенствованная. Как и Wep_tools, она применяет атаку методом полного перебора или по словарю для поиска правильного ключа в рсар-файле с зашифрованными данными. Но на странице проекта утверждается, что для начала атаки требуется всего один перехваченный пакет с зашифрованными по протоколу WEP данными. Проект WepAttack находится на сайте Sourceforge ( Изложение теоретических основ работы WepAttack на немецком языке находится там же.

Установить и использовать программу WepAttack очень просто. Необходимые для нее биб лиотеки Zlib и LibPcap можно взять с сайтов и ПОДБИРАЕМ АРСЕНАЛ: ОРУДИЯ РЕМЕСЛА Тот факт, что можно взломать протокол WEP, не имея большого объема зашифрованных данных, делает атаку по словарю против сетей 802.11 с этим протоколом серьезной угро зой. Атакующий легко может интегрировать WepAttack с Kismet и автоматически анализи ровать формируемый рсар-файл прямо по ходу поездки. Стоит ему перехватить несколько зашифрованных пакетов, как сеть уже можно атаковать. Таким образом, искатель может не только обнаружить сеть, но и получить несколько слабых WEP-ключей, и для этого ему даже не надо парковаться где-то поблизости и часами прослушивать атакуемую сеть.

Средства для извлечения ключей WEP, хранящихся на клиентских хостах В настоящее время мы знаем только об одном таком инструменте - LucentRegCrypto. Про грамма Lucent Orinoco Client Manager сохраняет WEP-ключи в реестре Windows. Хотя она пытается запутать взломщика и хранить ключи в зашифрованном виде, но все это легко обходится. Известно, что ключи могут храниться в следующих узлах реестра:

Утилита Lucent RegCrypto позволяет как зашифровать WEP-ключи для получения значе ния, хранящегося в реестре, так и расшифровать значение из реестра и получить исход ный ключ. Если вы пользуетесь программой Lucent Orinoco Client Manager, то проверьте с помощью LucentRegCrypto, сможет ли атакующий получить значение WEP-ключа для вашей СРЕДСТВА ВСКРЫТИЯ ШИФРОВ J 1 сети, если случайно физически доберется до вашей машины или сможет организовать до ступ в нее с черного хода. Запускается LucentRegCrypto совсем просто:

>_LucentRegCrypto -e [] -d [] -f При задании секретного значения в шестнадцатеричном виде сначала введите символ ко сой черты.

На машинах с ОС Linux WEP-ключ обычно хранится в незашифрованном виде в файле /etc/pcmcia/wireless.opts:

# Обобщенный пример (описывает все возможные установки) # Encryption key : 4567-89AB-CD, s:password KEY="value" Безопасность ключа при таком способе хранения всецело зависит от прав доступа к файлу wireless.opts (проверьте, как они заданы в вашей системе), что, очевидно, недоста точно. Разработка утилиты для шифрования WEP-ключа, хранящегося в wireless.opts, полезное и достойное занятие.

Средства для внедрения трафика с целью ускорения взлома WEP Как вы, возможно, знаете или уже догадались, чем больше беспроводного трафика вам уда стся перехватить, тем больше шансов получить правильный WEP-ключ и тем меньше для этого понадобится времени. Ничто не мешает внедрить трафик в защищенную протоколом WEP сеть, даже не присоединяясь к ней. Связано это с тем, что в первоначальной реализа ции WEP, в отличие от TKIP или ССМР, нет средств защиты от повторения (replay) трафика.

Вам всего-то и нужно, что следить за трафиком и посылать зашифрованные WEP пакеты обратно в сеть. Для этого потребуется карта, работающая в режиме RFM0N, которая будет прослушивать все пакеты и повторно передавать те, которые удовлетворяют определен ным условиям. Именно так - мы собираемся использовать карту в режиме мониторинга для передачи данных. Распространено ложное мнение, будто устройства 802.11 не могут пе редавать в режиме RFM0N. На самом деле это вполне реально, только вы не сможете по слать квитанцию АСК на приходящие ответы. Иными словами, нормальная двусторонняя связь действительно невозможна. Но для целей внедрения трафика ради ускоренного взло ма WEP или DoS-атаки затоплением это и не нужно.

Для внедрения трафика в целях повышения эффективности взлома WEP специально пред назначена утилита reinj из комплекта Wnet, написанного для BSD Hlkari, автором BSD-Airtools.

Комплект Wnet в целом мы рассмотрим в этой главе ниже, когда речь пойдет об инструментах генерации фреймов беспроводных протоколов, поскольку именно эта задача является главной для библиотек и утилит, входящих в Wnet. А здесь лишь кратко остановимся на утилите reinj.

Во время работы утилита reinj вставляет ARP-запросы и квитанции TCP АСК в трафик атаку емой беспроводной сети. И содержимое, и длина этих пакетов известны, известно и то, что сеть посылает в ответ: зашифрованные ARP-ответ и TCP RST. Поэтому поведение утилиты вполне предсказуемо. Разумеется, есть и другие типы запросов, реакция на которые известна, напри мер TCP SYN или запросы по протоколу DHCP, так что этот метод можно и модифицировать.

Запустить reinj (rei nj ) и затем следить за полученными ответами, чтобы убедиться в успешности попытки внедрить трафик (призна ком успеха является появление дополнительного ожидаемого трафика), совсем несложно.

1 18 ПОДБИРАЕМ АРСЕНАЛ: ОРУДИЯ РЕМЕСЛА А Если ответа нет, то reinj будет прослушивать сеть в поисках более подходящего для вне дрения пакета. Разумеется, для внедрения нужно знать BSSID, так что сначала его надо будет извлечь.

Когда reinj обнаружит пакет, который сочтет ARP-запросом или TCP ACK, она попытается повторно внедрить его в сеть, чтобы сгенерировать дополнительный трафик. Это делается пять раз подряд для проверки ответов, а затем внедрение продолжается через указанный при запуске команды интервал времени. Конечно, дубли, которые вставляет reinj, не ослабляют сеть криптографически, но вот полученные ответы этому как раз способствуют. Когда reinj выбирает себе цель и начинает заставлять входящие в нее хосты передавать зашифрован ные данные, взлом WEP упрощается и занимает меньше времени, особенно если воспользо ваться улучшенной атакой FMS, которая реализована в dwercrack. Даже простаивающие бес проводные сети можно успешно атаковать, да и надо еще поискать сеть, в которой нет совсем никакого трафика (из-за некоторых болтливых сетевых протоколов).

Совместное использование BSD-airtools и reinj делает систему OpenBSD (на которой оба инструмента собираются и работают) великолепной платформой для взлома WEP. А что же насчет Linux? К сожалению, мы не знаем инструментов для Linux, способных реализовать улучшенную атаку FMS против WEP в стиле dwepcrack. Что же касается внедрения трафика с целью сокращения времени взлома WEP, то можно воспользоваться программой WebWedgie, запустив ее в цикле из сценария и настроив для опроса целевой сети по предполагаемому широковещательному адресу. Это должно привести к генерации трафика в объеме, доста точном для насыщения сети, пока ключ не будет взломан. Поскольку WebWedgie - это слож ный и очень богатый инструмент, который умеет делать гораздо больше, чем простое дуб лирование и повторное внедрение трафика, то подробно мы будем рассматривать его в отдельном разделе, посвященном внедрению зашифрованного трафика для проникновения в беспроводную сеть без знания ключа WEP.

Средства для атаки на системы аутентификации, определенные в стандарте 802.1х С принятием стандарта 802.1х (детальное описание протокола приведено в главах 10 и 13) стало неизбежным появление атак и специальных инструментов, направленных против описанного в нем протокола безопасности. В настоящее время основным объектом напа дения для хакерского сообщества стала аутентификация по протоколу Cisco EAP-LEAP. По видимому, обусловлено это большим числом сетей, поддерживающих EAP-LEAP, что, в свою очередь, связано с широкой распространенностью беспроводного оборудования фирмы Cisco. Кроме того, играет роль и тот факт, что в основе LEAP, в отличие от EAP-MD5, лежит аутентификация по паролю, а не с использованием сертификатов. Атака против EAP-LEAP базируется на том, что он аутентифицирует пользователя по протоколу MS-CHAPv2. Таким образом, атака на EAP-LEAP - это, по сути дела, атака против MS-CHAPv2, поэтому любой другой метод аутентификации на основе того же протокола будет в равной степени уяз вим. Цель этой главы - описать инструменты, имеющиеся в распоряжении хакеров, поэто му особенности атаки на протокол EAP-LEAP (то бишь MS-CHAPv2) будут рассмотрены в главе 8. А сейчас мы расскажем о двух утилитах, предназначенных для извлечения и взло ма пользовательских паролей из обмена запросом и ответом по протоколу LEAP. Кроме того, мы опишем простой Perl-сценарий для взлома процедуры LEAP-аутентификации ме тодом полного перебора.

СРЕДСТВА ВСКРЫТИЯ ШИФРОВ 11 А Программы Asleap-imp и Leap Первый инструмент - Asleap-imp - представил Джошуа Райт (Joshua Wright) на конферен ции Defcon 11. Слово imp в его названии означает improved (улучшенный). Во время рабо ты над этой книгой утилита Asleap-imp еще не была доступна для широкой публики, но мы ожидаем, что это произойдет к моменту, когда книга появится на прилавках.

Asleap-imp состоит из двух программ. Первая - genkeys - генерирует список МБ4-свер ток по списку паролей. Список представляет собой таблицу в виде " пароль ^Tab^ свер тка " и может использоваться для атак по словарю против любых протоколов или файлов паролей, в которых применяется алгоритм MD4. Вторая программа - asleap - реализует саму атаку, а именно:

1. Данные считываются с беспроводного интерфейса, работающего в режиме монито ринга, или из файла в формате рсар (например, дампа, сформированного Kismet).

2. Извлекаются фреймы, содержащие запрос и ответ EAP-LEAR 3. Пользуясь недостатком, имеющимся в процедуре аутентификации MS-CHAP, вычис ляются последние два бита свертки NT.

4. Эти и оставшиеся биты сравниваются с элементами списка пароль: свертка, со зданного keygen, после чего печатаются взломанные пароли.

Поскольку ждать, пока кто-то войдет в систему, аутентифицируясь по протоколу EAP-LEAP, можно долго, Asleap-imp решает эту проблему, вышибая пользователей из сети. Для этого она сканирует все каналы 802.11, выявляет активных клиентов и посылает фальшивый фрейм EAP-LEAP Logoff жертве. За ним следует фальшивый же фрейм прекращения аутенти фицированного сеанса с целью отключить хост-жертву от сети. В результате последует но вый обмен запросом и ответом. Соответствующие пакеты сохраняются в рсар-файле для взло ма на другой машине (например, на настольном компьютере аудитора, обладающем более мощным процессором, более емким диском и очень длинным списком паролей).

Второй инструмент - это программа leap, которую написали DaBubble, Bishop и Evol.

В отличие от Asleap-imp, она уже была представлена на сайте Packetstorm ( packestormsecurity.org) во время работы над книгой. Принцип работы leap такой же, как у Asleap-imp, однако для leap нет документации и она не автоматизирует перехват запроса и ответа путем принудительного разрыва сеанса. Да и список пароль: свертка вам при дется генерировать самостоятельно. Чтобы создать список, можете модифицировать файл chaptest.c, который поставляется в составе инструмента, или воспользоваться эталонной реализацией алгоритма MD4 (RFC 320), модифицировав ее так, чтобы она брала пароли из файла со списком слов. После того как список сгенерирован и строки запрос/ответ пере хвачены, впишите их в файл bfnthash.c:

// Сюда введите запрос char *challengeResponse = // Сюда введите ответ char *challenge = "";

Можно при желании еще модифицировать переменную NUM_HASHES (максимальное число сверток, считываемых из файла со списком пароль: свертка, по умолчанию 10000) и ограничить число потоков, запускаемых bfnthash (по умолчанию < 200). Откомпилируй те bfnthash, запустите ее, указав имя файла со списком и число рабочих потоков, и надей тесь, что пароль пользователя окажется в списке.

1 20 ПОДБИРАЕМ АРСЕНАЛ: ОРУДИЯ РЕМЕСЛА А Программа Leapcrack Оба инструмента, направленные против протокола 802.1x/EAP-LEAP, реализуют улучшен ную и оптимизированную атаку по словарю на механизм аутентификации. Стоит еще упо мянуть старую методику подбора пользовательского пароля для EAP-LEAP путем полного перебора. Для этой цели была написана программа Leapcrack, работающая на платформе BSD. Leapcrack состоит из сценария для обнаружения сети (автор Франсиско Луис Рог), который был описан в разделе об инструментах обнаружения сети и протоколирования трафика в BSD, и еще одного Perl-сценария - anwrap. pi. Последний является оболочкой для команды ancontrol, которая применяется для проведения атаки по словарю на бес проводные сети с оборудованием Cisco и включенным протоколом LEAP. Сценарий просмат ривает указанные списки имен и паролей, пытается аутентифицироваться и записывает ре зультаты в файл. Для запуска anwrap.pi вам понадобится карта Cisco Aironet, поднятый интерфейс и установленная библиотека libexpect-perl. Работать со сценарием нетрудно:

arhontus:~# perl anwrap.pl Usage : anwrap.pl Ron Sweeney Brian Barto Имейте в виду, что запуск anwrap.pi против сетей из машин с ОС Windows NT с реали зованными политиками локаута серьезно снизит производительность аутентификации в RADIUS-сервере.

Инструменты для генерирования фреймов беспроводных протоколов Поскольку управляющие и административные фреймы в стандарте 802.11 не аутентифи цируются и не шифруются, то возможность отправки специально подготовленных фрей мов дает взломщику неограниченные возможности проводить DoS-атаки на второй уровень сети-жертвы. Хуже того, квалифицированный взломщик может замаскировать свою маши ну под точку доступа, беспроводной мост или клиентский хост в несчастной инфраструк турной или управляемой сети либо одну из равноправных машин в независимой (ad-hoc) сети. Затем можно провести DoS-атаку, чтобы отключить хосты от законной точки доступа и вынудить их присоединиться к машине атакующего.

Есть два основных инструмента для генерирования специальных фреймов 802.11: ком плект AirJack (Linux) и более свежий набор утилит Wnet dinject (OpenBSD). До некоторой степени драйверы HostAP для карт с набором Prism тоже можно считать инструментами генерирования фреймов 802.11, поскольку точка доступа по определению должна уметь посылать фреймы-маяки и пробные запросы. Утилита FakeAP от группы Black Alchemy, которая работает поверх HostAP и пользуется Linux Wireless Extensions для генерирования специальных маяков, опирается именно на эту функциональность. Она вполне годится для некоторых видов атак против сетей 802.11, равно как и для организации хоста-приманки (ради чего, собственно, и была написана). Еще один инструмент для генерирования фрей мов на базе HostAP - это программа Voidll. Она предназначена для DoS-атак на канал пе редачи данных в сетях 802.11, в том числе и массированных.

ИНСТРУМЕНТЫ ДЛЯ ГЕНЕРИРОВАНИЯ ФРЕЙМОВ БЕСПРОВОДНЫХ ПРОТОКОЛОВ J Комплект программ Air Jack Комплект AirJack первоначально состоял из специального драйвера для карт на базе набо ра микросхем Prism II и нескольких утилит, которые пользуются встроенными в модуль airj ack_cs возможностями генерирования специальных фреймов 802.11 для проведе ния различных атак на беспроводные сети. Ожидаемая, но пока задержавшаяся вторая вер сия AirJack должна поддерживать и другие наборы микросхем. Здесь мы опишем только первую версию, которая на момент написания книги была тщательно протестирована и оп робована.

Утилиты для атаки, включенные в первые две версии AirJack, вызывают отказ в обслу живании путем отправки фреймов прекращения сеанса (deauthentication). Для раскрытия закрытого ESSID утилита вынуждает хост повторно аутентифицироваться. Кроме того, воз можна атака человек посередине на уровень 2 с дополнительной возможностью прове дения специализированной атаки такого рода против реализации протокола Wavesec (бес проводной версии IPSec) компании FreeSWAN. В последующих версиях AirJack осталась только утилита для атаки с целью раскрытия закрытого ESSID. Однако утилиты из прежних версий, предназначенные для реализации вышеупомянутых атак, прекрасно работают и в новой версии.

Основная функциональность AirJack связана с умением посылать фреймы прекращения сеанса. Для тех, кому интересно, как это делается, ниже приведен фрагмент кода для кон струирования фрейма:

void send_deauth ( u8 *dst, u8 *bssid) { struct { struct a3_80211 hdr;

ul6 reason;

} frame;

memset(&frame, 0, sizeof(frame));

frame.hdr.mh_type = FC_TYPE_MGT;

frame.hdr.mh_subtype = MGTMDEAUTH;

memcpy(&(frame.hdr.mh_macl), dst, 6) ;

memcpy(&(frame.hdr.mh_mac2), bssid, 6) ;

memcpy(&(frame.hdr.mh_mac3), bssid, 6);

frame.reason = 1;

send(socket, kframe, sizeof(frame), 0) ;

} Хотя утилиты, входящие в комплект AirJack, и были разработаны для карт с набором Prism II, но они позволяют проводить атаки типа человек посередине и при помощи карт с набором Hermes при условии, что установлен патч Orinoco.с.patch. Он была первоначаль но разработан для служб pcmcia-cs версии 3.1.31, так что нужно еще проверить, будет ли он работать с более поздними версиями. У нас не получилось поставить этот патч на pcmcia-cs-3.2.1, так что придется либо возвращаться к старой версии, либо переписывать код патча.

Код AirJack распространяется в соответствии с лицензией GNU, загрузить его можно со страницы и с сайта Sourceforge;

в Сети встречаются и неко торые неудачно модифицированные варианты AirJack, для исправления которых нужно ИНСТРУМЕНТЫ ДЛЯ ГЕНЕРИРОВАНИЯ ФРЕЙМОВ БЕСПРОВОДНЫХ ПРОТОКОЛОВ J В комплект AirJack входят следующие утилиты для проведения атаки:

о essid_jack вынуждает беспроводные хосты повторно выполнить аутентификацию с точкой доступа в закрытой сети и при этом отыскивает в трафике скрытый ESSID;

о wlanjack затапливает сеть фреймами прекращения сеанса с поддельным МАС-адре сом;

о monkey_jack проводит атаку человек посередине (помещает хост, на котором ра ботает AirJack, между точкой доступа и машиной-жертвой);

о kracker_jack - модифицированный вариант monkey_jack, способный поместить ата кующий хост между клиентом и сервером, работающими по протоколу Wavesec.

Wavesec ( - это предназначенная специально для беспроводных сетей мобильная реализация FreeSWAN IPSec-клиента для Linux. Особенность работы про токола Wavesec состоит в том, как он организует доверительные отношения между беспро водным клиентом и шлюзом IPSec. Для этого производится обмен открытыми ключами во время назначения адреса по протоколу DHCP. Клиент передает свое имя хоста и открытый ключ в DHCP-запросе. Сервер DHCP требует от DNS-сервера, чтобы тот вставил то и другое в описание обратной зоны (отображение IP на имя хоста) с помощью запроса на динами ческое обновление DNS. Утилита kracker_jack атакует эту процедуру обмена ключами с целью размещения атакующего хоста между клиентом и сервером Wavesec на втором уров не (monkeyjack), подменяет ключ клиента своим собственным и расшифровывает прохо дящие данные. Таким образом, krackerjack не атакует FreeSWAN и протокол IPSec как та ковые и настройки FreeSWAN IPSec, основанные на разделяемом секрете или сертификатах х509 (см. главу 14), остаются неуязвимыми для этой атаки.

Еще в комплекте AirJack есть утилиты setmac и set_channel для проведения атаки че ловек посередине с помощью карты с набором Hermes и dump_core, которая позволяет следить за необработанным потоком информации, поступающей от интерфейса ajO (пере направлять его в файл, выделять строки, содержащие ESSID имеющихся беспроводных се тей и т.д.).

Программа File2air Джошуа Райт написал инструмент File2air для генерирования специальных фреймов с по мощью драйверов, входящих в комплект AirJack. Программа читает двоичный файл и по сылает его содержимое в эфир (как и следует из названия). Следовательно, она может от править практически любой фрейм, в том числе и протокола 802.1х в беспроводную сеть.

Но для пользования ею вы должны хорошо разбираться в протоколах, описанных в стан дарте 802.11 (или иных), чтобы подготовить двоичное представление специальных фрей мов, подаваемое на вход File2air, в вашем любимом шестнадцатеричном редакторе (напри мер, Gnome Ghex). С другой стороны, у вас появляется стимул для изучения набора протоколов, чтобы обрести полную свободу выбора того, что вы посылаете.

Первая версия (vO.l) утилиты File2air появилась как раз в тот момент, когда близилась к завершению работа над черновиком этой книги. В ней было три примера двоичных фрей мов в каталоге./packets: прекращение сеанса, ответ на пробный фрейм и ошибка аутентификации по протоколу ЕАР (deauth.bin, proberesp.bin и eap-failure.bin соответ ственно). В файле README приведены примеры атак с использованием этих фреймов.

1 24 ПОДБИРАЕМ АРСЕНАЛ: ОРУДИЯ РЕМЕСЛА А Без сомнения, число присланных пользователями файлов с двоичными фреймами будет расти как снежный ком, а функциональность инструмента заметно увеличится. Для удоб ства некоторые поля во фреймах, например, МАС-адреса отправителя и получателя и ESSID, можно задать в командной строке, тогда содержимое этих полей в файле будет про игнорировано:

arhontus:~#./file2air -h file2air vO.l - inject 802.11 packets from binary files Usage: file2air [options] Интерфейс, через который отправляются фреймы Установить канал (по умолчанию текущий) Установить режим работы (по умолчанию текущий) Установить режим RFMON (1=вкл, 0=выкл, по умолчанию текущий) Имя двоичного файла, из которого читаются фреймы Сколько пакетов посылать Задержка между отправкой пакетов (иХ - мкс, X - секунды) Адрес получателя вместо указанного во фрейме Адрес отправителя вместо указанного во фрейме BSSID вместо указанного во фрейме Вывести справку и выйти Печатать подробную информацию (чем больше -v, тем подробнее) Как видите, можно задать и число отправляемых фреймов, и интервал между ними. Но интереснее то, что фреймы можно отправлять в любом режиме работы, в том числе и в режиме мониторинга. Таким образом, вы можете прослушивать сеть и реагировать на оп ределенные события, посылая специальные фреймы. Например, обнаружив пробный зап рос от программы Netstumbler, можно послать фальшивый пробный ответ, чтобы сбить с толку тех, кто пытается вломиться в вашу сеть.

Библиотека libwlan Если вы не хотите создавать специальные фреймы в шестнадцатеричном редакторе, а предпочитаете написать программу на языке С, то как раз для вас Иоахим Кейнерт (Joachim Keinert), Чарльз Дунце (Charles Duntze) и Лайонел Литти (Lionel Litty) раз работали библиотеку libwlan. Она позволяет создавать фреймы при условии работы с драйверами Linux HostAP. В библиотеке есть функции для инициализации сокетов и для конструирования фреймов, а заголовочные файлы поддерживают создание фрей мов данных, управления потоком (RTS/CTS), аутентификации и присоединения к сети, пробных запросов, прекращения сеанса и отсоединения. В файле lib_total.h деталь но описаны структуры различных фреймов 802.11: с данными, управляющих и адми нистративных, особенности отдельных фреймом, коды состояния и причин, а также алгоритмы аутентификации (открытой или с разделяемым секретом). Это интересное и полезное чтение.

ПОДБИРАЕМ АРСЕНАЛ: ОРУДИЯ РЕМЕСЛА Программа FakeAP FakeAP - это написанный на языке Perl инструмент, в котором возможности драйверов HostAP и команда iwconf ig применяются для отправки фреймов-маяков со случайными или специально подобранными ESSID, BSSID (МАС-адрес точки доступа) и номерами кана лов. Первоначально она предназначалась для организации беспроводной приманки, но при злонамеренном использовании может решать и следующие задачи:

о затопить канал потоком фреймов-маяков, проведя тем самым DoS-атаку;

о увеличить шум в канале в ходе проведения атаки человек посередине;

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

Хотя FakeAP для Linux хорошо известна, немногие знают о существовании утилиты BSD FakeAP, которую можно загрузить со страницы Функ ции обеих очень схожи, а немногие различия отмечены в исходном тексте BSD FakeAP.

ИНСТРУМЕНТЫ ДЛЯ ГЕНЕРИРОВАНИЯ ФРЕЙМОВ БЕСПРОВОДНЫХ ПРОТОКОЛОВ Программа voidi Voidll - это еще один инструмент для генерирования фреймов, работающий совместно с драйверами HostAP для Linux (не забудьте определить константу PRISM2_HOSTAPD В файле 128 ПОДБИРАЕМ АРСЕНАЛ: ОРУДИЯ РЕМЕСЛА driver/modules/hostap_config.h при компиляции HostAP, если хотите, чтобы програм ма voidll работала). Она была задумана для проверки устойчивости уровня передачи данных к DoS-атакам и организации активной защиты, voidll может генерировать фрей мы трех типов, а именно: прекращение сеанса, аутентификация и присоединение. За топление потоком запросов на аутентификацию и присоединение может привести к отказу или зависанию некоторых точек доступа из-за заполнения буфера, выделенно го для хранения и обработки таких запросов. В состав voidll входят две утилиты:

voidll_hopper и voidll_penetration. Утилита voidll_hopper конфигурирует беспровод ную карту, работающую под управлением HostAP, для перебора 14 DSSS каналов, опре деленных в стандарте 802.11, a voidll_penetration - это и есть, собственно, инструмент генерирования фреймов:

arhontus:~# voidll_penetration -h /*voidll - утилита тестирования проникновения в сеть 802.11b * версия 20030829, отправлять замечания на reyk@vantronix.net * флаги общего назначения:

* -t val тип (по умолчанию: 1) * 0: ничего не делать * 1: прекращение сеанса * 2: затопить запросами на аутентификацию * 3: затопить запросами на присоединение * -d n задержка (по умолчанию: 10000 мкс) * -s MAC станция (по умолчанию: ff:ff:ff:ff:ff:ff / случайное) * -S str ssid (по умолчанию: ' ') * -h вывести эту справку * -D отладка (-DD... для получения большего объема * информации) * * DoS-атака на конкретную цель:

bssid (по умолчанию: сканировать в поисках bssid) с автоматическим выбором цели:

макс число одновременных потоков (по умолчанию: 23) таймаут (по умолчанию: 10 с) список подходящих способ интерпретации списка (белый: 0, черный: 1, * по умолчанию: 0) */ Как видите, программа voidll обладает широкими возможностями и может выполнять следующие действия:

о сканирование сетей, выбранных для атаки;

о атаку на сеть с указанным ESSID;

о атаку на один или несколько хостов;

о одновременное затопление 23 потоками;

о выбор хостов из списка подходящих МАС-адресов;

о регулируемую задержку между отправкой фреймов.

ИНСТРУМЕНТЫ ДЛЯ ГЕНЕРИРОВАНИЯ ФРЕЙМОВ БЕСПРОВОДНЫХ ПРОТОКОЛОВ Прежде чем запускать атаку путем затопления фреймами прекращения сеанса против одного беспроводного хоста, необходимо перевести карту в режим хозяина (то есть сде лать ее точкой доступа).

Комплект Wnet Wnet - это развитый инструментарий для создания и внедрения фреймов 802.11, работаю щий в системе OpenBSD 3.2. В будущем, возможно, будут поддержаны и другие версии OpenBSD, а также иные варианты ОС BSD. В состав Wnet входит библиотека libwnet, утили та reinj внедрения пакетов с ARP-запросами и TCP ACK, а также утилита dinject.

Для инсталляции dinject сначала поместите исходные тексты ядра в каталог /usr/src/ sys, затем установите патч wi.diff, поставляемый с Wnet (cd wnet && sudo patch -d /usr/src -pi < wi.diff), после чего пересоберите ядро:

arhontus:~# cd /usr/src/sys/i386/compile/MYKERNEL arhontus:~# make arhontus:~# cd /usr/src/sys/dev/ic arhontus:~# cp if_wi*.h /usr/include/dev/ic arhontus:~# reboot Затем откомпилируйте libwnet:

arhontus:-# cd wnet/libwnet arhontus:~# make arhontus:~# make instal l а уже потом dinject:

arhontus:~# cd../dinject arhontus:~# make arhontus:~# make instal l Dinject - это многофункциональный инструмент конструирования фреймов 802.11, по хожий на Nemesis. Как и Nemesis, dinject включает несколько утилит: по одной на каждый тип фрейма. Переведите карту в режим HostAP (sudo wicontrol wiO -p 5) и наслаж дайтесь возможностью посылать управляющие и административные фреймы практически любого типа, в том числе:

о фреймы с запросом о присоединении;

о фреймы с ответом на запрос о присоединении;

о АТШ-фреймы;

о фреймы с запросом об аутентификации;

о маяки;

о специально сформированные данные;

о фреймы с запросом о прекращении сеанса;

о фреймы с запросом об отключении;

о пробные запросы;

о ответы на пробные запросы;

о запросы о повторном присоединении;

о ответы на запросы о повторном присоединении.

Pages:     | 1 | 2 | 3 | 4 |   ...   | 8 |    Книги, научные публикации