Ложные DNS-запросы в Internet
В любом конкретном случае обмен датаграммами в Internet осуществляется между двумя удаленными хостами посредством заголовка пакета и так называемого поля данных. Заголовок — это, прежде всего, идентификация, а в поле данных входит некоторый пакет высокого уровня. В частном случае, любой IP-пакет входит в состав протокола транспортного уровня TCP. С другой стороны пакет IP является протоколом канального уровня локальной сети, т. е. межсетевым протоколом, который позволяет передавать датаграммы в сеть. Встает вопрос об адресации передаваемых данных. Для этого используется 32-разрядный адрес того же протокола IP. Казалось бы, что достаточно указать в заголовке IP в стандартном поле Destination Address адрес IP атакуемого узла. Но это не так. Любой пакет IP уже содержится внутри аппаратного пакета локальной сети, т. е. любая атака на хост невозможна без аппаратной адресации пересылаемых датаграмм. Это означает, что в простом случае (адресация только в одной подсети) для атаки на хост, как минимум, необходимо знать его адрес локальной сети (Ethernet-адрес) или соответствующий адрес маршрутизатора. В этом случае перед любым хакером встает проблема удаленного поиска информации относительно адресов локальной сети.
Пусть на атакуемом узле имеется некоторый алгоритм удаленного поиска данных. Тогда хакер выбирает сегмент сети, используя дырявый протокол ARP (пусть даже таблица ARP в установках атакуемой операционной системы настроена весьма корректно), посылает запрос Ethernet на атакуемый адрес и получает необходимое соответствие между адресами IP и адресами локальной сети. Нужно сказать, что этот запрос является широковещательным и в нем указывается адрес маршрутизатора, являющийся адресом по умолчанию атакуемой операционной системы. Маршрутизатор, у которого всегда имеется список ARP с информацией (все данные вносятся посредством того же ARP-протокол а) об адресе IP и ад1 ресе локальной сети, получает запрос, тут же вносит соответствующую запись о хосте хакера в список ARP и благополучно отправляет хакеру искомый адрес локальной сети. Это только начало. Теперь хакер перехватывает вышеназванный ARP-запрос и посылает в сеть ложный ARP-от - вет, который, по сути, и является никем иным, как хостом! А это уже означает, что, хакер вполне спокойно контролирует сетевой трафик атакуемого хоста.
Итак, хакер присваивает атакуемому сегменту сети ложный IP-ад - рес, входит в сеть, набивает «ту самую» команду, устанавливает в операционной системе свой адрес IP, посылает уже в свою сеть широковещательный запрос, а тупой маршрутизатор безукоризненно обновляет в своем списке адреса таким образом, что любые сетевые пакеты, начинают автоматически направляться на аппаратный адрес локальной сети хакера.
Только два субъекта знают о том, кто получил широковещательный запрос ARP, Ими являются хакер и глупый маршрутизатор, на который приходит пакет, непосредственно направленный на беззащитный (пусть даже стоит знаменитый FireFall-І фирмы Check Point Software Technologies) адрес атакуемого узла. И в самом деле, хост-жертва, ничего не подозревая (согласно установкам по умолчанию сетевой операционной системы) благополучно передает датаграммы на хакерский узел ARP, который, в свою очередь, отсылает принятый пакет сетевому маршрутизатору, а тот, понятно, дождавшись ответа, отсылает любую информацию, уже не через обманутый хост ARP, а непосредственно на атакуемый узел. Так как полный перехват пакетов между ложным сервером и узлом хакера проходит в промежуточной стадии, то возникает так называемая петлевая схема перехвата информации. Полный перехват возможен лиціь в том случае, когда хакерский сервер ARP работает по так называемой мостовой схеме перехвата, согласно которой в качестве хакерского запроса ARP указывается любой незанятый (proxy-сервер) IP-адрес атакуемой сети.
Плавно переходим к DNS-серверам. Последние используют в своих обращениях к удаленным узлам 32-битные адреса IP, мнемонически заключенные в четырехразрядную буквенную комбинацию, понятную каждому ламмеру. Любой хост может получить соответствующий DNS у ближайшего информационного сервера DNS по известной системе Domain Name Server через сетевой протокол DNS. Просто хост посылает запрос на известный IP-адрес DNS-сервера свой IP-адрес и имя сервера. Сервер DNS штудирует собственную базу данных, находит IP-адрес и отправляет на тост соответствующий ответ DNS. Схема весьма примитивная. Если же сервер DNS не находит искомую буквенную комбинацию, то он отсылает запрос на так называемый корневой сервер, в
Свою очередь, сверяет информацию с файлом настроек Так
Происходит до тех пор, пока имя хоста не будет найдено в Internet.
Вариант первый. Атакуемая сеть ожидает некоторый DNS-запрос. Хакер сидит в сегменте сети (т. е. он знает все параметры ISSa/ISSb) или находится на пути сетевого удаленного (обычное
Ftp-команд get, put или Is). Вначале хакер извлекает из DNS-запроса номер отправителя порта UDP. Узнав, таким образом имя сети, хакер посылает пакет DNS на захваченный UDP-порт и уже в этом пакете осуществляет подмену, и в конечном счете полностью перехватывает траффик между собой и удаленным сервером.
Вариант второй. Хакер, маскируясь под настоящий DNS-сервер и, используя известную дырку (ограниченность идентифицируемых пакетов) протокола UDP, напрямую пересылает на атакуемый узел не ложный запрос DNS, а, напротив, ложный DNS-ответ. Атакуемый сервер спокой - ненько принимает IP-адрес и, если он не совпадает с IP-адресом DNS - сервера, DNS-ответ не идентичен DNS-запросу, DNS-ответ попал в порт DNS-запроса (в крайнем случае хакер просто начинает перебирать 1023 возможных портов UDP) и поле идентификатора запроса идентично полю данных DNS-ответа, то хакер проникает в сеть путем внедрения фиктивного DNS-ответа в атакуемый хост.