Скрытое сканирование (stealth scan) с помощью Nmap

nmap Applications

В этом руководстве описаны различные техники выполнения скрытого сканирования (stealth scan) с помощью Nmap.

Методы скрытого сканирования применяются для обхода брандмауэров или обнаружения живых узлов, оставаясь при этом незамеченными.

Nmap предлагает множество флагов и опций для выполнения различных типов скрытого сканирования, большинство из которых описаны в этой статье. Они просты в реализации и представляют собой хороший процесс обучения работе с IP-пакетами.

После прочтения этого материала читатель будет лучше понимать сетевые пакеты и коммуникации, одновременно приобретая глубокие практические знания о скрытом сканировании с помощью Nmap.

Все инструкции в этом руководстве содержат скриншоты, что позволяет всем читателям легко понять, как они выполняются и каковы их выходы или результаты.

Краткое введение в скрытое сканирование

Обычно брандмауэры обнаруживают устанавливающиеся или установленные соединения.

TCP посылает пакеты, пытаясь установить соединение с целью (собирая информацию в процессе). Эта активность может быть заблокирована и зарегистрирована брандмауэром для сообщения администратору.

Предположим, что пользователь по умолчанию имеет привилегии root. В этом случае Nmap использует технику скрытого сканирования, состоящую из пакетов SYN (синхронизация) и пакетов RST, прерывающих соединение после первого ответа от адресата.

Пользователи могут помешать брандмауэрам обнаружить сканирование, прерывая краткое взаимодействие за один раз и отменяя процесс соединения до отправки ответа ACK.

Как показано на рисунке ниже, обычное TCP-сканирование состоит из начального пакета SYN (синхронизация) от Nmap (PC1), запрашивающего цель (PC2) о синхронизации соединения. Если целевой порт открыт, цель отвечает пакетами SYN+ACK (подтверждение и синхронизация), подтверждающими прием SYN и синхронизацию с Nmap, а Nmap посылает пакеты ACK (подтверждение) в качестве ответа на SYN цели.

Stealth Scans With Nmap

На следующем рисунке показано скрытое сканирование с пакетами SYN. Как вы видите, последний пакет подтверждения (ACK), отправленный PC1 (Nmap), заменяется пакетом RST, прерывая соединение для обхода брандмауэров (системы обнаружения вторжений и пользовательские брандмауэры обнаружат скрытое сканирование).

Stealth Scans With Nmap

Техники сканирования TCP SYN (Stealth) в Nmap

Чтобы выполнить SYN или скрытое сканирование, подобное тому, что изображено на предыдущем втором рисунке, пользователь должен использовать флаг -sS (SYN). Эта опция сбросит соединение до его установления.

SYN-сканирование требует привилегий root; используйте команду sudo.

В следующем примере выполняется скрытое сканирование сети 192.168.153.0/24:

TCP SYN (Stealth) в Nmap

Сканирование TCP SYN Ping

Флаг -PS позволяет запускать SYN ping для обнаружения живых хостов скрытным способом.

Флаг -sP также позволяет запустить сканирование без пинга, без сканирования портов.

Сканирование TCP SYN без Ping

Nmap NULL сканирование

Несмотря на отправку RST-пакета, предотвращающего регистрацию соединения, SYN-сканирование может быть обнаружено брандмауэрами и системами обнаружения вторжений (IDS). Существуют дополнительные техники для проведения более скрытного сканирования с помощью Nmap.

Nmap работает, анализируя ответы пакета от цели, сопоставляя их с правилами протокола и интерпретируя их. Nmap позволяет подделывать пакеты, чтобы генерировать правильные ответы, раскрывающие их природу, например, чтобы узнать, закрыт ли порт или фильтруется брандмауэром.

В следующем примере показано сканирование NULL, которое не включает пакеты SYN, ACK или RST.

При выполнении NULL-сканирования Nmap может интерпретировать три результата: Open|Filtered, Closed или Filtered, где:

  • Open|Filtered: Nmap не может определить, открыт ли порт или фильтруется брандмауэром.
  • Closed: Порт закрыт
  • Filtered: Порт фильтруется.

В следующем практическом примере пользователь использует флаг -sN для запуска сканирования NULL:

Nmap NULL сканирование

