Хакер отправляет в сеть пакеты с
ложным обратным адресом. С помощью этой атаки
хакер может переключать на свой компьютер
соединения, установленные между другими
компьютерами. При этом права
доступа хакера становятся равными правам того
пользователя, чье соединение с сервером
было переключено на компьютер хакера. Установка
TCPсоединения происходит в три стадии: клиент
выбирает и передает серверу sequence number
(назовем его C-SYN), в ответ на это сервер
высылает клиенту пакет данных, содержащий
подтверждение (C-ACK) и собственный sequence number
сервера (S-SYN). Теперь уже клиент должен выслать
подтверждение (S-ACK). После этого соединение
считается установленным и начинается обмен
данными. При этом каждый пакет имеет в
заголовке поле для sequence number и acknowledge
number. Данные числа увеличиваются при обмене
данными и позволяют контролировать
корректность передачи. Предположим, что
хакер может предсказать, какой sequence number (S-SYN по
схеме) будет выслан сервером. Это возможно
сделать на основе знаний о конкретной реализации
TCP/IP. Таким образом, послав один пакет
серверу, хакер получит ответ и сможет (возможно, с
нескольких попыткок и с поправкой на скорость
соединения) предсказать sequence number для следующего
соединения. Если реализация TCP/IP исполь-
зует специальный алгоритм для определения sequence
number, то он может быть выяснен с помощью
посылки нескольких десятков пакетов серверу
и анализа его ответов. Итак, предположим,
что система A
доверяет системе B, так, что пользователь системы
B может сделать "rlogin A" и оказаться на A, не
вводя пароля. Предположим, что хакер
расположен на системе C. Система A выступает в
роли сервера, системы B и C - в роли клиентов.
Первая задача хакера - ввести систему B в
состояние, когда она не сможет отвечать на
сетевые запросы. Это может быть сделано
несколькими способами, в простейшем случае нужно
просто дождаться перезагрузки системы B.
Нескольких минут, в течении
которых она будет неработоспособна,
должно хватить. После этого хакер может
попробовать притвориться системой B, для того,
что бы получить доступ к системе A (хотя бы
кратковременный). Хакер высылает несколько
IP-пакетов, инициирующих соединение, системе A, для
выяснения текущего состояния sequence number сервера.
Хакер высылает IP-пакет, в котором в качестве
обратного адреса указан уже адрес системы B.
Система A отвечает пакетом с sequence number, который
направляется системе B. Однако система B
никогда не получит его (она выведена из
строя),
как, впрочем, и хакер. Но он на основе
предыдущего анализа догадывается, какой sequence number
был выслан системе B. Хакер подтверждает
"получение" пакета от A, выслав от имени B
пакет с предполагаемым S-ACK (заметим, что если
системы располагаются в одном сегменте,
хакеру для выяснения sequence number достаточно
перехватить пакет, посланный системой A). После
этого, если хакеру повезло и sequence number сервера был
угадан верно, соединение считается
установленным. Теперь хакер может выслать
очередной фальшивый IP-пакет, который будет уже
содержать данные. Например, если атака была
направлена на rsh, он может содержать команды
создания файла .rhosts или отправки /etc/passwd хакеру
по электронной почте.
АИСС БКБ, www.orioncom.ru, tel (495) 783-5510