ЛУЧШИЙ САЙТ ДЛЯ ВЕБ-РАЗРАБОТЧИКОВ
Кибербезопасность. Уроки для начинающих

Кибербезопасность. Сетевое сопоставление & Сканирование портов


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

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


Nmap (Network Mapper) - Сетевой картограф (обнаружитель)

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


Сетевое сопоставление (обнаружение)

Один из способов идентифицировать хосты, которые активны в сети, - это отправить эхо-запрос, то есть ICMP Echo Request, на все IP-адреса в сети. Это часто называется проверкой связи.

Ping Sweep

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

Лучший подход предполагает отправку в систему различных типов пакетов, чтобы попытаться запросить какой-либо ответ, чтобы определить, жива система или нет. Например, Nmap отправит системе следующие пакеты, чтобы попытаться вызвать ответ:

  • ICMP Эхо-запрос
  • TCP SYN пакет в порт 443
  • TCP ACK пакет в порт 80
  • ICMP Запрос отметки времени

Основываясь на спецификациях TCP, то есть правилах связи, система всегда должна выполнять трехстороннее рукопожатие перед началом связи. Кажется, что Nmap намеренно нарушает правила с указанными выше пакетами. Можете ли вы определить, какой пакет ведёт себя не так, как ожидает система?

Отправка пакета TCP ACK на порт 80 не соответствует правилам стандарта TCP. Nmap делает это специально, чтобы попытаться заставить целевую систему дать ответ. Чтобы отправлять пакеты, не соответствующие правилам, Nmap должен работать с наивысшим уровнем привилегий, например, root или локальный администратор. Из-за этого большинство сканеров портов будут более точными.

Отключить сетевое сопоставление можно с помощью Nmap с флажком -Pn. Теперь Nmap будет считать, что все IP/системы включены, и перейдет непосредственно к сканированию портов.

Попробуйте это дома прямо сейчас, если хотите. Будьте осторожны, если вы работаете в корпоративной среде, всегда получайте разрешение, прежде чем запускать сканеры, поскольку вы не хотите нарушать какие-либо правила своего рабочего места. Чтобы попробовать Nmap сейчас, выполните следующие простые шаги:

  • Загрузите Nmap со страницы https://nmap.org. Убедитесь, что вы загрузили версию, соответствующую вашей операционной системе.
  • Установите Nmap и запустите инструмент из терминала командной строки.
  • Найдите свой локальный IP-адрес и подсеть.
  • Запустите Nmap, чтобы просмотреть, какие системы он может обнаружить: nmap -vv IP/netmask

Мы добавляем два флажка -v, чтобы сообщить Nmap, что нам нужен подробный вывод, что делает просмотр более интересным для просмотра, пока он завершается.

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


ARP Сканирование

Протокол ARP содержится в локальной сети, но если узлы, которые вам нужно обнаружить, находятся в локальной сети, мы могли бы использовать этот протокол, чтобы попытаться выявить системы в сети. Просто перебирая все доступные IP-адреса в сети LAN с помощью протокола ARP, мы пытаемся заставить системы отвечать.

Сканирование выглядит так:

Eve: Please Provide Mac Address of system 192.168.0.1
Eve: Please Provide Mac Address of system 192.168.0.2
Eve: Please Provide Mac Address of system 192.168.0.3
Eve: Please Provide Mac Address of system 192.168.0.4
Eve: Please Provide Mac Address of system 192.168.0.5-254
Default Gateway: 192.168.0.1 is me and my MAC Address is AA:BB:CC:12:34:56
Bob: 192.168.0.3 is me and my MAC Address is: BB:CC:DD:12:34:56
Alice: 192.168.0.4 is me and my MAC Address is: CC:DD:EE:12:34:56
Примечание: Сканирование ARP - это простой и эффективный способ поиска хостов в локальной сети, но не за ее пределами.

Сканирование портов

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

Злоумышленникам интересно знать, какие приложения прослушивают сеть. Эти приложения представляют возможности для злоумышленников. Могут быть уязвимости, позволяющие им успешно атаковать организацию.

