- •Открытые методы сканирования
- •Сканирование 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, возможно ложное определение закрытого порта как открытый