Nmap используется для активного зондирования целевой сети на наличие активных хостов (обнаружение хостов), сканирования портов, обнаружения ОС, сведений о версии и активных служб, запущенных на хостах, которые включены. В этой статье рассмотрим три метода сканирования портов и их типы состояния.
Сканирование портов является одной из функций Nmap, в которой инструмент определяет состояние портов на активных хостах в сети. Статус портов может быть открытым, фильтрованным или закрытым. Итак, запустите Nmap. Добавьте необходимые переключатели в соответствии с типом сканирования, чтобы инициировать скан.
Пример: nmap -sS 192.168.0.1-192.168.0.52
Эта команда запускает Nmap в типе сканирования TCP SYN (-sS) и сканирует заданный диапазон IP-адресов на наличие активных хостов и служб.
Типы состояния порта
Открытый: статус открыто означает, что данный порт открыт и на нем активно запущена служба.
Отфильтрованный: статус отфильтрованный означает, что соответствующий порт может быть скрыт за брандмауэром, и его статус остается неизвестным.
Закрытый: закрытое состояние означает, что данный порт закрыт на хост-компьютере.
Различные методы сканирования портов в Nmap
Ниже приведены широко используемые методы сканирования в Nmap:
1. Сканирование TCP Connect: сканирование TCP Connect использует концепцию полного трехстороннего квитирования, чтобы определить, открыт ли данный порт, отфильтрован или закрыт в соответствии с полученным ответом. Nmap отправляет пакет TCP-запроса на каждый указанный порт и определяет статус порта по полученному ответу. В RFC 793 говорится,
Если соединение не существует (ЗАКРЫТО), то сброс отправляется в ответ на любой входящий сегмент, кроме другого сброса. В частности, SYN-адреса, адресованные несуществующему соединению, отклоняются этим средством.
По сути, это означает, что если Nmap отправляет TCP-запрос на закрытый порт с установленным флагом SYN, то он получает TCP-пакет с установленным ФЛАГОМ СБРОСА с целевого сервера. Это сообщает Nmap, что указанный порт “закрыт”.
В противном случае, если порт действительно “открыт”, то Nmap получает ответ с установленными флагами SYN / ACK в ответ на пакет, отправленный Nmap с установленным флагом SYN.
Третья возможность заключается в том, что если порт фильтруется, большинство брандмауэров сервера настроены на просто удаление входящих пакетов. Nmap не получает никакого ответа. По сути, это означает, что данный порт работает за брандмауэром (т.Е. “фильтруется”).
2. Сканирование TCP SYN (-sS): сканирование SYN часто называют “полуоткрытым” или “скрытым” сканированием. SYN-сканирование работает так же, как сканирование TCP Connect с закрытыми и отфильтрованными портами, т.Е. Получает ПЕРВЫЙ пакет для закрытого порта и не отвечает для отфильтрованных портов. Единственное различие заключается в том, как они обрабатывают открытые порты. SYN scan отправляет ответный пакет на сервер с установленным ФЛАГОМ СБРОСА (но не ACK, который обычно используется по умолчанию при фактическом трехстороннем квитировании) после получения SYN / ACK от целевого сервера. Это делается для того, чтобы сервер не мог постоянно отправлять запросы на установление соединения и тем самым сократить время сканирования.
Этот тип сканирования называется скрытым сканированием из-за следующих преимуществ:
Быстрее, потому что для этого не нужно выполнять полное трехстороннее рукопожатие.
Некоторые приложения часто регистрируют только те соединения, которые полностью установлены. Таким образом, приложения, прослушивающие открытые порты, не регистрируют эти соединения, что делает SYN scan “скрытым”.
3. UDP-сканирование (-sU): UDP в отличие от TCP не выполняет квитирование для установления соединения перед отправкой пакетов данных на целевой порт, а скорее отправляет пакеты в надежде, что пакеты будут получены целевым портом. Вот почему UDP-соединения часто называют “без состояния”. Этот тип соединения более эффективен, когда скорость превосходит качество, например, при совместном использовании видео. Поскольку от целевого порта не будет подтверждения о том, получил ли он пакет, сканирование UDP становится более сложным и намного медленнее.
Когда после отправки UDP-пакета нет ответа от целевого порта, это часто означает, что порт либо “открыт”, либо работает за брандмауэром, т.Е. “фильтруется”, и в этом случае сервер просто отбросит пакет без ответа.
UDP-сканирование может эффективно идентифицировать закрытые порты, поскольку целевой UDP-порт отвечает ICMP-пакетом с сообщением о том, что порт недоступен.
Приведенные ниже методы сканирования с меньшей вероятностью будут использоваться в режиме реального времени, но стоит изучить принцип, лежащий в их основе. Говорят, что они еще более незаметны, чем сканирование “SYN stealth”.
Для приведенных ниже типов сканирования, когда пакет отправляется на “открытый” порт, от целевого порта не будет никакого ответа, что очень похоже на UDP-сканирование. Когда следующие типы сканирования не получают ответа, они помечают порт как открытый / отфильтрованный. Согласно RFC 793, для искаженных пакетов закрытые порты на сервере обязаны отвечать ПЕРВЫМ TCP-пакетом и вообще не отвечать на открытые порты.
TCP NULL Scan (-sN): НУЛЕВОЕ сканирование, как следует из названия, отправляет TCP-пакет без установленных флагов. Если порт закрыт, хост отвечает RST.
TCP FIN Scan (-sF): FIN scan вместо отправки полностью пустых пакетов отправляет пакет с установленным флагом FIN. Если порт закрыт, хост отвечает RST.
TCP XMAS Scan (-sX): РОЖДЕСТВЕНСКОЕ сканирование, отправляет пакет с установленными флагами URG, PSH, FIN. Это сканирование получило свое название из-за того, что оно выглядит как рождественская елка, если рассматривать его как захват пакета в Wireshark. Если порт закрыт, хост отвечает RST.