Как показано в следующем примере, вы можете добавить опцию -sV, чтобы узнать, действительно ли порт, обозначенный как Open|Filtered, открыт, но добавление этого флага может привести к более легкому обнаружению сканирования целью, как объясняется в книге Nmap.

  • nmap = Вызывает программу
  • -v = Указывает Nmap сканировать со всей тщательностью
  • -sN = Указание Nmap выполнить сканирование NULL
  • -sV = Определение версии
  • -p = Префикс для определения порта для сканирования.

Nmap NULL сканирование

В некоторых случаях брандмауэры блокируют SYN-пакеты. В этом случае пользователь может послать пакет с флагами SYN/ACK, чтобы обойти брандмауэры, которые не блокируют пакеты SYN/ACK.

Некоторые пакеты не блокируют пакеты SYN с ACK, а также допускают комбинацию SYN с другими заголовками, заголовок SYN/FIN является одним из них.

Следующий тип сканирования будет посылать заголовки SYN и FIN. У этого типа сканирования низкий шанс остаться необнаруженным.

sudo nmap -sS --scanflags SYNFIN 192.168.153.131 -v

Nmap Xmas Scan

Xmas scan считается техникой скрытого сканирования, анализирующей ответы на Xmas-пакеты, чтобы узнать тип удаленной системы.

Каждая операционная система или сетевое устройство отвечает на Xmas-пакеты по-разному, раскрывая информацию, такую как состояние операционной системы и порта.

Xmas - это старая техника сканирования; сегодня многие брандмауэры и системы обнаружения вторжений могут обнаружить Xmas. Не рекомендуется полагаться на них как на технику скрытного сканирования.

Nmap Xmas Scan

Сравнение между TCP SYN stealth scan и TCP "Connect Scan":

Обычное TCP-общение

  1. "Эй, ты меня слышишь? Мы можем встретиться?" (SYN-пакет, запрашивающий синхронизацию)
  2. "Привет!, я тебя вижу!, мы можем встретиться" (где "я тебя вижу" - это ACK-пакет, а "мы можем встретиться" - SYN-пакет)
  3. "Отлично!" (пакет RSTet)

Скрытая коммуникация SYN

  1. "Эй, ты меня слышишь? Мы можем встретиться?" (SYN-пакет, запрашивающий синхронизацию)
  2. "Привет!, я тебя вижу!, мы можем встретиться" (где "я тебя вижу" - это пакет ACK, "мы можем встретиться" - пакет SYN)
  3. "Извини, я отправил тебе запрос по ошибке, забудь об этом" (пакет RSTet).

Во втором примере выше показано SYN-соединение, которое не устанавливает соединение в отличие от TCP-соединения или Connect Scan. Поэтому на втором устройстве не ведется журнал о соединении, как и не регистрируется ваш IP-адрес.

Другие флаги Nmap (без стелса)

В дополнение к методам скрытного сканирования мы решили описать несколько различных флагов.

Важно уточнить, что приведенные ниже флаги не являются стелс-методами.

Флаг -O может определить целевую операционную систему, как показано на следующем снимке экрана:

Как видно на предыдущем снимке экрана, цель, вероятно, имеет Linux с ядром 2.6.x; согласно отчету, условия обнаружения были сложными.

Следующий пример пытается узнать версию программного обеспечения (-sV), прослушивающего порты. Как вы можете видеть, был обнаружен Varnish.

Флаг -oN создает файл с результатами сканирования.

В следующем примере пользователь использует флаг -oN для создания файла "results.txt" с результатами сканирования.

Вот и все о методах скрытого сканирования. Вы можете протестировать их с помощью системы обнаружения вторжений, например Snort, чтобы увидеть их эффективность перед различными правилами обнаружения.

Заключение

Как вы видите, Nmap предлагает различные техники скрытого сканирования. Все они просты в реализации, и технику легко понять, если пользователь знает основы сетевых технологий. Читатели с минимальным опытом могут воспроизвести приведенные практические примеры без особых трудностей. Настоятельно рекомендуется применять пример дополнительно к прочитанному.

Все приведенные инструкции действительны для всех дистрибутивов Linux. Спасибо, что прочитали это руководство, объясняющее, как выполнять скрытое сканирование с помощью Nmap.

Avatar for Gnostis
Gnostis
Добавить комментарий