СХЕМЫ И ДОКУМЕНТАЦИЯ

Описания / Сниффер в switched enviroment


<<< К списку раздела.

Сниффер в switched enviroment.

Многие системные администраторы полагают, что подключение сервера к аплинку через свитч является панацеей от перехвата сетевого трафика на системе, пусть даже и подключённой в порт того же свитча, но формально не находящейся в одном сегменте коллизий с объектом. Так же многие системные администраторы уверены в том, что MAC-адрес является чудесной величиной, которая "намертво" связана со значением, прошитым в EEPROM сетевой карточки, и его невозможно изменить в эмитируемых интерфейсом пакетах. Однако это не так, и прежде чем мы расскажем непосредственно о способах перехвата трафика в таких условиях, мы рассмотрим принцип работы самого устройства, называемого switch.

Switch или же switching hub является прозрачным мультипортовым мостом между портами, который "переключает" трафик. Такое устройство имеет небольшой интервал задержки и без особых проблем/перегрузок обрабатывает большие потоки трафика. Данное устройство способно разбивать входящий на него трафик по портам в зависимости от условий фильтрации (к примеру, по mac-адресам) в целях минимизации трафика и безопасности. Такое устройство мы будем называть в дальнейшем свитч.

В ходе работы свитч строит таблицы соответствия IP- и MAC-адресов, которые используются им в дальнейшем при распределении пакетов по портам. Данная таблица пополняется динамически в ходе работы устройства, и имеет финитный размер. При получении большого количества пакетов со spoofed ARP-адресом, таблица соответствий в конце концов переполнится и свитч станет действовать, как обычный репитер, то есть каждый пакет, полученный на любой порт, будет повторён по всем портам устройства, а не будет направлен на нужный.

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

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

Первая из них называется angst, и её можно скачать с angst.sourceforge.net. Данный сниффер способен работать в двух режимах; первый из них назван авторами man-in-the-middle. Смысл данного режима в том, что после старта программа начинает мониторить адреса arp-запросов, и после этого включает arp forwanding на станции, где она запущена, посылая в ответ на arp-запрос ответ, что mac-адрес псевдофорвардера соответствует всем ip-адресам в данной сети.

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

Вторая программа, на примере которой рекомендуется изучать геренацию пакетов с любым обратным arp-адресом, называется arptool, и её можно скачать отсюда. Программу написала команда team teso, которая в своё время написала объёмный материал по системным вызовам и модулям ядра в среде FreeBSD (в русском варианте она опубликована в пяти частях).

Данная утилита имеет размер всего 3 килобайта и использует библиотечку libnet. Функция, которая строит пакет, готорый к эмиссии, называется libnet_build_arp, и в качестве входных параметров, помимо прочих, берёт значения исходного ip и mac адреса. Функция, которая передаёт полученную структуру драйверу сетевого интерфейса, то есть посылает пакет, называется libnet_write_link_layer.

Таким образом, ни установление жёстких привязок IP-адресов к MAC-адресам, ни организация switched enviroment не является панацеей от перехвата сетевого трафика.

Статья взята с сайта www.void.ru


Разработка и оформление Андрея Александровича Борисенко aka ICE.
По всем вопросам просьба писать мне на icenet (at) narod.ru