Баннер мобильный (3) Пройти тест

Nmap: 20 частых команд и что означают их результаты

Разбираемся, как узнать больше об устройствах в сети

Инструкция

13 мая 2026

Поделиться

Скопировано
Nmap: 20 частых команд и что означают их результаты

Содержание

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

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

    Что такое Nmap и зачем он нужен

    Nmap означает Network Mapper — «составитель карт для сетей». Это сканер, который собирает информацию о сети: какие хосты в ней есть, какие порты открыты и какие сервисы за ними стоят. А еще он позволяет находить уязвимости. С помощью Nmap специалист разведывает, как устроена сеть и где ее слабые места.

    Разные специалисты используют Nmap для своих целей. Например:

    • DevOps и системные администраторы проверяют, доступны ли те или иные сервисы, корректно ли настроена инфраструктура сети.
    • Пентестеры и специалисты по информационной безопасности ищут уязвимости, чтобы оценить, насколько защищена сеть.
    • Начинающие специалисты смотрят, как устроены сети на практике, чтобы в будущем увереннее с ними работать.
    Nmap
    Логотип Nmap Источник

    Как установить

    Nmap бесплатный и кроссплатформенный — он существует для всех популярных операционных систем. Чаще всего им пользуются с Linux: для сетевых администраторов и инфобез-специалистов это основная ОС.

    • В Linux установку Nmap обычно проводят через консоль с помощью пакетного менеджера. Например, в Debian и Ubuntu понадобится команда sudo apt install nmap. Можно добавить флаг -y — он автоматически отвечает yes на все вопросы, которые менеджер задаст об установке.
    • В macOS есть свой пакетный менеджер — Homebrew. Его устанавливают отдельно и заранее. Но с его помощью установить Nmap можно так же в одну строчку в консоли: sudo brew install nmap.
    • В Windows Nmap можно установить без консоли — скачивают установщик с официального сайта и запускают его.

    После установки можно зайти в консоль и вызвать команду nmap -V. Утилита покажет, какая ее версия сейчас установлена на компьютере. Если всё хорошо, можно начинать работу с Nmap.

    Иногда утилита уже есть в базовом наборе программ операционной системы. Например, в Kali Linux Nmap установлен по умолчанию. Всё потому, что Kali — дистрибутив, предназначенный для пентеста. В него «из коробки» включены основные пентестерские инструменты.

    Начинаем сканирование сети

    Строго говоря, команда у утилиты только одна — nmap. Но ее можно дополнять различными флагами и настройками. Например, выбирать метод сканирования или настраивать его агрессивность. Флаги можно комбинировать: запускать команды с несколькими параметрами одновременно. Чаще всего так и делают.

    Пока что разберемся, как пользоваться Nmap в целом. А именно — рассмотрим простейшие варианты команды.

    Все команды nmap в Linux и macOS лучше начинать с ключевого слова sudo. Оно запускает утилиту с правами суперпользователя. Без этих прав возможности Nmap будут серьезно ограничены, и просканировать сеть как следует не получится.

    1. nmap <IP-адрес хоста>

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

    Например, команда для сканирования конкретного хоста может выглядеть так:

    sudo nmap 192.168.1.1

    Или так, если вы не знаете конкретный хост либо хотите проверить сразу все хосты внутри сети:

    sudo nmap 192.168.1.*

    Результатом будет список портов и перечисление их статусов:

    • closed — порты закрыты и не используются. Их обычно не перечисляют поименно, а пишут «столько-то портов закрыто»;
    • open — порты открыты и к ним есть доступ;
    • filtered — доступ к портам заблокирован, например файрволом;
    • unfiltered — Nmap не может определить, открыт порт или закрыт.

    Еще Nmap показывает, работает ли хост вообще и какой у него MAC-адрес. А для каждого открытого порта отображает параметр service — что за сервис используется на этом порте.

    2. nmap <доменное имя хоста>

    То же самое, только вместо IP-адреса используется текстовый адрес. Разработчики Nmap даже создали для тестов специальный хост — scanme.nmap.org. Можно использовать именно его.

    sudo nmap scanme.nmap.org

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

    3. nmap -sn <перечень хостов>

    Представим, что в одной сети есть несколько устройств — хостов. Нужно проверить, какие из них активны: включены и отвечают. При этом смотреть на сами порты пока не обязательно. Именно это и проверяет команда Nmap. Она отправляет только ping-запрос и проверяет, ответит ли на него хост.

    Диапазон хостов можно задать по-разному:

    sudo nmap -sn 192.168.1.*
    sudo nmap -sn 192.168.1.1/24

    В первом случае Nmap проверит все хосты в сети 192.168.1, во втором — хосты с 1 по 24. Цифры могут быть и другими. Суть в том, что вы получите список хостов со статусом: работает это устройство или нет.

    В некоторых материалах можно встретить другое наименование флага — -sP. Это старое название того же самого параметра. Разработчики переименовали флаг -sP в -sn еще в 2009 году, но предыдущее название -sP поддерживается до сих пор. Так что, если вы напишете nmap -sP — команда всё равно сработает.

    4. nmap -p <порт или диапазон>

    Флаг Nmap -p позволяет проверить конкретные порты — один или несколько. Номера портов ставятся после этого флага. Например, так:

    sudo nmap -p 21 192.168.1.1 

    Это означает, что мы хотим проверить только порт номер 21. А вот вариант, где проверяется целый диапазон портов с 1 по 30:

    sudo nmap 192.168.1.1 -p1-30

    В конец команды можно добавить опцию --open. Она говорит Nmap, чтобы в результате отображались только открытые порты. Например, так можно быстро проверить, какие из портов с 1 по 30 открыты и могут обмениваться данными.

    Уточняем область и метод поиска

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

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

    5. nmap -F <адрес / домен>

    Ключ Nmap -F говорит, что мы сканируем не все порты, а только самые распространенные — те, что используются чаще всего. 

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

    Еще один плюс — проверка с флагом -F обычно более быстрая, чем стандартная. Правда, информацию она может давать неполную, но для первичной оценки сети этого хватит.

    6. nmap -T <уровень> <адрес / домен>

    Этот параметр настраивает баланс между скоростью и заметностью сканирования. Уровень после T — цифра от 0 до 5. Чем она меньше, тем реже Nmap отправляет запросы и тем менее заметно сканирование. И наоборот: чем больше цифра, тем чаще запросы. Информации больше, но и сервер быстро обнаружит слежку.

    Например, запрос может выглядеть так:

    sudo nmap -T4 192.168.1.1

    По умолчанию параметр T равен 3. Это среднее значение, но иногда бывает нужно более осторожное или, наоборот, агрессивное сканирование.

    7. nmap -sS <адрес / домен>

    Когда Nmap сканирует порты, он устанавливает с ними соединение. Этот процесс начинается с отправки SYN — пакета, который запрашивает подключение. SYN как бы говорит порту, что кто-то хочет с ним соединиться. После этого порт, если он доступен, устанавливает соединение по протоколу TCP.

    Параметр -sS говорит, что Nmap не должен завершать подключение по TCP. Он должен отправить SYN и получить ответ, но не устанавливать полноценное соединение. Это делает слежку менее заметной — так что по умолчанию команды используют именно SYN-сканирование.

    8. nmap -sT <адрес / домен>

    Это параметр, обратный предыдущему, — он устанавливает полное TCP-соединение. В Nmap-командах, запущенных без прав суперпользователя, используется именно он. Этот метод сканирования дает много информации, но у него есть нюансы:

    • TCP-соединение очень заметно — защитные системы хоста сразу поймут, что его сканируют;
    • информация о подключении отразится в логах хоста, и это увидят его администраторы.

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

    9. nmap -sU <адрес / домен>

    TCP — не единственный протокол, с помощью которого клиенты подключаются к хосту. Есть еще протокол UDP: он действует по другому принципу и не проверяет, точно ли пакеты дошли до получателя. Параметр Nmap -sU как раз отправляет запрос по протоколу UDP.

    Использование UDP менее надежно, чем TCP: проверки получения нет, и результаты могут потеряться. Зато этот режим помогает быстро найти порты, которые работают по протоколу UDP.

    10. nmap -Pn <адрес / домен>

    Перед тем как установить соединение, Nmap отправляет ping-запрос — проверяет доступность хоста. Если реакции нет, считается, что он недоступен. Но флаг -Pn позволяет проигнорировать ping-проверку — продолжить рассылать запросы, даже если хост не отвечает.

    Такой подход бывает полезен, если хост настроен так, чтобы намеренно не отвечать на пинги. Например, там отключен протокол ICMP, по которому проходят ping-запросы. Устройство может быть включено — но пинг проходить не будет:

    • Если попытаться просканировать такой хост обычной командой nmap, та не получит реакцию на ping и решит, что хост недоступен. Информации о нём специалист не получит.
    • Если же использовать параметр -Pn, проверка пойдет дальше, несмотря на отсутствие пинга. Специалист увидит: хоть хост не пингуется, он включен и работает.

    Узнаем больше об устройствах

    Базовое сканирование портов с Nmap показывает, что именно работает внутри сети. Следующий этап — узнать подробности о сервисах и ПО, которые запущены на хостах. Сканирование позволяет выяснить и это. Например, какие версии сервисов используются в сети и какая операционная система установлена на серверах.

    Итоги проверки не всегда точны на 100% — Nmap сам называет их предположениями. Но даже примерные результаты могут быть полезны при исследовании сети, в том числе для поиска уязвимостей.

    11. nmap -sV <адрес / домен>

    Флаг -sV помогает выяснить, какие сервисы установлены на хосте. Причем определяется не только имя, но и версия сервиса. Обычная проверка так не умеет. Например, она может показать, что порт 80 открыт и использует протокол TCP: 80/tcp open. А вот что за сервис стоит за этим TCP — уже не подскажет.

    Если же запустить Nmap с флагом -sV, вместо простого 80/tcp open вы получите что-то вроде:

    80/tcp open  http  Apache httpd 2.4.41

    Этот ответ означает, что на порте 80 работает веб-сервер Apache версии 2.4.41. С такой информацией можно идти дальше. Например, посмотреть, какие уязвимости встречаются в веб-серверах этой версии.

    12. nmap -O <адрес / домен>

    Флаг похож на предыдущий, только определяет не сервисы, а операционную систему хоста. Вообще, при использовании -sV утилита тоже выводит предположения по ОС. Но с -O анализ полнее: Nmap пытается определить точную версию ядра системы.

    Узнать версию ОС со стопроцентной гарантией не получится. Nmap только предполагает ее на основе поведения системы. Но даже примерное знание уже полезно.  

    13. nmap -traceroute <адрес / домен>

    Чтобы лучше понимать внутреннее устройство сети, полезно посмотреть промежуточные узлы — роутеры, через которые проходили данные на пути к хосту. То есть, провести трассировку маршрута, по которому пакеты идут к цели. Для этого в Nmap есть параметр —traceroute.

    Трассировку используют для определения топологии сети. А еще часто применяют вместе с NSE-скриптами — о них мы расскажем чуть позже.

    14. nmap -A <адрес / домен>

    Параметр -A включает агрессивный режим сканирования. В этом режиме Nmap выясняет ОС и ее версию, установленные сервисы, выполняет трассировку и запускает NSE-скрипты для сбора данных. Фактически это то же самое, что одновременное использование -O, -sV, —traceroute и скриптов.

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

    Записываем результаты

    По умолчанию Nmap получает команды и адреса из консоли. Туда же он выводит результаты исследования. Но в реальных задачах редко сканируют один IP — чаще это список адресов или целая сеть.

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

    15. nmap -iL <текстовый файл с целями>

    После флага -iL указывается не адрес хоста, а путь к текстовому файлу. Внутри файла специалист перечисляет IP-адреса или доменные имена нескольких целей. А Nmap получает файл и последовательно проходит по каждому из перечисленных адресов.

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

    16. nmap -oN <текстовый файл> <адрес / домен>

    Это обратная команда: Nmap не берет из файла исходные данные, а записывает в него результаты. Например, так:

    sudo nmap -oN result.txt 192.168.1.1

    Команда означает, что Nmap проверяет цель по адресу 192.168.1.1, а затем записывает все результаты проверки в файл result.txt. Он может называться и иначе — тут всё зависит от вашего желания.

    По умолчанию содержимое файла с результатами перезаписывается. Если в условном result.txt уже был какой-то текст, он удалится и заменится на результаты сканирования. Чтобы избежать перезаписи, можно добавить к команде опцию —append-output. Она говорит не стирать прошлый текст, а дописать новые данные в его конец.

    17. nmap -oX <XML-файл> <адрес / домен>

    То же самое, что и прошлая команда, только вместо текстового файла используется табличный формат XML. Такой формат легче читается программами и скриптами. Если вывод в текстовый файл удобнее для ручного анализа, то вывод в XML — для автоматической обработки результатов.

    Запускаем скрипты

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

    В Nmap встроена система скриптов под названием Nmap Scripting Engine (NSE). Она позволяет автоматически выполнять дополнительные проверки: от сбора информации до поиска известных уязвимостей. Разбираемся, какие скрипты пригодятся на старте.

    Набор базовых скриптов уже входит в сборку Nmap, но специалисты могут писать и собственные. Для этого нужно знать язык Lua. В разработке скриптов поможет библиотека nselib от разработчиков Nmap — там есть множество команд для работы с сетью.

    18.  nmap -sC <адрес / домен>

    Флаг -sC запускает набор скриптов по умолчанию. Туда входит, например:

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

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

    Вторая версия той же команды — nmap -script=default <адрес / домен>. Разница в том, что с помощью флага -script можно запустить любые скрипты, не только по умолчанию. Как это работает — покажем на примере следующей команды.

    19. nmap -script=http-title <адрес / домен>

    После флага -script через знак = пишется название скрипта или его тип. Это как раз такой случай: запуск стандартного скрипта http-title. Он отправляет к нужному хосту HTTP-запрос. А затем получает ответ — веб-страницу — и извлекает оттуда заголовок. 

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

    • Title: pfSense — Login — вы нашли веб-интерфейс файрвола pfSense;
    • Title: Admin Panel — по этому адресу находится вход в админку сайта;
    • Title: IP Camera Office 1 — вы наткнулись на интерфейс офисной видеокамеры, и так далее.

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

    20. nmap -script=vuln <адрес / домен>

    Стандартные скрипты Nmap разделены на категории: поиск уязвимостей, подбор паролей и так далее. Можно задать после слова script одну из категорий — и тогда запустятся все скрипты, которые к ней относятся.

    Конкретно -script=vuln означает, что Nmap запустит все скрипты, связанные с поиском уязвимостей. Некоторые из них дефолтные, другие — более углубленные. Так можно собрать информацию о слабых местах в безопасности сети.

    Конечно, проверка с помощью стандартных скриптов не всегда дает полные сведения о сети. Хосты и порты могут быть защищены файрволами и фильтрами, которые искажают результаты проверки. Но такое исследование — первый шаг. Затем можно идти вглубь и использовать уже более глубокие и сложные методы.

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

    Nmap — краткие выводы

    • Nmap — программа для сканирования сети. С ее помощью можно узнать, какие устройства есть в сети, какие порты на них открыты и какие сервисы установлены.
    • Nmap пользуются системные администраторы, DevOps-инженеры, но чаще всего — пентестеры и специалисты по информационной безопасности. Они проверяют сеть на наличие уязвимостей.
    • В Nmap существует множество флагов, которые гибко настраивают сканирование: его точность, подробность, скрытность. Их можно использовать по отдельности или в сочетании друг с другом.
    • Скрипты Nmap позволяют проводить углубленную проверку, например искать частые уязвимости или собирать подробную информацию о сервисах.

    Инструкция

    Поделиться

    Скопировано
    0 комментариев
    Комментарии