Временная метка хост-отпр.порт-отпр. > хост-получ .порт-получ : Флаги TCP

14:18:25.906002 apollo.it.lue.edu.1000 > x-terminal.shell : S Порядк_номер : номер_подтв Размер окна 1382726990:1382726990(0) win 4096

В следующих трассировках показано начало наводнения SYN-пакетами хоста x-terminal. Символы + + + добавлены для обозначения группы из трех пакетов.

++ +

14:18:25.906002 apollo.it.lue.edu.1000 > x-terminal.shel1 : S 1382726990:1382726990(0) win 4096

14:18:26.094731 x-terminal.shell > apollo.it.lue.edu.1000 : S 2021824000:2021824000(0) ack 1382726991 win 4096

14:18:26.172394 apollo.it.lue.edu.1000 > x-terminal.shell : R 1382726991:1382726991(0) win 0 + + +

+ + +

14:18:26.507560 apollo.it.lue.edu.999 > x-terminal.shell : S 1382726991:1382726991(0) win 4096

14:18:26.694691 x-terminal.shell > apollo.it.lue.edu.999 : S 2021952000:2021952000 (0) ack 1382726992 win 4096

14:18:26.775037 apollo.it.lue.edu.999 > x-terminal.shell : R Ъ 1382726992:1382726992(0) win 0 + + +

Обратите внимание на значения, выделенные жирным шрифтом. Во второй группе пакетов это порядковый номер SYN/ACK-пакета от x-terminal, который равен 2021952000. В предыдущей группе пакетов аналогичный порядковый номер имел значение 2021824000. Если из 2021952000 вычесть 2021824000, получится 128000. Означает ли что-то это число? Посмотрим, будет ли оно повторяться для следующих групп пакетов.

14:18:27.014050 apollo.it.lue.edu.998 > x-terminal.shell : S 1382726992:1382726992(0) win 4096

14:18:27.174846 x-terminal.shell > apollo.it.lue.edu.998 : S 2022080000:2022080000(0) ack 1382726993 win 4096

14:18:27.251840 apollo.it.lue.edu.998 > x-terminal.shel1 : R

^ 1382726993:1382726993(0) win 0

14:18:27.544069 apollo.it.lue.edu.997 > X-terminal.shel1 : S 1382726993:1382726993(0) win 4096

14:18:27.714932 x-terminal.shell > apollo.it.lue.edu.997 : S 2022208000:2022208000(0) ack 1382726994 win 4096

14:18:27.794456 apollo.it.lue.edu.997 > X-terminal.shell : R Ъ 1382726994:1382726994(0) win 0

И снова 2022208000 - 2022080000 = 128000. Таким образом, это число повторяется, т.е. значение порядкового номера является предсказуемым. Теперь известно, что при отправке SYN-пакета на хост x-terminal в ответном SYN/ACK-пакете значение порядкового номера будет больше на 128000 (если это соединение будет следующим). Если есть возможность заблокировать одну сторону TCP-соединения, используются доверительные отношения и можно спрогнозировать порядковый номер пакета, значит, все готово для перехвата этого соединения (рис. 15.2).

Рис. 15.2. Гототюстъ к атаке

Взлом системы

Почему стала возможной эта атака с использованием доверительных отношений? Безусловно, любой компьютер обнаружил бы некорректный IP-адрес хоста хакера. Однако IP-адрес был подменен, поэтому ничего не обнаруживается. Значение поля TTL может отличаться, но это значение используется на уровне протокола IP, а все действия после установки соединения выполняются на уровне TCP. Изменяется маршрут доставки пакетов, но без специальных программ это определить невозможно, так как в протоколе IP не предусмотрена запись информации о маршруте передачи сообщения. Поэтому все упирается в порядковые номера. Если хакер отправит пакет с неправильным порядковым номером, то получатель ответит RST-пакетом и разорвет соединение. Именно поэтому в атаке Митника такое большое значение имеет возможность предсказать порядковый номер. Теперь хакер может заблокировать одну сторону соединения (сервер), перехватить соединение и убедить другую сторону (х-terminal) в том, что его хост и есть сервер. Что дальше? Вернемся к р’ассказу Дутому:

“Мы получили подложный SYN-пакет (запрос на соединение) якобы от server. login к x-terminal. shell. Предполагалось, что между этими двумя компьютерами установлены доверительные отношения, поэтому x-terminal выполнял все, что требовал server (или тот, кто выдавал себя за server). Хост ответил на запрос пакетом с флагами АСК и SYN. Так как заблокированный сервер не отвечал на пакеты, отправленные к server. login, то хакеру пришлось также подменить следующее подтверждение”.

При стандартной установке соединения порядковый номер в SYN/АСК-пакете необходим для генерации соответствующего номера в пакете с флагом АСК. Но хакер знает о принципе назначения порядковых номеров на хосте х-terminal. shell, поэтому он может отправить “правильный” АСК-пакет без получения SYN/АСК-пакета.

