nmap (Network Mapper) - утилита, предназначенная для сканирования IP-сетей с любым количеством объектов, определения состояния объектов сканируемой сети.
Установка Nmap в Linux
Nmap входит в стандартные дистрибутивы Linux, зачастую не самой свежей версии, но для большинства задач сканирования ее достаточно.
В Debian/Ubuntu
1 2 | apt update apt install nmap |
В CentOS 7/8 Stream
1 | yum install nmap |
Примеры использования Nmap
Сканирование системы с помощью имени хоста и IP-адреса
Инструмент Nmap предлагает различные методы сканирования системы. Возможно сканирование как с использованием имени хоста server1.example.com (для примера), чтобы выяснить все открытые порты, службы и MAC-адрес системы.
1 | nmap server1.example.com |
Либо сканирование IP адреса
1 | nmap 192.168.0.1 |
Сканирование с использованием опции "-v"
Вы можете видеть, что приведенная ниже команда с опцией "-v" дает более подробную информацию об удаленной машине.
1 | nmap 192.168.0.1 -v |
Сканирование нескольких хостов
Вы можете просканировать несколько хостов, просто записав их IP-адреса или имена хостов в Nmap.
1 | nmap 192.168.0.1 192.168.0.2 192.168.0.3 |
Сканирование всей подсети
Вы можете просканировать всю подсеть или диапазон IP-адресов с помощью Nmap, используя подстановочный знак *.
1 | nmap 192.168.0.* |
Сканирование нескольких серверов с помощью последнего октета IP-адреса
Вы можете выполнить сканирование нескольких IP-адресов, просто указав последний октет IP-адреса. Например, здесь я выполняю сканирование IP-адресов 192.168.0.1, 192.168.0.2 и 192.168.0.3.
1 | nmap 192.168.0.1,2,3 |
Сканирование списка хостов из файла
Если у вас есть больше хостов для сканирования и все данные о них записаны в файл, вы можете напрямую попросить nmap прочитать этот файл и выполнить сканирование. Давайте посмотрим, как это сделать.
Создайте текстовый файл под названием "test.txt" и укажите все IP-адреса или имена хостов сервера, который вы хотите просканировать.
1 2 3 4 | cat > test.txt localhost server1.example.com 192.168.0.1 |
Затем выполните следующую команду с опцией "iL" с командой nmap для сканирования всех перечисленных IP-адресов в файле.
1 | nmap -iL test.txt |
Сканирование диапазона IP-адресов
Вы можете указать диапазон IP-адресов при выполнении сканирования с помощью Nmap.
1 | nmap 192.168.0.1-10 |
Сканирование сети с исключением хостов
Вы можете исключить некоторые узлы при выполнении полного сканирования сети или при сканировании с использованием подстановочных знаков с помощью опции "--exclude".
1 | nmap 192.168.0.* --exclude 192.168.0.250 |
Сканирование информации об ОС
С помощью Nmap вы можете определить, какая ОС и версия запущена на удаленном хосте. Чтобы включить обнаружение ОС и версии, сканирование сценариев и трассировку, мы можем использовать опцию "-A" в NMAP.
1 | nmap -A 192.168.0.1 |
Включение обнаружения ОС в Nmap
Использование опций "-O" и "-osscan-guess" также помогает обнаружить информацию об ОС.
1 | nmap -O server1.example.com |
Сканирование хоста для обнаружения брандмауэра
Приведенная ниже команда выполнит сканирование удаленного хоста, чтобы обнаружить, используются ли на нем какие-либо пакетные фильтры или брандмауэр.
1 | nmap -sA 192.168.0.1 |
Сканирование хоста для проверки его защиты брандмауэром
Чтобы просканировать хост, если он защищен каким-либо программным обеспечением фильтрации пакетов или брандмауэром, выполните следующие действия.
1 | nmap -PN 192.168.0.1 |
Поиск живых хостов в сети
С помощью опции "-sP" мы можем просто проверить, какие хосты живы и работают в сети, с этой опцией nmap пропускает определение портов и другие вещи.
1 | nmap -sP 192.168.0.* |
Выполните быстрое сканирование
Вы можете выполнить быстрое сканирование с опцией "-F", которая сканирует порты, перечисленные в файлах nmap-services, и оставляет все остальные порты.
1 | nmap -F 192.168.0.1 |
Узнать версию Nmap
Вы можете узнать версию Nmap, запущенную на вашей машине, с помощью опции "-V".
1 | nmap -V |
Последовательное сканирование портов
Используйте флаг "-r", чтобы не делать рандомизацию.
1 | nmap -r 192.168.0.1 |
Вывод интерфейсов хостов и маршрутов
Вы можете узнать информацию об интерфейсах хостов и маршрутах локальной машины с помощью nmap, используя опцию "-iflist".
1 | nmap --iflist |
Сканирование определенного порта
Существуют различные варианты обнаружения портов на удаленной машине с помощью Nmap. Вы можете указать порт, который вы хотите, чтобы nmap сканировал с помощью опции "-p", по умолчанию nmap сканирует только TCP порты.
1 | nmap -p 80 server1.example.com |
Сканирование TCP портов
Вы также можете указать nmap конкретные типы и номера портов для сканирования.
1 | nmap -p T:8080,80 server1.example.com |
Сканирование UDP-порта
1 | nmap -p 53 -sU server1.example.com |
Сканирование нескольких портов
Вы также можете сканировать несколько портов, используя опцию "-p".
1 | nmap -p 80,443 192.168.0.1 |
Сканирование диапазона портов
Вы можете сканировать порты по диапазонам с помощью выражений.
1 | nmap -p 80-161 192.168.0.1 |
Поиск номеров версий служб
С помощью опции "-sV" можно узнать версии сервисов, которые запущены на удаленных хостах.
1 | nmap -sV 192.168.0.1 |
Сканирование удаленных узлов с помощью TCP ACK (PA) и TCP Syn (PS)
Иногда брандмауэры с фильтрацией пакетов блокируют стандартные ICMP ping запросы, в этом случае мы можем использовать методы TCP ACK и TCP Syn для сканирования удаленных узлов.
1 | nmap -PS 192.168.0.1 |
Сканирование удаленного хоста на наличие определенных портов с TCP ACK
1 | nmap -PA -p 22,80 192.168.0.1 |
Сканирование удаленного хоста на наличие определенных портов с помощью TCP Syn
1 | nmap -PS -p 22,80 192.168.0.1 |
Выполнить скрытое сканирование
1 | nmap -sS 192.168.0.1 |
Проверить наиболее часто используемые порты с помощью TCP Syn
1 | nmap -sT 192.168.0.1 |
Выполните нулевое сканирование tcp, чтобы обмануть брандмауэр
1 | nmap -sN 192.168.0.1 |