|
Just FYI - RST - это БИТ! (+)
|
Posted by: SOLDIER on November 10, 2002 at 13:39:37
Posters Details: [212.45.19.138], X-Forwarded 4: [193.232.26.72] [Mozilla/4.77 [en] (X11; U; Linux 2.2.19-SOLDIER_UINC_TEAM i586)]
In Reply to: TCP RST bait Posted by: Bedman on November 08, 2002 at 16:19:04
Как сказано в сабже - RST - это бит (почуствуй разницу). Один из битов поля флаги (Flags) - всего их 6. Кроме этого в TCP-сегменте есть 2 32-битных поля: Sequence Number и Acknowlegement Number. SEQ - это номер первого октета сегмента в потоке TCP - формирует клиент, запросивший соединение. При установлении связи в результате тройного рупожатия (SYN - SYN-ACK - ACK) стороны договариваются о начальных порядковых номерах (Initial Sequence Number, ISN) в каждом из направлений. Впоследствии первый октет переданных данных будет иметь номер ISN+1. Далее. Алгоритм формирования ISN является одной из важнейших задач безопасности TCP/IP стека конкретной ОС. Чем более случайный алгоритм формирования ISN-тем больше защищена ОС. Тут используются различные алгоритмы, типа использования устройств /dev/random, /dev/random. Можно ещё ввести понятие "энтропии" (предопределённости), но это уже глухая история. С точки зрения безопасности, если можно предсказать ISN-это уже дыра в безопасности. Пошарься по нашему форуму и ньюсам-я, кажись, давал ссылку на исследования ISN в различных ОС. Есть одна возможность сформировать НУЖНЫЙ SEQ - прослушивая траффик на участке клиент-сервер, предположить возможное значение SEQ и тупо долбить одним пакетом с предопределённым SEQ и спуффленными IP-адресами в надежде, что ты когда-нибудь попадёшь в струю и сервер закроет соединение. Но вероятность очень мала. Есть ещё одно но. При следущей посылке в уже закрытый TCP-канал cоединение может возобновиться ( с фазой тройного хендшейкинга, разумеется).
Follow Ups:
|
|