Команды Nmap Объяснены: Полное Руководство (2026)
В этом подробном руководстве мы объясним, что такое Nmap, зачем он используется, как его установить, и пройдемся по самым важным командам Nmap, которые должен знать каждый сетевой администратор и специалист по безопасности.
От базового обнаружения хостов и сканирования портов до выявления служб, определения операционной системы, управления временем и мощного движка скриптов Nmap (NSE), это практическое руководство по Nmap охватывает каждую команду с примерами и реальными сценариями использования.
В конце вы начнете сканировать сети уверенно и ответственно с помощью Nmap.
1. Что такое Nmap?
Nmap (сокращение от Network Mapper) — это бесплатный, открытый инструмент для сканирования сети. Гордон Лайон, более известный под своим интернет-псевдонимом Фёдор, создал его в 1997 году. Сегодня это один из самых широко используемых инструментов в области сетевой безопасности, системного администрирования и образования в сфере кибербезопасности по всему миру.
Проще говоря, Nmap отправляет сетевые пакеты на целевой объект и слушает ответы. Из этих ответов он определяет:
- Какие устройства в сети (обнаружение хоста)
- Какие порты открыты или фильтруются
- Какие сервисы запущены и какие версии они используют
- Какая операционная система используется на целевой системе
- Фильтрует ли фаервол трафик
Кроме того, встроенный скриптовый движок Nmap (NSE) позволяет запускать сотни заранее подготовленных скриптов на Lua для автоматизации таких задач, как выявление уязвимостей, сбор баннеров и перечисление служб.
Nmap работает на Linux, macOS и Windows и доступен для бесплатной загрузки на nmap.org.
Связанные инструменты: Nmap часто используется вместе с Wireshark (анализ пакетов), Metasploit (фреймворк для эксплуатации) и Netcat (сетевая утилита).
Какие существуют команды Nmap?
Команды Nmap — это инструкции командной строки для инструмента сетевого сканирования Nmap. Они позволяют обнаруживать активные узлы, находить открытые порты, определять версии служб, идентифицировать операционные системы и запускать скрипты безопасности в сети.
Распространенные команды Nmap включают nmap -sn (обнаружение хоста), nmap -sS (TCP SYN сканирование), nmap -sV (определение версии), nmap -O (определение ОС) и nmap -A (агрессивное сканирование).
2. Почему использовать Nmap?
Nmap работает в самых разных реальных задачах. Вот наиболее распространённые причины, по которым профессионалы и студенты обращаются к нему:
| Сценарий использования | Кто это использует | Что делает Nmap |
|---|---|---|
| Инвентаризация сети | Системные администраторы | Автоматически отображает все устройства в сети |
| Аудит безопасности | Тестировщики на проникновение | Находит открытые сервисы раньше злоумышленников |
| Тестирование правил брандмауэра | Инженеры по безопасности | Проверяет, какие порты действительно блокирует брандмауэр |
| Сканирование уязвимостей | Аналитики по безопасности | Запускает скрипты NSE для выявления известных уязвимостей |
| Устранение неполадок | ИТ поддержка | Проверяет, открыт ли порт сервиса или закрыт |
| Изучение TCP/IP | Студенты | Показывает, как ведут себя реальные сетевые протоколы |
| Проверки на соответствие | Аудиторы | Подтверждает, что открыты только утверждённые порты и службы |
3. Как установить Nmap
Прежде чем выполнять любые команды Nmap, вам нужно установить его. Процесс занимает менее минуты на любой платформе.
Установите nmap в Arch Linux и его вариантах, таких как EndeavourOS и Manjaro Linux:
sudo pacman -S nmapУстановите nmap на Debian, Ubuntu Linux:
sudo apt update && sudo apt install nmap -yУстановить на Fedora/RHEL/CentOS/AlmaLinux/Rocky Linux:
sudo dnf install nmap -yПосле установки проверьте установку nmap с помощью команды:
nmap --versionПример вывода:
Nmap version 7.99 ( https://nmap.org )
Platform: x86_64-pc-linux-gnu
Compiled with: liblua-5.4.8 openssl-3.6.3 libssh2-1.11.1 libz-1.3.2 libpcre2-10.47 libpcap-1.10.6 nmap-libdnet-1.18.0 ipv6
Compiled without:
Available nsock engines: epoll poll selectТеперь пора начинать с Nmap. Давайте начнем с основ и постепенно перейдем к более сложным темам.
4. Как запустить ваше первое сканирование Nmap
Шаг 1: Откройте ваш терминал
На Linux или macOS откройте терминал. На Windows откройте Командную строку или PowerShell от имени администратора.
Шаг 2: Найдите диапазон вашей сети
ip a # Linux -- find your IP and subnet
ifconfig # macOS
ipconfig # WindowsВаша локальная сеть обычно выглядит как 192.168.1.0/24.
Шаг 3: Обнаружение активных хостов
nmap -sn 192.168.1.0/24Эта команда находит все устройства в вашей сети без сканирования портов.
Пример вывода:
Starting Nmap 7.99 ( https://nmap.org ) at 2026-06-23 17:05 +0530
Nmap scan report for 192.168.1.100
Host is up (0.000099s latency).
Nmap scan report for 192.168.1.101
Host is up (0.00075s latency).
Nmap done: 256 IP addresses (2 hosts up) scanned in 8.94 secondsШаг 4: Сканирование конкретного хоста
nmap -sV 192.168.1.100Эта команда сканирует цель и определяет работающие службы и их версии.
Пример вывода:
Starting Nmap 7.99 ( https://nmap.org ) at 2026-06-23 17:10 +0530
Nmap scan report for 192.168.1.100
Host is up (0.000069s latency).
Not shown: 999 closed tcp ports (conn-refused)
PORT STATE SERVICE VERSION
22/tcp open ssh OpenSSH 10.3 (protocol 2.0)
Service detection performed. Please report any incorrect results at https://nmap.org/submit/ .
Nmap done: 1 IP address (1 host up) scanned in 0.69 secondsЭто ваше первое сканирование Nmap. Отсюда вы можете добавить больше флагов для более подробных результатов, что остальная часть этого руководства рассматривает в полном объеме.
5. Обнаружение хостов: Поиск активных устройств в сети
Примечание: Некоторые команды nmap, приведённые ниже, требуют прав root или sudo. Если вы запустите их как обычный пользователь, вы увидите вывод, подобный приведённому ниже:
You requested a scan type which requires root privileges.
QUITTING!Прежде чем сканировать порты, обычно вы хотите знать, какие устройства действительно в сети. Этап обнаружения хостов в Nmap выполняет это быстро, не проводя полного сканирования портов.
Важное примечание: -sP устарел. Всегда используйте -sn вместо него.
Некоторые старые шпаргалки и устаревшие руководства по-прежнему указывают nmap -sP как правильную команду для пинг-сканирования. Это больше не соответствует действительности. Флаг -sP был устаревшим, когда Nmap представил его замену, -sn.
Хотя -sP по-прежнему работает в текущих версиях Nmap как устаревший псевдоним, оно выдаёт предупреждение об устаревании и со временем будет полностью удалено.
Правильный, текущий флаг — nmap -sn. Оба флага делают одно и то же, но -sn — это тот, который вам следует использовать всегда в будущем.
nmap -sn: Пинг-сканирование (обнаружение хостов без сканирования портов)
Флаг -sn определяет, какие хосты активны, а затем останавливается. Сканирование портов не выполняется. По умолчанию он использует четыре типа запросов: ICMP echo request, TCP SYN на порт 443, TCP ACK на порт 80 и ICMP timestamp request.
Требуются права root: Запуск с правами root дает наиболее точные результаты. Без root -sn использует простую проверку соединения TCP только на порты 80 и 443.
# Basic host discovery on a /24 subnet
nmap -sn 192.168.1.0/24
# Save live hosts to a file for follow-up scanning
nmap -sn 192.168.1.0/24 -oG - | grep "Up" | awk '{print $2}' > live_hosts.txt6. Объяснение распространённых типов сканирования Nmap
Как только вы узнаете, какие хосты активны, следующим шагом является проверка их портов. Каждый тип сканирования использует различную технику TCP/IP, поэтому каждый из них лучше работает в разных ситуациях. Вот ясное изложение самых распространенных из них.
nmap -sS: TCP SYN сканирование (скрытое сканирование)
TCP SYN сканирование является типом сканирования по умолчанию при запуске Nmap от имени root и самым широко используемым сканированием в целом. Nmap отправляет SYN-пакет и ждёт ответа:
- Ответ SYN-ACK - порт открыт
- Ответ RST - порт закрыт
- Нет ответа/ICMP недостижимо - порт фильтруется
Поскольку Nmap отправляет RST после получения SYN-ACK, никогда полностью не завершая полный рукопожатие, этот скан оставляет меньше следов в логах, чем сканирование с полным соединением. Вот почему его часто называют «скрытым сканированием» или «половинчатым сканированием».
nmap -sS 192.168.1.100 # Requires root
nmap -sS -p 22,80,443 192.168.1.10 # SYN scan on specific ports onlynmap -sT: TCP Connect сканирование (полное рукопожатие)
Сканирование TCP Connect является по умолчанию при запуске без прав root. Оно завершает полный трехсторонний TCP рукопожатие с использованием стандартного системного вызова ОС connect(). Оно более надежное, чем -sS, но медленнее и с большей вероятностью отразится в логах сервера.
nmap -sT 192.168.1.100 # Works without root privilegesnmap -sU: UDP-сканирование
Многие критически важные службы работают по UDP, а не по TCP, включая DNS (порт 53), DHCP (порты 67-68), SNMP (порт 161) и NTP (порт 123). Флаг -sU сканирует их. Поскольку UDP не устанавливает соединение, сканирование его происходит значительно медленнее, чем TCP. Комбинирование -sU с --top-ports существенно ускоряет процесс.
nmap -sU 192.168.1.100 # Full UDP scan (slow). Requires root
nmap -sU --top-ports 20 192.168.1.100 # Faster: scans top 20 UDP ports only7. Определение версии Nmap и идентификация операционной системы
Знание того, что порт открыт, полезно. Однако знание точно, что работает на этом порту и какая версия, гораздо мощнее. Эти флаги дают вам этот дополнительный уровень детализации.
nmap -sV: Обнаружение сервисов и версий
С -sV Nmap проверяет каждый открытый порт и определяет имя сервиса и его точный номер версии. Например, вместо «порт 22 открыт» вы получите «OpenSSH 8.9p1 Ubuntu». Это полезно для:
- Аудит безопасности - выявление устаревшего или программного обеспечения с истёкшим сроком службы
- Корреляция уязвимостей - сопоставление версий сервисов с базами данных CVE
- Управление инвентаризацией - проверка, что услуги работают на ожидаемых версиях
- Обнаружение нестандартного порта -
-sVидентифицирует сервис даже если он работает на неожиданном порту
nmap -sV 192.168.1.100
nmap -sV --version-intensity 5 192.168.1.100 # More thorough probing (scale: 0-9)nmap -O: Определение ОС (OS Fingerprinting)
Nmap анализирует тонкие различия в том, как TCP/IP стек хоста реагирует, и сопоставляет эти шаблоны с большой базой известных отпечатков ОС. Результатом является наиболее вероятное предположение о операционной системе и версии целевого устройства.
Наличие хотя бы одного открытого порта и одного закрытого порта на целевом устройстве помогает Nmap дать наиболее точное определение ОС. Без обоих результаты могут быть менее надежными, но определение ОС все равно попытается найти совпадение. Требуются права root или администратора.
nmap -O 192.168.1.100
nmap -O --osscan-guess 192.168.1.100 # Shows best guess even with low confidencenmap -A: Агрессивное сканирование (Все-в-одном обнаружение)
Флаг -A выполняет четыре операции одновременно:
- Обнаружение ОС (
-O) - Обнаружение сервиса и версии (
-sV) - Сканирование скриптов NSE по умолчанию (
-sC) - Трассировка маршрута
Это опция «дай мне всё». Она даёт наибольшее количество деталей, но также требует больше времени и создаёт больший сетевой трафик. По этой причине используйте её только тогда, когда хотите получить полную картину и имеете явное разрешение на сканирование цели.
nmap -A 192.168.1.100
nmap -A -T4 192.168.1.100 # Aggressive scan at fast timingСовет: Для целенаправленной работы комбинируйте -sV -O вместо -A, когда вам нужна информация о версии и ОС без полной нагрузки скриптов.
8. Шаблоны тайминга Nmap (-T0 до -T5)
Скорость сканирования влияет как на точность, так и на обнаруживаемость. Nmap предоставляет прямой контроль через шесть шаблонов времени, от параноидально-медленного до опасно быстрого.
Сравнение шаблонов времени
| Флаг | Имя | Задержка между зондами | Лучше всего подходит для |
|---|---|---|---|
-T0 | Параноидальный | ~5 минут | Максимальная скрытность; обход IDS |
-T1 | Хитрый | ~15 секунд | Медленное, осторожное сканирование |
-T2 | Вежливый | ~0,4 секунды | Снижает пропускную способность и нагрузку |
-T3 | Нормальный | По умолчанию | Сбалансированная скорость и точность |
-T4 | Агрессивный | ~10 мс макс. задержка TCP | Быстрые, надежные сети; лабораторная работа |
-T5 | Безумный | ~5 мс макс. задержка TCP | Очень быстро; риск неточных результатов |
Рекомендация: Используйте -T4 для большинства лабораторных и профессиональных работ в надежных сетях. Используйте -T1 или -T2, при сканировании рабочих систем, чтобы избежать сбоев в работающих сервисах.
nmap -iL: Ввод целей из файла
Вместо того чтобы вводить каждый целевой объект вручную, -iL считывает список хостов или диапазонов из текстового файла, по одному на строку. Это необходимо для администраторов, сканирующих большие среды.
Пример :
Создайте текстовый файл с именем targets.txt со следующим содержимым:
192.168.1.100
192.168.1.101
10.0.0.0/24
webserver.example.comИ беги:
nmap -T4 -sV -iL targets.txt -oA batch_results9. Продвинутые методы сканирования TCP
Эти специализированные методы TCP выходят за рамки стандартного сканирования. Они работают, используя правило из RFC 793 (спецификации TCP): закрытый порт должен реагировать на любой неожиданный пакет сигналом RST, тогда как открытый порт просто молча отбрасывает пакет. Эта разница позволяет определить состояние порта без завершения полного рукопожатия.
Важно: Для выполнения этих сканирований требуются привилегии суперпользователя, и они лучше всего работают с целевыми системами Linux и Unix. Windows и некоторые устройства Cisco реагируют на эти пакеты иначе: они отправляют RST независимо от того, открыт порт или закрыт, что делает результаты ненадежными на этих системах.
nmap -sX: XMAS сканирование
Отправляет пакеты с одновременно установленными флагами FIN, PSH и URG — «светится как рождественская елка», отсюда и название. Открытые порты просто тихо отбрасывают пакет; закрытые порты отвечают RST. Сканирование XMAS иногда может обойти простые статические файерволы, которые фильтруют только флаги SYN.
nmap -sX 192.168.1.100nmap -sF: FIN-сканирование
Отправляет пакеты только с установленным флагом FIN — обычно используется для закрытия активного соединения, но здесь отправляется на порты без существующей сессии. Паттерн ответа открыто/закрыто работает так же, как и при сканировании XMAS.
nmap -sF 192.168.1.100nmap -sN: Нулевое сканирование
Отправляет пакеты без каких-либо установленных TCP-флагов. Это самый минимальный возможный TCP-пакет. Открытые или фильтруемые порты игнорируют его; закрытые порты отвечают RST. Null-сканирование может обходить некоторые простые брандмауэры без состояния и простые правила фильтрации пакетов.
nmap -sN 192.168.1.100nmap -sA: ACK-сканирование (Отображение правил брандмауэра)
Сканирование ACK работает иначе, чем три перечисленные выше. Оно не сообщает, открыт ли порт. Вместо этого оно показывает, фильтруется ли порт или нет брандмауэром. Nmap отправляет ACK-пакеты; если приходит RST, порт не фильтруется (доступен). Если ответа нет или приходит сообщение ICMP о недоступности, порт фильтруется (заблокирован). Инженеры по безопасности используют это именно для того, чтобы отображать и понимать наборы правил брандмауэра.
nmap -sA 192.168.1.100
nmap -sA -p 80,443,8080 192.168.1.100 # Check firewall filtering on specific ports10. Движок скриптов Nmap (NSE) и параметры портов
Движок скриптов Nmap (NSE) — это то место, где Nmap превращается из простого порт-сканера в полноценную платформу для аудита безопасности. Он позволяет запускать скрипты на основе Lua против целей для автоматизации сотен конкретных проверок. На текущий момент в комплекте Nmap поставляется 612 скриптов NSE.
Все 15 официальных категорий сценариев NSE
| Категория | Уровень риска | Что делают эти скрипты |
|---|---|---|
аутентификация | Безопасно | Проверить аутентификацию и обнаружить слабые или стандартные учетные данные |
трансляция | Безопасный | Обнаруживайте хосты и службы, отправляя широковещательные пакеты |
грубый | назойливый | Попытки входа с использованием грубой силы против сервисов |
по умолчанию | Безопасно | Безопасные скрипты общего назначения — выполняются автоматически с -sC |
открытие | Безопасный | Соберите дополнительную информацию о сервисах и сетях |
дос | Опасный | Тестировать уязвимости отказа в обслуживании -- использовать с крайней осторожностью |
эксплоит | назойливый | Попытка использовать известные уязвимости |
внешний | Переменная | Запрашивать внешние базы данных и сервисы (например, Whois, DNS-запросы) |
фаззер | назойливый | Отправляйте неожиданные или неверно сформированные данные, чтобы находить ошибки |
информация | Безопасный | Собирайте дополнительную информацию о целях помимо базового сканирования |
назойливый | назойливый | Сценарии, вероятно, приведут к сбою сервисов или срабатыванию оповещений |
вредоносное ПО | Безопасно | Обнаруживать признаки заражения вредоносным ПО или наличия запрограммированных задних дверей |
безопасный | Безопасный | Сценарии с низким риском, которые вряд ли вызовут сбой или причинят вред целям |
версия | Безопасный | Улучшить обнаружение версий сверх того, что делает -sV |
уязвимость | назойливый | Обнаруживать известные уязвимости CVE и распространённые ошибки в настройках безопасности |
Вы можете просмотреть список доступных скриптов в каждой категории, щелкнув по названию соответствующей категории на странице Категории NSE.
Внимание: Скрипты в категориях dos, exploit, brute и intrusive могут нарушить работу или повредить системы. Запускайте их только на целях, которыми вы владеете, или на которых у вас есть явное письменное разрешение на тестирование.
nmap -sC: Сканирование с использованием стандартных скриптов
Выполняет все скрипты в категории default. Они безопасны, быстры и предназначены для рутинного сбора информации, обнаружения заголовков HTTP, проверки анонимного входа FTP, получения ключей хоста SSH и захвата баннеров сервисов, среди прочего.
nmap -sC 192.168.1.100
nmap -sC -sV 192.168.1.100 # Combine with version detection for richer resultsnmap --script <имя>: Запустить определённый скрипт
nmap --script http-title 192.168.1.100 # Grab web page title
nmap --script vuln 192.168.1.100 # Run all vulnerability scripts
nmap --script "http-*" 192.168.1.100 # Run all HTTP-related scripts
nmap --script smb-vuln-ms17-010 192.168.1.100 # Check for EternalBlue (MS17-010)Полная библиотека скриптов: Все скрипты NSE задокументированы на nmap.org/nsedoc.
nmap --top-ports <n>: Сканирование самых распространённых портов
Вместо сканирования всех 65 535 портов, --top-ports сканирует только наиболее часто встречающиеся порты в реальных развертываниях. Nmap ранжирует их по частоте появления на основе большого набора данных реальных сетевых сканирований.
nmap --top-ports 100 192.168.1.100 # 100 most common ports - fast and practical
nmap --top-ports 1000 192.168.1.100 # Broader coverage; still faster than a full scannmap -p: Указать точные порты или диапазоны
nmap -p 22,80,443 192.168.1.100 # Three specific ports
nmap -p 1-1000 192.168.1.100 # Port range
nmap -p- 192.168.1.100 # All 65,535 ports (comprehensive but slow)
nmap -p U:53,T:80 192.168.1.100 # UDP port 53 and TCP port 80 in one scan11. Профессиональные советы: как использовать Nmap как эксперт
Эти рекомендации выходят за рамки основных параметров. Они отражают, как опытные специалисты по безопасности и администраторы сетей используют Nmap каждый день в реальных условиях.
Совет 1: Всегда сохраняйте вашу работу
Никогда не теряйте результаты сканирования. Используйте флаг -oA, чтобы сохранять во всех трех форматах одновременно: читаемый текст (.nmap), XML (.xml) и формат, пригодный для grep (.gnmap). Формат XML особенно полезен, поскольку многие другие инструменты безопасности могут импортировать его напрямую.
nmap -sV -T4 -oA scan_$(date +%F) 192.168.1.0/24
# Creates: scan_2026-06-23.nmap / scan_2026-06-23.xml / scan_2026-06-23.gnmapСовет 2: Объединяйте флаги для одного эффективного сканирования
Вам не нужно запускать отдельные сканирования для определения версии, скриптов и времени. Эта универсальная команда охватывает всё сразу и автоматически сохраняет результаты:
nmap -sV -sC -O -T4 --top-ports 1000 -oA results TARGET_IPСовет 3: Сначала обнаружьте хостов, затем выполните глубокое сканирование
На больших сетях всегда сначала запускайте -sn, чтобы найти активные хосты, затем используйте эти результаты для более глубокого сканирования. Это полностью пропускает отключенные хосты и значительно экономит время.
# Step 1: Find and record live hosts
nmap -sn 192.168.1.0/24 -oG - | grep "Up" | awk '{print $2}' > live.txt
# Step 2: Deep scan only the live ones
nmap -sV -sC -T4 -iL live.txt -oA deep_scanСовет 4: Используйте --reason, чтобы понять каждый результат
Добавьте --reason к любому сканированию, и Nmap точно объяснит, почему он классифицировал каждый порт именно так. Это бесценно при обучении и когда появляются неожиданные результаты.
nmap -sS --reason 192.168.1.100Пример вывода:
Starting Nmap 7.99 ( https://nmap.org ) at 2026-06-23 18:03 +0530
Nmap scan report for 192.168.1.100
Host is up, received localhost-response (0.000029s latency).
Not shown: 999 filtered tcp ports (no-response)
PORT STATE SERVICE REASON
22/tcp open ssh syn-ack ttl 64
Nmap done: 1 IP address (1 host up) scanned in 4.75 secondsСовет 5: Визуализируйте результаты с помощью Zenmap
Если терминал вам не подходит, Zenmap является официальным графическим интерфейсом Nmap. Он отображает карту топологии сети, сохраняет историю сканирования и помогает формировать команды интерактивно. Это отличное вспомогательное средство, пока вы привыкаете к командной строке. Скачайте его бесплатно на nmap.org/zenmap.
Совет 6: Автоматизируйте сканирования с помощью python-nmap
Для плановых аудитов библиотека python-nmap позволяет запускать сканирование программно, разбирать XML-вывод и вызывать оповещения, когда в сети появляются новые сервисы.
pip install python-nmapimport nmap
nm = nmap.PortScanner()
nm.scan('192.168.1.0/24', arguments='-sV -T4 --top-ports 100')
for host in nm.all_hosts():
print(f"{host}: {nm[host].state()}")Совет 7: Используйте подробный режим для обратной связи в реальном времени
Для медленных сканирований, таких как UDP, добавьте -v или -vv, чтобы видеть результаты в реальном времени, а не ждать завершения полного сканирования.
nmap -sU -vv --top-ports 50 192.168.1.100Совет 8: Запускайте Nmap в Docker для чистой среды
Для изолированного тестирования запустите Nmap внутри контейнера Kali Linux Docker. Это позволит вам отделить ваши сканирующие действия от основной машины и обеспечит чистую, воспроизводимую среду каждый раз.
docker run -it --rm kalilinux/kali-rolling nmap -sV TARGET_IPСопутствующее чтение: Как установить и настроить ProxyChains на Linux
12. Основные выводы
nmap -sn— это правильная команда для пинг-сканирования. Старый флаг-sPустарел. Перестаньте его использовать.nmap -sS(TCP SYN сканирование) является самым быстрым и популярным сканированием. Требуются права root.nmap -Aвыполняет определение ОС, определение версий, скрипты и трассировку маршрута за один раз.nmap -T4является лучшим шаблоном времени для быстрых и надежных лабораторных сетей.- Всегда сохраняйте результаты с
-oA, чтобы никогда не потерять результаты сканирования. - Никогда не сканируйте системы, которыми вы не владеете или на сканирование которых у вас нет письменного разрешения. Это незаконно.
13. Шпаргалка по командам Nmap
Все команды ниже проверены по официальному руководству Nmap. Последняя проверка проведена с Nmap 7.99.
Обнаружение хоста
| Команда | Что это делает |
|---|---|
nmap -sn 192.168.1.0/24 | Сканирование Ping -- находит активные хосты, без сканирования портов |
nmap -sn -iL targets.txt | Обнаружение хоста из целевого файла |
Основные типы сканирования
| Команда | Что это делает |
|---|---|
nmap -sS TARGET | TCP SYN сканирование (скрытное; по умолчанию от root) |
nmap -sT TARGET | TCP сканирование с подключением (по умолчанию без root) |
nmap -sU TARGET | UDP-сканирование |
nmap -sV TARGET | Обнаружение сервиса и версии |
nmap -O TARGET | Обнаружение ОС |
nmap -A TARGET | Агрессивный: ОС + версия + скрипты + трассировка маршрута |
Спецификация порта
| Команда | Что это делает |
|---|---|
nmap -p 22,80,443 ЦЕЛЬ | Сканировать определённые порты |
nmap -p 1-1000 TARGET | Сканировать диапазон портов |
nmap -p- TARGET | Сканировать все 65 535 портов |
nmap --top-ports 100 TARGET | Сканировать 100 самых распространённых портов |
Временные показатели и производительность
| Команда | Что это делает |
|---|---|
nmap -T4 TARGET | Быстрая синхронизация -- рекомендуется для лабораторий |
nmap -T1 TARGET | Медленное, скрытное время |
nmap -iL targets.txt | Считать цели из файла |
Расширенные методы TCP
| Команда | Что это делает |
|---|---|
nmap -sX TARGET | XMAS скан |
nmap -sF TARGET | сканирование FIN |
nmap -sN TARGET | Нулевое сканирование |
nmap -sA TARGET | Сканирование ACK -- сопоставление правил брандмауэра |
Скрипты NSE
| Команда | Что это делает |
|---|---|
nmap -sC TARGET | Запустить стандартные скрипты NSE |
nmap --script vuln TARGET | Запустить скрипты обнаружения уязвимостей |
nmap --script "http-*" TARGET | Запустить все скрипты, связанные с HTTP |
nmap --script smb-vuln-ms17-010 TARGET | Проверить наличие EternalBlue |
Выход и дополнительные материалы
| Команда | Что это делает |
|---|---|
nmap -oA results TARGET | Сохранить результат сразу во всех трёх форматах |
nmap -oN results.txt TARGET | Сохранять читаемый текстовый вывод |
nmap -oX results.xml TARGET | Сохранить XML-выход |
nmap --reason TARGET | Покажите, почему каждый порт был классифицирован |
nmap -v TARGET | Подробный вывод |
nmap -vv TARGET | Очень подробный вывод |
nmap --version | Проверьте вашу установленную версию Nmap |
14. Является ли Nmap законным? Этическое и законное использование
Да, Nmap является законным, когда вы используете его на системах, которые вам принадлежат, или на системах, где у вас есть явное письменное разрешение от владельца. Сканирование систем без разрешения является незаконным в большинстве стран и может привести к уголовной ответственности.
Законы, которые вам нужно знать
Несанкционированное сканирование сети нарушает законы о компьютерном мошенничестве в большинстве юрисдикций:
- Индия - Закон об информационных технологиях 2000 года, статьи 43 и 66
- США - Закон о компьютерном мошенничестве и злоупотреблениях (CFAA), 18 U.S.C. § 1030
- ЕС - Директива о преступлениях против информационных систем (2013/40/ЕС)
- Великобритания - Закон о злоупотреблении компьютерами 1990 года
- Австралия - Уголовный кодекс 1995 года, Часть 10.7
Наказания включают штрафы и тюремное заключение. Сканирование системы без разрешения не является серой зоной. Это незаконно в каждой из этих юрисдикций.
Как законно использовать Nmap
- Сканируйте только системы, которые вам принадлежат - ваши собственные компьютеры, маршрутизаторы и лабораторные машины.
- Получите письменное разрешение перед сканированием любой сети, которой вы не владеете.
- Используйте платформы для юридической практики - TryHackMe, Hack The Box и VulnHub предоставляют юридические, специально созданные цели именно для такого обучения.
- Авторизованные сканирования документов - во время любого профессионального взаимодействия ведите письменный учет объема работ, разрешений и результатов. Это защищает вас с юридической точки зрения.
- Избегайте сканирования производственных систем без разрешения — даже разрешённые сканирования могут нарушить работу живых сервисов, если их выполнять неосторожно.
Лучшая практика для учащихся:
Создайте домашнюю лабораторию с двумя или тремя виртуальными машинами VirtualBox и практикуйте каждую команду из этого руководства там. Вы будете учиться быстрее, не причиняя вреда, и будете развивать реальные навыки, которые напрямую переходят в профессиональную работу.
15. Часто задаваемые вопросы (FAQ)
В: Что такое Nmap и для чего он используется?
A: Nmap (Network Mapper) — это бесплатный, с открытым исходным кодом инструмент для сканирования сети, который обнаруживает хосты, открытые порты, работающие службы, версии служб и операционные системы в сети.
Системные администраторы используют его для инвентаризации сети и устранения неполадок. Специалисты по безопасности используют его для тестирования на проникновение и аудита безопасности. Студенты используют его, чтобы изучать, как на практике работают TCP/IP и сетевые протоколы.
Вопрос: Можно ли бесплатно скачать и использовать Nmap?
A: Да. Nmap полностью бесплатен и является открытым программным обеспечением под лицензией Nmap Public Source License (NPSL), основанной на GPLv2. Скачайте его на nmap.org/download. Он работает на Linux, macOS и Windows. Платной версии нет. Он полностью бесплатен.
В: В чем разница между nmap -sn и nmap -sP?
A: Они делают одно и то же: обнаруживают активные хосты в сети без сканирования портов. Однако -sP устарел и был заменен на -sn во всех текущих версиях Nmap. Он будет удален в будущем выпуске. Всегда используйте -sn.
В: Какая команда Nmap сканирования самая быстрая?
О: Самое быстрое практическое сканирование общих портов выглядит так:nmap -T4 --top-ports 100 TARGET
Для полного сканирования всех 65 535 портов:nmap -T4 -p- TARGET
Обратите внимание, что -T5 технически быстрее, но часто дает неточные результаты, если сеть не очень надежный. -T4 обеспечивает наилучший баланс скорости и надежности для повседневного использования.
В: Что делает nmap -A?
A: Флаг -A выполняет четыре операции в одной команде: определение ОС (-O), определение сервисов и версий (-sV), сканирование с использованием стандартных скриптов NSE (-sC) и трассировку маршрута. Это самое полное комплексное сканирование Nmap, но также самое медленное и легко обнаруживаемое. Используйте его только тогда, когда вам нужны подробные данные и у вас есть явное разрешение на сканирование цели.
Вопрос: Мне нужны права root или администратора для запуска Nmap?
A: Не всегда. nmap -sT (TCP Connect сканирование) и nmap -sn (обнаружение хоста) работают без прав root. Однако -sS (SYN сканирование), -sU (UDP сканирование), -O (определение ОС) и продвинутые TCP сканирования (-sX, -sF, -sN) требуют прав root или администратора, потому что им необходимо напрямую формировать сырые сетевые пакеты.
В: Что такое Nmap Scripting Engine (NSE)?
A: NSE — это встроенная в Nmap система скриптов. Она выполняет скрипты на Lua, которые автоматизируют задачи сверх базового сканирования портов, включая получение баннеров сервисов, обнаружение уязвимостей, тестирование логина методом перебора, проверку SSL-сертификатов и обнаружение вредоносного ПО. В комплекте с Nmap идёт 612 скриптов NSE, организованных в 15 категорий. Полный список доступен на nmap.org/nsedoc.
Вопрос: Как сохранить результаты сканирования Nmap в файл?
A: Используйте -oA filename, чтобы сохранить результаты сразу во всех трех форматах:nmap -sV -T4 -oA my_scan 192.168.1.100
# Создает: my_scan.nmap/my_scan.xml/my_scan.gnmap
В: В чем разница между nmap -sS и nmap -sT?
A: Оба сканируют TCP-порты. -sS (SYN-сканирование) отправляет SYN-пакет и никогда не завершает полный рукопожатие. Оно быстрее, оставляет меньше следов в логах и требует прав root. -sT (Connect-сканирование) завершает полный трехсторонний рукопожатие, используя сетевой стек ОС — права root не требуются, но оно медленнее и легче обнаруживается целью.
В: Что делает nmap -sA?
A: ACK-сканирование (-sA) не обнаруживает открытые порты. Вместо этого оно определяет, является ли порт фильтруемым или нефильтруемым файрволом. Nmap отправляет ACK-пакеты; ответ RST означает, что порт нефильтруемый (доступен), в то время как отсутствие ответа или сообщение ICMP unreachable означает, что порт фильтруемый (заблокирован). Специалисты по безопасности используют это для картирования правил файрвола.
Вопрос: Может ли Nmap обнаруживать уязвимости?
A: Да, через NSE. Категория скриптов vuln проверяет известные CVE и распространённые ошибки конфигурации безопасности. Например, --script smb-vuln-ms17-010 проверяет уязвимость EternalBlue. Однако Nmap в первую очередь является сканером, а не инструментом эксплуатации. Для полного управления уязвимостями его обычно используют вместе с такими инструментами, как OpenVAS, Nessus или Metasploit.
В: Что такое Zenmap?
A: Zenmap — это официальная графическая оболочка Nmap. Она предоставляет визуальную карту топологии сети, историю сканирования, конструктор команд на основе профилей и удобный способ сравнивать результаты сканирований. Она идеально подходит для пользователей, которые только начинают работать с Nmap или предпочитают визуальный рабочий процесс. Скачайте её на nmap.org/zenmap.
15. Заключение и следующие шаги
Nmap — это один из тех инструментов, который вознаграждает за каждый час, потраченный на его изучение. Флаги могут на первый взгляд показаться сложными, но логика, стоящая за ними, последовательна.
Как только вы поймёте, почему каждый тип сканирования работает именно так, а не просто будете заучивать команды, весь инструмент станет понятен.
Чтобы подвести итоги самых важных моментов из этого руководства:
- Используйте
-snдля обнаружения хоста. Старый флаг-sPустарел. - Используйте
-sSв качестве основного сканирования портов при выполнении от имени root. - Сочетайте
-sV -sC -T4 -oAдля эффективного, хорошо документированного универсального сканирования. - Добавьте
--reasonк любому сканированию, пока вы учитесь понимать, почему каждый порт получил свою классификацию. - Никогда не сканируйте без разрешения. Это незаконно.
Куда идти дальше
| Ресурс | Чему вы научитесь |
|---|---|
| nmap.org/book | Официальное руководство по Nmap от его создателя. Оно свободно доступно в интернете |
| nmap.org/nsedoc | Полная документация по скриптам NSE и примеры использования |
| TryHackMe -- Комната Nmap | Практическое занятие с Nmap с наставником в легальной лаборатории |
| Взломать коробку | Задачи реального тестирования на проникновение |
| VulnHub | Загружаемые уязвимые виртуальные машины для локальной практики |
nmap --help (в вашем терминале) | Полная официальная страница руководства. Всегда актуальна и рекомендуется. |
Лучший следующий шаг: Настройте две виртуальные машины VirtualBox: одну с Kali Linux в качестве вашей машины для сканирования, другую с Metasploitable 2 или DVWA в качестве цели. Затем выполните каждый команду из этого руководства на практике. Такое сочетание чтения и выполнения на практике позволяет формировать реальные навыки.
Источники и дополнительная литература:
- Официальная документация Nmap
- Справочное руководство Nmap/страница руководства
- Документация по обнаружению хостов Nmap
- Методы сканирования портов Nmap
- Время и производительность Nmap
- Библиотека скриптов Nmap NSE
- Книга по сетевому сканированию Nmap
- Закон о компьютерном мошенничестве и злоупотреблениях
- Руководство по тестированию веб-безопасности OWASP
- Оригинальная публикация Nmap
