ARP-spoofing Степан Ильин aka Step Xakep, номер #068, стр. 068-060-1 (step@real.xakep.ru) Технология снифинга коммутируемых сетей Дежа вю. Когда я читаю ваши письма, оно преследует меня. Каждое второе письмо похоже на то, что мне уже присылали неделю назад. Одно из таких писем: "Установил намедни в своей локалке пакетный снифер, а он, противный, не функционирует. Вернее, работать-то работает, но как-то не так: перехватывает только мои собственные пакеты. В чем может быть проблема, а?". Пришло время расставить все точки над "i" и, наконец, рассказать тебе все о технологиях снифинга в современных коммутируемых сетях. Старая песня о главном Изначально принцип работы большинства пакетных сниферов (как и всей технологии снифинга в целом) основывался на некоторой примитивности протокола Ethernet. А точнее - на факте того, что обмен данными между компьютерами в сети происходил по одному и тому же информационному каналу или, грубо говоря, по одному и тому же проводу независимо от отправителя и получателя. Чтобы ты это лучше осознал, проведу аналогию. Представь, что наша локалка, состоящая из нескольких компьютеров и хаба, - это некая водопроводная система. Здесь каждая машина - это своего рода цистерна, которая с помощью водопроводных труб подсоединена к стояку (хабу), а вода - это идущие по сети данные. Несложно заметить, что при такой организации жидкость, выпущенная из одной цистерны, обязательно попадет во все остальные емкости. Так вот, в реальной некоммутируемой локалке все происходит по точно такому же принципу, то есть идущий сетевой пакет доступен любой машине в сети. Однако же обрабатывается он только одной. Почему? Дело в том, что специально для идентификации получателя в заголовке каждого пакета содержится его MAC-адрес. Машина, получив заголовок (адресную часть) пакета, сравнивает имеющиеся в нем координаты со своими и, в зависимости от результата проверки, обрабатывает информационную часть пакета или же игнорирует ее. Несложно заметить, что в этой системе есть один серьезный изъян: все остальные компьютеры в сети при наличии определенного желания также могут получить этот пакет. Необходимо всего-то перевести сетевушку в promiscuous-режим, чтобы тот перестал отфильтровывать чужие сообщения. А для этого, поверь, большой изобретательности не требуется - достаточно иметь в своем арсенале мало-мальски рабочий снифер. Наши дни К сожалению, времена некоммутируемых локальных сетей, когда любые сетевые пакеты можно было лихо складировать на своем винчестере, давно ушли. Едва ли ты сейчас сходу найдешь представляющую интерес локалку с полным отсутствием средств коммутации. Не получится - даже не пытайся. А если что-то и выйдет, то особо не обольщайся: случайность, да и только. Сегодня даже самая крошечная локалка имеет работающий свитч. О корпоративных и провайдерских сетях говорить вообще не стоит - зачастую сами админы навскидку не могут вспомнить всех используемых маршрутизаторов, свитчей и роутеров. Возможно, кто-то спросит: "Какая к черту разница: коммутируемая локалка или нет?". А такая, что пакеты в LAN'е, построенной с применением свитчей, не передаются по принципу "лови кто хочет", как в случае с хабовой системой, а по-умному направляются на конкретный порт (имеется в виду физический порт свитча), присвоенный адресату пакета. Чуешь, чем это грозит? Правильно - обычные сниферы при таком раскладе оказываются не у дел. При этом эйфорию горе-сисадминов, заявляющих, что со снифингом чужого трафика отныне покончено, можно понять. Действительно, ведь физического доступа к свитчу у обычных пользователей нет, а значит, изменить его настройки на свой лад для получения чужих сетевых пакетов практически невозможно. Да и чего умалчивать - дешевые свитчи вообще редко когда поддаются конфигурированию. Провести расширенную настройку позволяют лишь дорогостоящие топовые модели. |