Понимание и выполнение SYN-сканирования с использованием Nmap
Теперь, когда у нас есть запущенная целевая служба, пришло время погрузиться в SYN-сканирование. SYN-сканирование является важной частью тестирования сетевой безопасности, позволяющей нам обнаруживать открытые порты на целевой системе. В этом разделе мы узнаем, как работает SYN-сканирование, а затем используем Nmap, мощный инструмент для сетевого сканирования, чтобы выполнить SYN-сканирование нашего HTTP-сервера.
Что такое SYN-сканирование?
Перед тем как приступить к фактическому сканированию, необходимо понять основные механизмы SYN-сканирования. Для этого давайте сначала рассмотрим, как устанавливается обычное TCP-соединение.
Обычное TCP-соединение
При установке обычного TCP-соединения происходит трехэтапный рукопожатие (three - way handshake). Это фундаментальный процесс для установления надежного соединения между клиентом и сервером:
- Шаг 1: Пакет SYN от клиента
Клиент инициализирует соединение, отправив пакет SYN (синхронизация) на сервер. Этот пакет похож на запрос на начало разговора, спрашивая сервер, готов ли он к общению.
- Шаг 2: Пакет SYN - ACK от сервера
При получении пакета SYN, если сервер доступен и готов к общению, он отвечает пакетом SYN - ACK (синхронизация - подтверждение). Этот пакет подтверждает запрос клиента и также указывает, что сервер готов начать соединение.
- Шаг 3: Пакет ACK от клиента
Наконец, клиент отправляет пакет ACK (подтверждение), чтобы завершить трехэтапный рукопожатие. После этого шага TCP-соединение полностью установлено, и между клиентом и сервером можно обмениваться данными.
Процесс SYN-сканирования
SYN-сканирование, с другой стороны, имеет другой подход:
- Шаг 1: Пакет SYN от Nmap
Nmap, наш инструмент для сканирования, отправляет исходный пакет SYN на целевой порт. Это аналогично первому шагу в обычном TCP-соединении.
- Шаг 2: Ответ SYN - ACK от цели
Если целевой порт открыт, он ответит пакетом SYN - ACK, как и в обычном TCP-соединении.
- Шаг 3: Прерывание соединения Nmap
Вместо отправки последнего пакета ACK для завершения рукопожатия Nmap прерывает соединение. Это делает сканирование менее заметным, так как полное соединение никогда не устанавливается. Кроме того, оно быстрее, чем полное сканирование подключения (full connect scan), которое завершает весь трехэтапный рукопожатие для каждого сканируемого порта.
Выполнение SYN-сканирования
Шаг 1: Переход в каталог проекта
Сначала мы должны убедиться, что находимся в правильном каталоге проекта. Это важно, так как мы будем сохранять результаты сканирования в файле в этом каталоге. Чтобы перейти в каталог проекта, выполните следующую команду в терминале:
cd /home/labex/project
Шаг 2: Выполнение SYN-сканирования
Теперь мы готовы выполнить SYN-сканирование с использованием Nmap. Выполните следующую команду в терминале:
sudo nmap -sS localhost -p 8080 > /home/labex/project/nmap-syn-scan-results.txt
Разберем эту команду, чтобы понять, что делает каждая ее часть:
sudo
: Эта команда используется для выполнения следующей команды с повышенными привилегиями. SYN-сканирование требует привилегий суперпользователя (root), так как оно включает отправку необработанных сетевых пакетов, поэтому мы должны использовать sudo
для выполнения команды nmap
.
nmap
: Это инструмент для сетевого сканирования, который мы используем. Nmap широко применяется для исследования сетей и аудита безопасности.
-sS
: Этот параметр указывает, что мы хотим выполнить SYN-сканирование.
localhost
: Это цель нашего сканирования. В данном случае мы сканируем свою собственную машину.
-p 8080
: Этот параметр сообщает Nmap сканировать только порт 8080. Мы заинтересованы в проверке, открыт ли этот конкретный порт на нашей локальной машине.
> /home/labex/project/nmap-syn-scan-results.txt
: Эта часть команды перенаправляет вывод сканирования Nmap в файл с именем nmap - syn - scan - results.txt
в каталоге проекта. Таким образом, мы сможем просмотреть результаты позже.
Шаг 3: Просмотр результатов сканирования
После завершения сканирования мы можем просмотреть результаты. Выполните следующую команду в терминале:
cat /home/labex/project/nmap-syn-scan-results.txt
Вы должны увидеть вывод, похожий на следующий:
Starting Nmap 7.80 ( https://nmap.org ) at 2023-10-18 12:00 UTC
Nmap scan report for localhost (127.0.0.1)
Host is up (0.000097s latency).
PORT STATE SERVICE
8080/tcp open http-proxy
Nmap done: 1 IP address (1 host up) scanned in 0.03 seconds
Этот вывод содержит ценную информацию. Он подтверждает, что порт 8080 открыт на вашей локальной машине и что на нем запущена служба HTTP. Эта информация может быть использована для дальнейшего анализа безопасности или устранения неполадок в сети.