Методы сканирования портов с помощью Nmap
Nmap — это инструмент аудита безопасности, используемый в области безопасности для активного перечисления целевой системы/сети. Это один из наиболее широко используемых инструментов сетевыми администраторами и, наоборот, злоумышленниками для разведки (подсчета), первый шаг в 5 этапах взлома. Nmap используется для активного исследования целевой сети на наличие активных хостов (обнаружение хостов), сканирование портов, определение ОС, сведения о версии и активные службы, работающие на работающих хостах. Для этого Nmap использует технику отправки пакетов и анализа ответов. Чтобы узнать больше, обратитесь к статье Nmap.
Сканирование портов — это одна из функций Nmap, в которой инструмент определяет состояние портов на активных хостах в сети. Статус портов может быть открытым, отфильтрованным или закрытым. Введите Nmap в командной строке, чтобы запустить Nmap. Добавьте необходимые переключатели в соответствии с типом сканирования, чтобы инициировать определенный метод сканирования.
Example: nmap -sS 192.168.0.1-192.168.0.52
Эта команда запускает Nmap в режиме сканирования TCP SYN (-sS) и сканирует заданный диапазон IP-адресов на наличие активных хостов и служб.
Пожалуйста, обратитесь к статье Сканирование портов, чтобы узнать больше об этом.
Типы статуса порта:
- Open : статус open означает, что данный порт открыт и на нем активно работает служба.
- Отфильтровано : статус отфильтровано означает, что соответствующий порт может быть скрыт за брандмауэром, и его статус остается неизвестным.
- Закрыто : закрытое состояние означает, что данный порт закрыт на хост-компьютере.
Различные методы сканирования портов в Nmap :
Ниже приведены широко используемые методы сканирования в Nmap:
1. Сканирование TCP-подключения (-sT) : сканирование TCP-подключения использует концепцию полного трехэтапного рукопожатия, чтобы определить, открыт ли данный порт, отфильтрован или закрыт в соответствии с полученным ответом. Nmap отправляет пакет запроса TCP на каждый указанный порт и определяет статус порта по полученному ответу. RFC 793 говорит,
If the connection does not exist (CLOSED) then a reset is sent in response to any incoming segment except another reset. In particular, SYNs addressed to a non-existent connection are rejected by this means.
- По сути, это означает, что если Nmap отправляет запрос TCP на закрытый порт с установленным флагом SYN, то он получает пакет TCP с установленным флагом RESET от целевого сервера. Это сообщает Nmap, что указанный порт «закрыт».
- В противном случае, если порт действительно «открыт», то Nmap получает ответ с установленными флагами SYN/ACK в ответ на пакет, отправленный Nmap с установленным флагом SYN.
- Третья возможность заключается в том, что если порт фильтруется, большинство брандмауэров сервера настроены так, чтобы просто отбрасывать входящие пакеты. Nmap не получает ответа. По сути, это означает, что данный порт работает за брандмауэром (то есть «фильтруется»).
2. Сканирование TCP SYN (-sS) . Сканирование SYN часто называют «полуоткрытым» или «скрытым» сканированием. Сканирование SYN работает так же, как сканирование TCP Connect с закрытыми и отфильтрованными портами, т.е. получает пакет RST для закрытого порта и не отвечает для отфильтрованных портов. Единственная разница заключается в том, как они обрабатывают открытые порты. Сканирование SYN отправляет ответный пакет на сервер с установленным ФЛАГОМ СБРОСА (но не ACK, который обычно используется по умолчанию при фактическом трехстороннем рукопожатии) после получения SYN/ACK от целевого сервера. Это делается для того, чтобы сервер не делал постоянных запросов на установление соединения и тем самым сокращал время сканирования.
Этот тип сканирования называется скрытым сканированием из-за следующих преимуществ:
- Быстрее, потому что ему не нужно завершать полное трехстороннее рукопожатие.
- Некоторые приложения часто регистрируют только те соединения, которые полностью установлены. Таким образом, приложения, прослушивающие открытые порты, не регистрируют эти соединения, что делает сканирование SYN «скрытым».
3. Сканирование UDP (-sU): UDP, в отличие от TCP, не выполняет рукопожатие для установления соединения перед отправкой пакетов данных на целевой порт, а отправляет пакеты в надежде, что пакеты будут получены целевым портом. Вот почему UDP-соединения часто называют «безгражданскими». Этот тип подключения более эффективен, когда скорость затмевает качество, например, при обмене видео. Поскольку от целевого порта не будет подтверждения о том, что он получил пакет, сканирование UDP становится более сложным и очень медленным.
- Когда нет ответа от целевого порта после отправки пакета UDP, это часто означает, что порт либо «открыт», либо работает за брандмауэром, то есть «отфильтрован», и в этом случае сервер просто отбросит пакет без ответа.
- Сканирование UDP может эффективно идентифицировать закрытые порты, поскольку целевой порт UDP отвечает пакетом ICMP с сообщением о том, что порт недоступен.
Приведенные ниже методы сканирования с меньшей вероятностью будут использоваться в режиме реального времени, но стоит изучить их принцип. Говорят, что они даже более скрытны , чем сканирование «SYN Stealth».
Для следующих типов сканирования, когда пакет отправляется на «открытый» порт, не будет никакого ответа от целевого порта, что очень похоже на сканирование UDP. Когда указанные ниже типы сканирования не получают ответа, они помечают порт как открытый/отфильтрованный. Согласно RFC 793, для искаженных пакетов закрытые порты на сервере должны отвечать TCP-пакетом RST, а открытые порты вообще не отвечают.
- Сканирование TCP NULL (-sN): сканирование NULL, как следует из названия, отправляет TCP-пакет без установленных флагов. Если порт закрыт, хост отвечает RST.
- Сканирование TCP FIN (-sF): сканирование FIN вместо отправки полностью пустых пакетов отправляет пакет с установленным флагом FIN. Если порт закрыт, хост отвечает RST.
- TCP XMAS Scan (-sX): сканирование XMAS, отправляет пакет с установленными флагами URG, PSH, FIN. Это сканирование получило свое название из-за появления рождественской елки при просмотре в Wireshark как перехват пакета. Если порт закрыт, хост отвечает RST.