Исследование методов сканирования портов с использованием Nmap
Nmap представляет собой мощный инструмент в области кибербезопасности, особенно когда дело доходит до сканирования портов. Сканирование портов - это метод, используемый для определения, какие порты на целевой системе открыты и какие службы могут быть запущены на этих портах. Существуют различные типы методов сканирования портов, каждый из которых имеет свои уникальные преимущества и конкретные сценарии использования. На этом этапе мы рассмотрим некоторые из этих методов, выполнив сканирование нашей тестовой службы.
Сначала выполним простой скан TCP - соединения, специально нацеленный на наш порт 8888. Сканирование TCP - соединения представляет собой простой способ проверить, открыт ли порт. Он работает путем попытки установить полноценное TCP - соединение с целевым портом. Если соединение установлено успешно, порт считается открытым.
nmap -p 8888 localhost
В этой команде опция -p
используется для указания того, какие порты мы хотим сканировать. Здесь мы сообщаем Nmap сканировать порт 8888 на localhost
, что означает текущую машину. После выполнения этой команды вы должны увидеть вывод, похожий на следующий:
Starting Nmap 7.80 ( https://nmap.org ) at 2023-10-30 15:50 UTC
Nmap scan report for localhost (127.0.0.1)
Host is up (0.000097s latency).
PORT STATE SERVICE
8888/tcp open sun-answerbook
Nmap done: 1 IP address (1 host up) scanned in 0.05 seconds
Этот вывод подтверждает, что наш порт 8888 открыт. Nmap также определил имя службы, связанное с этим портом, согласно своей внутренней базе данных.
Теперь попробуем выполнить SYN - скан. SYN - скан является более скрытым методом по сравнению с сканированием TCP - соединения. Он не завершает полноценное TCP - соединение, что делает его менее вероятным для обнаружения системами обнаружения вторжений.
sudo nmap -sS -p 8888 localhost
Опция -sS
указывает, что мы хотим выполнить SYN - скан. Этот тип сканирования требует привилегий суперпользователя (root), так как он включает отправку простых сетевых пакетов, что является низкоуровневой операцией. Именно поэтому мы используем команду sudo
. Вывод должен быть похож на вывод предыдущего скана:
Starting Nmap 7.80 ( https://nmap.org ) at 2023-10-30 15:55 UTC
Nmap scan report for localhost (127.0.0.1)
Host is up (0.000097s latency).
PORT STATE SERVICE
8888/tcp open sun-answerbook
Nmap done: 1 IP address (1 host up) scanned in 0.04 seconds
Далее попробуем выполнить UDP - скан. UDP (User Datagram Protocol) представляет собой другой тип сетевого протокола по сравнению с TCP. В то время как TCP обеспечивает надежную, ориентированную на соединение службу, UDP является протоколом без установления соединения. Мы используем UDP - скан, чтобы проверить, открыт ли порт 8888 для UDP - трафика.
sudo nmap -sU -p 8888 localhost
Опция -sU
указывает на выполнение UDP - скана. UDP - сканы могут быть более затратными по времени, чем TCP - сканы, так как UDP не имеет такого же встроенного механизма подтверждения, как TCP, поэтому Nmap должен ждать дольше, чтобы определить, открыт или закрыт порт. Вывод может выглядеть следующим образом:
Starting Nmap 7.80 ( https://nmap.org ) at 2023-10-30 16:00 UTC
Nmap scan report for localhost (127.0.0.1)
Host is up (0.000097s latency).
PORT STATE SERVICE
8888/udp closed sun-answerbook
Nmap done: 1 IP address (1 host up) scanned in 0.15 seconds
Обратите внимание, что UDP - порт показан как закрытый. Это ожидаемо, так как наша служба netcat прослушивает TCP - соединения, а не UDP.
Наконец, выполним скан для определения версии службы. Этот тип сканирования помогает нам определить, какая конкретная служба и ее версия запущены на определенном порте.
nmap -sV -p 8888 localhost
Опция -sV
сообщает Nmap выполнить определение службы/версии. Он пытается отправить специальные запросы на открытые порты и проанализировать ответы, чтобы определить службу и ее версию. Вывод может выглядеть следующим образом:
Starting Nmap 7.80 ( https://nmap.org ) at 2023-10-30 16:05 UTC
Nmap scan report for localhost (127.0.0.1)
Host is up (0.000097s latency).
PORT STATE SERVICE VERSION
8888/tcp open http Apache httpd
Service Info: OS: Linux; CPE: cpe:/o:linux:linux_kernel
Nmap done: 1 IP address (1 host up) scanned in 6.51 seconds
Определение версии может не точно идентифицировать нашу службу netcat как настоящее приложение, но оно демонстрирует, как Nmap пытается определить, что запущено на открытых портах.
Сохраним наши результаты в файл для дальнейшего использования. Сохранение результатов сканирования позволяет нам позже просмотреть их, поделиться с другими или использовать для дальнейшего анализа.
nmap -p 8888 localhost > /home/labex/project/nmap_scan_results.txt
В этой команде символ >
используется для перенаправления вывода сканирования Nmap в файл с именем nmap_scan_results.txt
, расположенный в директории /home/labex/project
.
Вы можете просмотреть сохраненные результаты с помощью следующей команды:
cat /home/labex/project/nmap_scan_results.txt
Команда cat
используется для отображения содержимого файла.
Таким образом, мы завершили исследование различных методов сканирования портов с использованием Nmap.