BugTraq.Ru
Русский BugTraq
https://bugtraq.ru/library/books/attack/chapter05/01.html

Методы удаленного сканирования портов

Методы открытого сканирования

Сканирование TCP SYN

Очевидный метод, основанный на принципах создания TCP-соединения и состоящий в последовательной передаче на объект сканирования TCP SYN-запросов на создание соединения на различные порты. Если порт открыт, то на данный сканирующий запрос будет получен ответ TCP SYN АСК; если же порт закрыт - ответом будет TCP RST.

Сканирование TCP FIN

В основу данного метода легли некоторые тонкости реализации протокола TCP в различных сетевых ОС: на передаваемый TCP FIN-запрос закрытые порты отвечают пакетом с флагом RST, а открытые порты данное сообщение игнорируют. Однако сетевые ОС фирмы Microsoft таким методом просканировать не удастся, так как в их реализации протокола TCP передача пакета TCP RST в ответ на подобный запрос не предусмотрена. Детально данный метод описал Уриэль Маймон (Uriel Maimon) в Phrack 49, article 15.

Сканирование с использованием IP-фрагментации

Этот метод служит логическим продолжением предыдущих двух методов, отличаясь от них усложнением задачи обнаружения сканирования. Суть его состоит в разбиении TCP SYN- или TCP FIN-зaпpoca на несколько маленьких IP-фрагментов (минимальный размер поля данных в IP-фрагменте 8 байт, следовательно, TCP SYN-запрос, имеющий минимальный размер 20 байт, можно разбить на три фрагмента). Однако у этого метода сканирования может быть незапланированный побочный эффект: некоторые некорректные реализации TCP/IP, получив подобные маленькие IP-фрагменты, вызывают сбой операционной системы.

Сканирование ТАР IDENT

Большинство UNIX-систем по умолчанию используют ТАР IDENT сервис на 113-м порту, задача которого заключается в предоставлении удаленным пользователям информации о существующих на сервере в данный момент соединениях. Входными параметрами ТАР-сервера являются <localport> (интересующий нас порт сервисной службы на сервере) и <foreignport> (порт клиента, подключившегося к данной службе сервера).

Выходными параметрами ТАР-сервера являются сообщения вида

<localport>, <foreignport>: USERID : <systemtype> : <conn-info> 

или

<localport>, <foreignport> : ERROR : <errortype>

Пример выходных данных ТАР-сервера:

6191 , 23 : USERID : UNIX : joe
6191 , 23 : USERID : MULTICS : StJohns.DODCSC.a
6191 , 23 : USERID : OTHER : StJohns.DODCSC.a
6191 , 23 : USERID : TAC : MCSJ-MITMUL
6191 , 23 : USERID : UNIX : a6X#-Yp,3147,2910
6191,  23 : USERID : OTHER: wewishyouamerrychristmasand
6191 , 23 : ERROR : NO-USER

Подробнее о выходных данных ТАР-сервера вы можете узнать в RFC1413, а мы лишь заметим, что для определения активности одного порта на сервере требуется перебор портов клиента <foreignport> от 1 000 до 65 535, что делает данный метод чрезвычайно неэффективным.

Внимательный читатель, наверное, заметил, что все вышеописанные методы открытого сканирования перечислялись "от простого к сложному". К чему все эти сложности? Ответ очевиден: создатели методов имели вполне понятное желание обойти появляющиеся автоматизированные системы обнаружения сканирования. Поэтому до тех пор, пока не были разработаны все эти методы, имела место "гонка" между системами атаки и системами обнаружения и последовательно появлялись новые (на тот момент) методы сканирования.

[24772]



  Copyright © 2001-2024 Dmitry Leonov Design: Vadim Derkach