- •Открытые методы сканирования
- •Сканирование tcp-портов методом reverse-ident (обратной идентификации)
- •Полуоткрытые методы сканирования
- •Syn scan (тср-сканирование пакетами с установленным флагом syn)
- •Сканирование с использованием "немого" хоста ("dumb"hostscan)
- •Скрытые (stealth) методы сканирования
- •Syn|ack scan (тср-сканирование пакетами с установленными флагамиSyNиAck)
- •Fin scan (тср-сканирование пакетами с установленным флагом fin)
- •Ack scan (тср-сканирование пакетами с установленным флагом ack)
- •Null scan (тср-сканирование нулевыми пакетами)
- •Xmas Tree scan (tcp-сканирование методом "рождественской елки")
- •Tcp Fragmenting (tcp-сканирование с использованием ip-фрагментации)
- •Остальные методы сканирования
- •СканированиеUdp-портов проверкойIcmp-сообщения "Порт недоступен"
- •Сканирование tcp-портов с использованием атаки «Прорыв через ftp»
- •Обнаружение и блокировка пакетных аномалий
Ack scan (тср-сканирование пакетами с установленным флагом ack)
Впервые данный метод описал Уриэль Маймон (UrielMaimon) в электронном журналеPhrack49,article15. Метод также основан на ошибке сетевого кода некоторых операционных систем.
Для проверки порта этим методом нужно отослать ACKпакет на целевой хост. Ответные пакеты можно оценить по двум параметрам: по полюTTL(TimeToLive- время жизни пакета) и по полюWINDOW. Оба этих поля должны содержать ответные пакеты с флагомRST.
Флаг RSTбудет потому, что сервер будет разрывать соединение. У некоторых ОС ответные пакеты с открытых портов будут иметьTTLменьше, чем пакеты с закрытых. Обычно наACKпакет с любымTTLс открытого порта прейдет ответ, у которогоTTLменьше или равно 64, а с соседних закрытых портовTTLбудет больше.
![]()
Так выглядит реальный ответ хоста:
packet 1: host XXX.XXX.XXX.XXX port 20: F:RST -> ttl: 70 win: 0 => closed
packet 2: host XXX.XXX.XXX.XXX port 21: F:RST -> ttl: 70 win: 0 => closed
packet 3: host XXX.XXX.XXX.XXX port 22: F:RST -> ttl: 40 win: 0 => open
packet 4: host XXX.XXX.XXX.XXX port 23: F:RST -> ttl: 70 win: 0 => closed
Здесь видно, что TTLу пакетов до и после третьего больше 64.TTLменьше 64 у третьего пакета говорит о том, что порт 22 открыт.
Оценка по полю WINDOWосновывается на том, что для открытых портов значение этого поля не будет нулевым. Так происходит с ранними версиямиBSD(FreeBSD,OpenBSD) иUNIX(AIX,DGUX), но в последующих версиях это было исправлено.
![]()
Так выглядит реальный ответ хоста:
packet 6: host XXX.XXX.XXX.XXX port 20: F:RST -> ttl: 64 win: 0 => closed
packet 7: host XXX.XXX.XXX.XXX port 21: F:RST -> ttl: 64 win: 0 => closed
packet 8: host XXX.XXX.XXX.XXX port 22: F:RST -> ttl: 64 win: 512 => open
packet 9: host XXX.XXX.XXX.XXX port 23: F:RST -> ttl: 64 win: 0 => closed
У всех пакетов в этом примере TTLравно 64 это значит, что для данного хоста работает толькоWINDOWметод.
Преимущества:обходитIDS, сложно логируется
Недостатки:основан на ошибке в сетевом коде ОСBSD, подходит не для всех ОС
Null scan (тср-сканирование нулевыми пакетами)
Как можно понять из названия метода, NULL сканирование производится пакетами, у которых все флаги сброшены. ACK, FIN, RST, SYN, URG, PSH не установлены. Зарезервированные биты (RES1, RES2) не влияют на результаты сканирования, и установлены они или нет, не имеет никакого значения. Когда пакет приходит на сервер, сетевой код BSD игнорирует пакет, если порт открыт.
![]()
Если порт закрыт, отсылается RST пакет (еще один инвертированный метод).
![]()
Из-за того что в стандарте (RFC) не описывается как должен ответить хост при получении пакетов без флагов, различные операционные системы ведут себя по-разному.
Преимущества:обходитIDS, не устанавливает полного соединения
Недостатки:подходит только для всех ОС семействаUNIX, возможно ложное определение закрытого порта как открытый
Xmas Tree scan (tcp-сканирование методом "рождественской елки")
Так называемое XMAS сканирование является противоположностью NULL методу. В TCP заголовке отсылаемого пакета устанавливаются все флаги (ASK, FIN, RST, SYN, URG, PSH). Метод XMAS или "рождественской елки" так называется из-за вида пакетов со всеми флагами. Зарезервированные биты никак не влияют на результат сканирования и их установка не имеет значения. Опять же метод основан на сетевом коде BSD и работает только на UNIX хостах.
XMAS сканирование устанавливает все флаги и отправляет пакет на удаленный хост. Если пакет получает открытый порт, система игнорирует пакет, если закрытый, возвращает RST. Метод является инвертированным и возможны ложные срабатывания.
Случай, если порт открыт или пакет отфильтрован файерволом или маршрутизатором:
![]()
Случай закрытого порта:
![]()
Сервер отошлет RST, т.к. будет считать, что клиент пытается установить соединение с закрытым портом стандартным трехшаговым методом. И отошлет флаг сброса (RST) для немедленного прекращения передачи.
Преимущества:обходитIDS, не устанавливает полного соединения
Недостатки:подходит только для всех ОС семействаUNIX, возможно ложное определение закрытого порта как открытый