Все это подтверждает следующая трассировка TCPdump. В первой строке хост x-terminal. shell получает от имени server запрос на установку соединения. Сервер так и не получит ответного SYN/АСК-пакета, который пропущен в трассировке. Но хакер знает, что в АСК-пакете нужно только добавить к исходному порядковому номеру число 128000 плюс 1. После доставки АСК-пакета соединение считается установленным.

14:18:36.245045 server.login > x-terminal.shell : S 1382727010:1382727010(0) win 4096

14:18:36.755522 server.login > x-terminal.shell : . ack 2024384001 win 4096

Итак, Митник использует доверительные отношения между x-terminal и server. Он отправляет SYN-пакет с подмененным ІР-адресом отправителя. Этот пакет отправляется вслепую, хакер не может узнать ответ (если только в локальной сети x-terminal или server не установлен анализатор пакетов). Хост x-terminal отправляет ответ (SYN/АСК-пакет) действительному серверу. Сервер, который не отправлял никакого SYN-пакета, должен был бы ответить RST-пакетом и разорвать соединение. Но этого не происходит. Как показано ниже, за 14 секунд до начала основной фазы атаки очередь соединений порта login заполняется подготовленными SYN-пакетами. Сервер не в состоянии ответить на новый пакет.

14:18:22.516699 130.92.6.97.600 > server.login : S 1382726960:1382726960(0) win 4096

14:18:22.566069 130.92.6.97.601 > server.login : S 1382726961:1382726961 (0) 'Îÿ win 4096

14:18:22.744477 130.92.6.97.602 > server.login: S 1382726962:1382726962(0) win 4096

14:18:22.830111 130.92.6.97.603 > server.login : S 1382726963:1382726963 (0) win 4096

14:18:22.886128 130.92.6.97.604 > server.login: S 1382726964:1382726964(0) win 4096

14:18:22.943514 130.92.6.97.605 > server.login : S 1382726965:1382726965(0) win 4096

г-службы

Некоторые думают, что служба telnet и r-службы уже полностью заменены службой SSH (secure shell - защищенная оболочка), но это не соответствует действительности. И telnet, и r-службы по-прежнему используются очень широко. Служба login еще известна как rlogin и rshell (для доступа к командному интерпретатору). Эти службы удаленного вызова процедур созданы для “удобства” пользователей и позволяют выполнять операции на удаленном хосте без необходимости ввода пароля. На UNIX-компьютерах для создания доверительных отношений для всех пользователей, кроме суперпользователя (root), достаточно добавить имя доверенного компьютера или учетной записи в файл /etc/hosts. equiv. Для установки доверительных отношений с привилегиями суперпользователя предназначен файл / .rhosts. Так называемые r-службы уже устарели и использовать их не следует. Служба SSH обеспечивает большую безопасность. Для файлов /etc/hosts.equiv и / .rhosts символ + (плюс) является универсальным. Например, строка /.rhosts ++ означает “доверять всем хостам и всем пользователям этих хостов".

Пока настоящий сервер заблокирован SYN-наводнением, соединение с доверительными отношениями используется для выполнения следующей команды: rsh x-terminal "echo + + >>/. rhosts". Эта команда приказывает хосту х-terminal доверять всем компьютерам и всем пользователям этих компьютеров. Ниже представлена соответствующая трассировка.

14:18:37.265404 server.login > x-terminal.shell : P 0:2(2) ack 1 win 4096

14:18:37.775872 server.login > x-terminal.shell : P 2:7(5) ack 1 win 4096

14:18:38.287404 server.login > x-tërminal.shell : P 7:32(25) ack 1 win 4096

В этот момент соединение разрывается хакером с помощью пакета с установленным флагом FIN. Теперь Митник может подключиться к x-terminal с любого хоста и выполнить любую команду. Атакованная система скомпрометирована.

14:18:41.347003 server.login > x-terminal.shell : . ack 2 win 4096

14:18:42.255978 server.login > x-terminal.shell : . ack 3 win 4096

14:18:43.165874 server.login > x-terminal.shel1 : F 32:32 (0) ack 3 win 4096

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

14:18:52.298431 130.92.6.97.600 > server.login: R 1382726960:1382726960(0) % win 4096

14:18:52.363877 130.92.6.97.601 > server.login: R 1382726961:1382726961(0) ■b win 4096

14:18:52.416916 130.92.6.97.602 > server.login: R 1382726962:1382726962(0) win 4096

14:18:52.476873 130.92.6.97.603 > server.login: R 1382726963:1382726963(0) 'b win 4096

14:18:52.536573 13 0.92.6.97.604 > server.login: R 1382726964:1382726964(0) ^ win 4096

Syn-наводнение | Обнаружение нарушений безопасности в сетях | Выявление атаки митника


Обнаружение нарушений безопасности в сетях



Новости за месяц

  • Июнь
    2021
  • Пн
  • Вт
  • Ср
  • Чт
  • Пт
  • Сб
  • Вс