Сканирование портов работает путем отправки пакетов в приложение и поиска любых ответов. Это исключительно просто для TCP, так как если служба TCP доступна, она всегда будет отвечать пакетом SYN/ACK. Однако для UDP это сложнее. Чтобы определить, доступна услуга или нет, в большинстве случаев злоумышленник должен отправить определенный ввод, который заставляет приложение ответить. Большинство приложений, размещенных в UDP, не будут отвечать, если клиенты не отправят в точности входные данные, необходимые для взаимодействия.


Сканирование TCP-порта

TCP - это простой протокол для сканирования, потому что стандарт TCP требует, чтобы системы отвечали SYN/ACK при получении SYN. Мы можем отправить SYN-пакет на все 65536 портов и записать все возвращаемые SYN/ACK и завершить открытие портов на основе ответа SYN/ACK. Если ответ не получен, мы можем предположить, что порт закрыт или отфильтрован, например, файерволом.

TPC сканирование

С помощью SYN/ACK на порту 445 мы определили, что порт открыт.


Сканирование UDP-портов

С UDP сложнее определить, работает порт или нет. Для портов UDP сканер не может полагаться на SYN/ACK. Фактически, сканер почти всегда должен полагаться на то, чтобы служба прослушивания вызывала какой-то ответ.

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

Рассмотрим следующий разговор, в котором Ева пытается выяснить, открыт ли порт UDP:

UDP сканирование

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

Из-за этого сканирование UDP может занять очень много времени, если мы хотим сканировать все порты.


Полезные типы и параметры сканирования Nmap

Существует множество сканеров, однако в этом разделе мы сосредоточимся на том, как использовать Nmap в полной мере.

Nmap можно указать сканировать наиболее распространенные порты с аргументом --top-ports.

nmap --top-ports 100 <target>

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

nmap -sV <target>

Nmap имеет множество встроенных скриптов, предназначенных для работы с конкретной службой и взаимодействия с ней. Скрипты могут делать самые разные вещи, например извлекать информацию из службы или пытаться использовать её. Мы можем включить сканер скриптов с флажком -sC. Это позволяет выполнять только безопасные проверки, так как не допускает отказов в обслуживании или попыток эксплуатации.

nmap -sC <target>

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

nmap -O <target>

Агрессивный режим Nmap позволяет использовать сразу несколько флажков. Сканер выполнит определение версии и ОС, включит сканер скриптов и просканирует 1000 самых распространенных портов. Его можно включить с параметром -A.

nmap -A <target>

Nmap также может сканировать IPv6 по всем указанным выше флажкам. Он включается добавлением флажка -6.

nmap -6 <target>
Примечание: Лучший способ понять - это практиковаться и получить опыт. Скачайте Nmap и попробуйте разные варианты сканирования систем в вашей собственной среде!

Параметры времени Nmap

Сканирование можно производить с разной скоростью. Более низкие скорости имеют меньшую вероятность быть обнаруженными системами IDS, в то время как быстрое сканирование может привести к перегрузке системы. Nmap поддерживает следующие параметры:

  • T0 - Paranoid (Параноик). Этот вариант предназначен для злоумышленников, которые не хотят быть обнаруженными. Системы IDS могут сопоставлять несколько запросов в течение определенного промежутка времени. Параноидальный вариант попытается обойти это, посылая очень мало пакетов в секунду.
  • T1 - Sneaky (Подлый). Быстрее, но разработан для обхода систем IDS.
  • T2 - Polite (Вежливый). Медленное сканирование делает все возможное, чтобы не вывести систему из строя.
  • T3 - Normal (Обычный). Это просто по умолчанию.
  • T4 - Aggressive (Агрессивный). Быстрое сканирование, которое быстро даёт результаты. Большинство систем могут справиться с этим.
  • T5 - Insane (Безумный). Отправляем на полную мощность и производительность.

Zenmap - Карта Дзен

Nmap имеет встроенный графический интерфейс - GUI ("Graphical User Interface" - "Графический интерфейс пользователя"), а также другие инструменты. Графический интерфейс пользователя может быть полезен для визуализации сетей и просмотра открытых портов на разных хостах. Графический интерфейс выглядит так:

Карта Дзен