Nmap: обнаружение узлов, сканирование портов и разбор вывода

Справочник команд — в разделе 16, оформление результата — в разделе 12. Что делать с найденным дальше: управление уязвимостями и отчёт сканера уязвимостей.
Nmap показывает, какие адреса отвечают и какие порты слушают. Ниже — установка, цели, обнаружение узлов, TCP/UDP, службы, NSE, отчёты и как не перечитать вывод. Чужие адреса без письменного согласия представителя сети не сканируйте. Состояния порта разобраны в разделе 13, краткая шпаргалка — в разделе 16.
1. Что такое Nmap и для чего используется
По Nmap Reference Guide Nmap (Network Mapper) — открытый инструмент исследования сети и аудита безопасности. Он определяет, какие хосты доступны, какие службы они предлагают, какие ОС и фильтры видны со стороны сканера. Администраторы используют его для инвентаризации, плана обновлений и проверки, что сервис жив. Аудиторы — чтобы сверить матрицу доступа с фактом.
Результат — таблица «интересных портов»: номер, протокол, имя службы и состояние, как его видит этот скан. Состояние не свойство порта «вообще»: с другой точки тот же 135/tcp может быть open, а из интернета — filtered. Это прямо сказано в Port Scanning Basics.
Скан без согласования часто запрещён AUP провайдера. Официальный раздел Legal Issues требует письменного разрешения представителя целевой сети. Методика технического тестирования в NIST SP 800-115 — рамка работ, не разрешение сканить что угодно. Учебный хост проекта — scanme.nmap.org: только Nmap, без эксплойтов и DoS, не больше примерно дюжины прогонов в сутки. Это не «любой хост из поиска».
2. Установка Nmap и проверка версии
Сначала проверьте, не стоит ли уже:
nmap --version
Ожидание: строка вроде Nmap version 7.xx и путь к nmap-services. Номер пакета дистрибутива часто отстаёт от nmap.org/download. Примеры в книге и man описывают последнюю версию с сайта проекта; если флаг «не существует», сверьте man nmap установленного пакета, а не блог.
Debian / Ubuntu (официальный путь книги — пакет дистрибутива):
sudo apt update
sudo apt install -y nmap
nmap --version
Fedora / Alma / Rocky / RHEL:
sudo dnf install -y nmap
nmap --version
Windows и macOS — установщики с страницы загрузок. Сборка из исходников — если нужен свежий релиз, а пакет ОС старый: глава Obtaining, Compiling, Installing. Номер на download.html меняется; в отчёт кладите вывод nmap --version того пакета, которым сканировали.
Сырые пакеты (SYN-скан по умолчанию) на Unix обычно требуют root. Без привилегий Nmap сам переключается на connect-скан -sT. Это не поломка, а ограничение стека. На Windows для полноценных raw-сканов нужен Npcap и обычно права администратора.
3. Указание целей сканирования
Цель — последний аргумент (или список). Допустимы имя, адрес, CIDR, диапазон, файл.
nmap 192.0.2.10
nmap scanme.nmap.org
nmap 192.0.2.0/24
nmap 192.0.2.10-20
nmap 192.0.2.10,192.0.2.20,192.0.2.30
nmap -iL /var/audit/nmap/targets.txt
nmap 192.0.2.0/24 --exclude 192.0.2.1,192.0.2.254
nmap -sL 192.0.2.0/28
-iL читает цели из файла (по одной в строке: имя, IP или CIDR). --exclude и --excludefile выкидывают шлюзы, чужие арендованные адреса и то, что в заявке не разрешено. -sL — list scan: Nmap не шлёт пакеты на цели, только разворачивает список и по умолчанию делает обратный DNS. В Reference Guide это sanity check: если в PTR всплыло чужое fw.chi, остановитесь.
nmap -n -sL 192.0.2.0/28
nmap -6 -sL 2001:db8::/120
nmap --excludefile /var/audit/nmap/exclude.txt -iL /var/audit/nmap/targets.txt
-n отключает DNS — быстрее и меньше следов на резолвере, когда имена уже известны. -6 включает IPv6; без него IPv6-цели часто просто не сканируются так, как ожидают. Адреса 192.0.2.0/24, 198.51.100.0/24, 203.0.113.0/24 и 2001:db8::/32 — документационные (RFC 5737, RFC 3849). Подставьте свой согласованный диапазон. Не берите -iR (случайные хосты интернета) «для учёбы»: это чужие сети без согласия.
4. Обнаружение узлов
Полный порт-скан каждого адреса в /16 медленный и обычно лишний. Сначала сужают список живых. Если не задать свои -P*, привилегированный Nmap шлёт ICMP echo, TCP SYN на 443, TCP ACK на 80 и ICMP timestamp (для IPv6 timestamp нет). Это эквивалент -PE -PS443 -PA80 -PP. В локальном Ethernet по умолчанию ещё ARP (IPv6 — Neighbor Discovery), даже если указаны другие ping-типы.
Без прав root discovery — SYN через connect на 80 и 443.
nmap -sn 192.0.2.0/24 -oA /var/audit/nmap/ping-lab
nmap -sn -PE -PS22,443 -PA80 192.0.2.0/24
nmap -Pn -p 22,80,443 192.0.2.10
nmap -sL 192.0.2.0/24
-sn— только discovery, без таблицы портов. Раньше флаг назывался-sP.-Pn— не пинговать, считать все указанные IP живыми и сразу делать запрошенный скан. На /16 это 65 536 адресов. Старые имена:-P0,-PN.-PS22,443/-PA80/-PU40125/-PE— типы ping. Между-PSи списком портов пробела нет.
Пример условного вывода -sn:
Nmap scan report for 192.0.2.10
Host is up (0.0021s latency).
Nmap done: 256 IP addresses (12 hosts up) scanned
-Pn нужен, когда хост не отвечает на ping, но порты слушают (типичный периметр). Цена — время на «пустые» адреса: Nmap считает каждый IP живым и выполняет запрошенный скан. На локальном Ethernet ARP/ND часто всё равно выполняется, иначе не узнать MAC для дальнейших проб; отключить это можно --disable-arp-ping, но на обычном VLAN это редко нужно.
Локальный ss на самом сервере — другая картина: он показывает, что слушает стек, а не что видно с вашей точки. См. проверку слушающих портов.
Не называйте -sn «незаметным» или «скрытным». Книга пишет, что это легче полного порт-скана и «без привлечения большого внимания» относительно list scan vs port scan. Это сравнение методов, не обещание, что IDS или NetFlow вас не увидят.
5. Методы сканирования TCP и UDP
По умолчанию при правах на raw-пакеты Nmap делает TCP SYN (-sS). Без прав — TCP connect (-sT). Одновременно можно сочетать один TCP-метод и -sU (и отдельно SCTP).
TCP SYN (-sS)
Полуоткрытый скан: SYN, по SYN/ACK порт open, по RST — closed, тишина или ICMP unreachable (type 3, коды 0, 1, 2, 3, 9, 10, 13) — filtered. Полное TCP-соединение не устанавливается: на SYN/ACK ядро сканера обычно отвечает RST. Книга называет метод относительно ненавязчивым и употребляет слово stealthy именно в смысле «рукопожатие не завершается». Это не «невидимый для IDS» и не «скрытный аудит». Порядочный IDS ловит SYN-скан так же, как connect; отличие — в логах самой службы на цели.
sudo nmap -sS -p 22,80,443 --reason 192.0.2.10
TCP connect (-sT)
ОС устанавливает соединение через connect(). На открытом порту рукопожатие завершается, затем Nmap закрывает сокет. Дольше, больше пакетов, выше шанс записи в syslog службы. Берите, когда нет raw-сокетов. Не считайте -sT «более точным»: по открытости порта информация та же, что у -sS.
nmap -sT -p 22,80,443 192.0.2.10
UDP (-sU)
На распространённые порты (53, 161 и др.) уходит протокольный payload, на остальные — обычно пустой пакет. Ответ UDP — open. ICMP port unreachable (type 3 code 3) — closed. Другие ICMP unreachable из списка man — filtered. Нет ответа после повторов — open|filtered: либо служба молчит, либо фильтр дропает. Это не open. -sV помогает отличить живой UDP от фильтра, но дольше и шумнее.
sudo nmap -sU -p 53,123,161 --reason 192.0.2.10
sudo nmap -sS -sU -p T:22,80,443,U:53,123 192.0.2.10
UDP медленный: закрытые порты часто шлют ICMP с лимитом. В главе Port Scanning Techniques для ядра Linux 2.4.20 указан порядок одного destination unreachable в секунду; полный проход 65 536 UDP-портов при таком лимите занимает больше 18 часов. Современные ядра могут отличаться, но расчёт тот же: сначала узкий список, --top-ports или несколько хостов параллельно, а не -sU -p- на всю подсеть.
Прочее, коротко
-sA (ACK) картографирует правила фильтра и даёт unfiltered/filtered, не open/closed. NULL/FIN/Xmas (-sN -sF -sX) на RFC-compliant стеках отличают closed (RST) от open|filtered (тишина); Windows и многие Cisco отвечают RST всегда — все порты выглядят closed. Не опирайте отчёт только на них.
6. Выбор портов и диапазонов
По умолчанию — 1000 наиболее частых портов каждого сканируемого протокола (файл nmap-services с частотами).
nmap -p 22,80,443 192.0.2.10
nmap -p 1-1024 192.0.2.10
nmap -p- 192.0.2.10
nmap -F 192.0.2.10
nmap --top-ports 100 192.0.2.10
nmap -p T:22,80,443,U:53,161 -sS -sU 192.0.2.10
nmap -p http,https,ssh 192.0.2.10
nmap --exclude-ports 25,445 192.0.2.10
-pзадаёт список или диапазон и перекрывает умолчание.-p-— порты 1–65535 (ноль только если указать явно).-F— fast: 100 частых портов вместо 1000, если в nmap-services есть частоты.--top-ports N— ровно N самых частых.- Квалификаторы
T:U:S:действуют до следующего. --exclude-portsубирает порты из всех фаз, включая discovery.
Порядок портов по умолчанию перемешан (часть частых выносят в начало). -r сканирует по возрастанию — удобно сравнивать два прогона глазами, чуть предсказуемее для IDS. Не гоняйте -p- по /16 «на всякий случай». Книга: целитесь узко — меньше жалоб, меньше риска для хрупких NAT с таблицей состояний.
7. Определение служб, версий и операционной системы
sudo nmap -sS -sV -p 22,80,443 192.0.2.10
sudo nmap -sS -O --osscan-limit 192.0.2.10
sudo nmap -A -T4 -p 22,80,443 scanme.nmap.org
-sV— зонды изnmap-service-probes: протокол, имя приложения, версия, иногда CPE. Это ответы на пробы, не пакет в репозитории и не CVE. Имя службы без-sVберётся изnmap-servicesпо номеру порта и легко врёт, если демон слушает «чужой» порт.- Интенсивность зондов — от 0 до 9, умолчание 7.
--version-light(2) быстрее и грубее,--version-all(9) гоняет все пробы. TCP 9100 по умолчанию исключён: часть принтеров печатает любой мусор с зонда.--allportsэто исключение снимает — на печати не включайте. -O— отпечаток стека поnmap-os-db. Лучше работает, если есть хотя бы один open и один closed TCP.--osscan-limitпропускает безнадёжные хосты и экономит время на-Pn. Совпадение — оценка, не инвентарный номер сборки ядра.-Aпо man иnmap --helpвключает ОС, версии, скриптовый скан и traceroute. На согласованном стенде удобно одним прогоном; на периметре шумно и часто лишнее.
Пример из официального Reference Guide (команда nmap -A -T4 scanme.nmap.org). Версии ПО в том примере — иллюстрация формата книги, не снимок 2026 года:
PORT STATE SERVICE VERSION
22/tcp open ssh OpenSSH ...
80/tcp open http Apache httpd ...
646/tcp filtered ldp
Читать: 22 и 80 принимают, 646 фильтр не дал понять open/closed. Строка VERSION — гипотеза для сверки владельцем, не доказанная уязвимость.
8. NSE-скрипты и безопасное применение
NSE гоняет скрипты на Lua. Категории по man: auth, broadcast, default, discovery, dos, exploit, external, fuzzer, intrusive, malware, safe, version, vuln.
Скрипты не в песочнице. Чужие .nse не запускайте без доверия к автору или разбора кода. -sC равен --script=default; часть default книга считает intrusive — без разрешения сети не гоняйте. --script all подключает эксплойты, перебор паролей и DoS — для планового аудита не используйте.
nmap --script-help default
nmap --script-help smb-vuln-ms17-010
sudo nmap -sC -p 80,443 192.0.2.10
sudo nmap --script "not intrusive" -p 80,443 192.0.2.10
sudo nmap -p 445 --script smb-vuln-ms17-010 --script-args vulns.showall 192.0.2.10
Сначала --script-help: категории и описание. Пример smb-vuln-ms17-010 в NSE Documentation Portal отнесён к vuln и safe: он не эксплуатирует дыру, но подключается к дереву IPC$ и шлёт транзакцию. Категория safe не отменяет согласование и не делает строку VULNERABLE доказанным CVE. Положительный vuln-скрипт — гипотеза. Подтверждение — патч, конфиг, отдельный сканер уязвимостей.
Согласовывайте NSE отдельно от «просто порт-скан». Воздействие у категорий auth, exploit, dos и fuzzer другое: можно заблокировать учётку, уронить службу или оставить шум в журнале. Категории комбинируют выражениями: --script "default and safe", --script "not intrusive".
9. Форматы вывода и сохранение отчётов
Интерактивный вывод идёт на stdout всегда, плюс файлы по флагам. Пробел после -oN/-oX обязателен.
sudo nmap -sS -p 22,80,443 -oN /var/audit/nmap/lab.nmap 192.0.2.10
sudo nmap -sS -p 22,80,443 -oX /var/audit/nmap/lab.xml 192.0.2.10
sudo nmap -sS -p 22,80,443 -oA /var/audit/nmap/lab-2026-10-11 192.0.2.0/24
nmap --resume /var/audit/nmap/lab.nmap
-oN— нормальный текстовый отчёт (чуть меньше runtime-шума, чем интерактивный stdout).-oX— XML для разбора программами; в man это предпочтительный машинный формат.-oG— одна строка на хост, удобно grep/awk; в главе Output помечен как deprecated относительно XML, но ещё работает.-oA префикспишет сразупрефикс.nmap,.xml,.gnmap.
В имени файла работают преобразования вроде %Y%m%d (см. man Output). --resume продолжает прерванный прогон из сохранённого файла; других аргументов в этой команде не указывают — Nmap читает прежние опции из файла. Разбор grepable после -oA:
grep '22/open' /var/audit/nmap/lab-2026-10-11.gnmap
grep '/open/' /var/audit/nmap/lab-2026-10-11.gnmap
Пример строки .gnmap (условный хост):
Host: 192.0.2.10 () Ports: 22/open/tcp//ssh///, 80/filtered/tcp//http///, 443/open/tcp//https///
Читать так же, как таблицу портов: open — принимает, filtered — фильтр, не «закрыто». XML кладите в систему учёта, текст .nmap — в заявку человеку. Скриншот терминала не заменяет команду, nmap --version, диапазон и файлы -oA.
10. Производительность и диагностика проблем
Шаблоны времени -T0 … -T5: paranoid, sneaky, polite, normal, aggressive, insane. Умолчание — -T3 (normal). На современной своей Ethernet/broadband-сети книга рекомендует -T4. -T2 (polite) может растянуть прогон примерно в десять раз относительно умолчания — это не «безопаснее для хоста», а медленнее. -T5 / insane задаёт жёсткие таймауты (в том числе --host-timeout 15m и --script-timeout 10m) и книгу не устраивает как значение по умолчанию: теряются ответы. -T0/-T1 сериализуют пробы с паузами в минуты и секунды; для тысяч портов это непрактично, а «обход IDS» они не гарантируют.
sudo nmap -sS -T2 -p 80,443 --reason --stats-every 10s 192.0.2.10
sudo nmap -sS -p 22 --host-timeout 30s --max-retries 2 192.0.2.0/24
sudo nmap -sS -p 80 -v --packet-trace 192.0.2.10
--reason— какой пакет дал состояние (syn-ack, rst, no-response). Нужен в споре filtered vs closed.-v/-vv— ход скана и оценка времени.--stats-every 10s— периодический статус.--host-timeout— бросить слишком медленный хост (полезно на UDP).--packet-trace— каждый пакет; сужайте-p, иначе тысячи строк.
Скан «завис»: часто rate-limit ICMP на UDP, -Pn на огромной сетке или перегруз цели. Сузьте порты, уберите -A, вернитесь к -T3 или -T4 на своей LAN. Без шаблона Nmap допускает до десяти повторов пробы; --max-retries 2 ускоряет медленные хосты ценой части filtered/closed. --host-timeout 30s (или 30m на тяжёлом UDP) выкидывает один медленный адрес, не весь прогон. Книга отдельно пишет: убрать -sV, NSE и -O снижает риск для хрупких устройств сильнее, чем игра с -T.
Не обещайте «стелс». Опции decoy, spoof-source и фрагментация есть в главе Firewall/IDS Evasion, но для согласованного внутреннего аудита они не нужны. Если скан всё же заметят, маскировка выглядит хуже, чем честная заявка.
11. Практический сценарий сетевого аудита
Условие: своя лабораторная /24 192.0.2.0/24, есть письмо на работы, окно согласовано. Нужна инвентаризация SSH/HTTP/HTTPS и проверка, не торчит ли RDP с пользовательского сегмента.
- Список целей без пакетов на хосты:
nmap -sL 192.0.2.0/24. Ожидание: 256 адресов, узнаваемые PTR, нет чужого fw.* в именах. - Кто жив:
sudo nmap -sn 192.0.2.0/24 -oA /var/audit/nmap/lab-ping. Ожидание: «N hosts up» и файлыlab-ping.nmap/.xml/.gnmap. - Узкий TCP:
sudo nmap -sS -p 22,80,443,3389 --reason -oA /var/audit/nmap/lab-tcp 192.0.2.0/24. Ожидание: таблица только по четырём портам и колонка REASON. - Хосты, которые не ответили на ping, но обязаны слушать 443: точечно
sudo nmap -Pn -sS -p 443 --reason 192.0.2.50. Если 443 open — хост жив, discovery врал из‑за фильтра. - Только на согласованных web-узлах версии:
sudo nmap -sS -sV -p 80,443 -oA /var/audit/nmap/lab-ver 192.0.2.10. Строку VERSION сверяет владелец, в отчёт как CVE не копируют. - UDP по задаче (DNS своего резолвера):
sudo nmap -sU -p 53 --reason 192.0.2.53. Ответ UDP — open; тишина —open|filtered, не open. - Свести таблицу: хост, порт, состояние, ожидалось ли. Open 3389 с VLAN пользователей — заявка владельцу, не «CVSS 10».
- Положить в заявку команду,
nmap --version, три файла-oAи что Nmap не доказал.
NSE и -A в этот прогон не входят, пока в заявке отдельно не написано. Диапазон 192.0.2.0/24 в командах — документционный пример, не результат прогона с этой машины.
12. Два типовых сценария и оформление результата
После срабатывания IDS
Нужно понять, слушает ли затронутый хост лишнее с того сегмента, откуда пришёл сигнал. Берите узкий список портов, только свою сеть и окно инцидента:
sudo nmap -sS -Pn -p 22,80,443,3389 --reason -oA ids-2026-10-11 192.0.2.10
Результат — таблица open/filtered и поручение: закрыть лишнее или объяснить, почему порт открыт. Узел при этом не трогайте: если подозрение на взлом, порядок действий описан в статье первые 24 часа инцидента.
Плановый аудит сегмента
Инвентаризация: какие хосты отвечают и какие порты open относительно матрицы доступа. Расхождение «в паспорте 443, а Nmap видит ещё 22 и 3389 из пользовательской VLAN» — задача для владельца сегмента, а не повод «повысить CVSS».
Как оформить результат
- Основание и диапазон: на что есть письменное разрешение.
- Откуда сканировали (адрес и сегмент): без этого таблица ничего не значит.
- Команда и версия Nmap (
nmap --version). - Таблица: хост, порт, состояние, ожидалось ли это.
- Поручение: кто закрывает или согласовывает исключение, срок.
- Что Nmap не доказал, особенно
open|filteredи «скрипт сообщил об уязвимости».
Файлы -oA прикладывайте к заявке как есть: это доказательство, скриншот терминала им не является.
13. Интерпретация результатов и ограничения
Шесть состояний по Port Scanning Basics:
| Состояние | Смысл | Не писать в отчёт |
|---|---|---|
| open | Приложение принимает | «Уязвим» |
| closed | Хост ответил, службы нет | «Дыра» или «хоста нет» |
| filtered | Фильтр мешает понять open/closed | «Закрыто» / «безопасно» |
| unfiltered | Доступен, open/closed неизвестно (типично ACK-скан) | Однозначный open |
| open|filtered | Нет ответа: open или drop (UDP, FIN, NULL, Xmas) | «Точно открыт» |
| closed|filtered | Не отличить closed от filtered (idle scan) | Выдуманную однозначность |
Пример условного вывода со своей сети:
Nmap scan report for 192.0.2.10
PORT STATE SERVICE REASON
22/tcp open ssh syn-ack ttl 64
80/tcp filtered http no-response
443/tcp open https syn-ack ttl 64
3389/tcp closed ms-wbt-server reset ttl 64
SSH и HTTPS принимают. HTTP не «закрыт» — фильтр или drop. RDP на хосте нет, но хост жив (RST). С jump-хоста тот же 80 может оказаться open: состояние зависит от точки скана.
Filtered — это «не видно», а не «безопасно». На периметре, где сервис снаружи быть не должен, filtered — ожидаемый результат. Если же порт обязан отвечать с jump-хоста, а он filtered, значит, сбой фильтра или неверный сегмент.
Две точки — две таблицы. Условный периметр и условный VLAN:
# с интернета, 203.0.113.10
80/tcp filtered http no-response
443/tcp open https syn-ack
# с jump-хоста, 192.0.2.10 тот же сервис
80/tcp open http syn-ack
443/tcp open https syn-ack
Это не противоречие Nmap и не «ложный open». Это разные пути и разные правила фильтра. В заявке всегда пишите, откуда сканировали. Проверка «что слушает сам хост» — ss, не только Nmap.
Ограничения, которые стоит держать в заявке:
- Нет основания — это не аудит.
- Версия из
-sVподделывается. - ОС из
-O— оценка. - NSE vuln ≠ подтверждённый CVE.
- Скан может уронить старое кривое устройство; на чувствительном контуре убирают
-sV,-O, NSE и снижают-T. - Nmap не заменяет разбор файрвола и журналов.
14. Типовые ошибки
- Скан чужого диапазона «проверить, открыт ли сайт».
-Pnна /16 без нужды — часы работы и жалобы.-p-и-sUсразу на всю подсеть.-T5и-Aпо умолчанию.- Читать
open|filteredкак open, filtered как «безопасно». - Путать
-sn(нет порт-скана) и-Pn(нет ping). - Класть в отчёт скрин вместо
-oA. - Гонять
--script allили exploit/dos без отдельного согласования. - Путать вывод Nmap с
ssна хосте и с item Zabbixnet.tcp.port— см. проверку порта в Zabbix.
15. FAQ
Nmap незаконен?
Односложного ответа в Legal Issues нет. Письменное согласие снимает большую часть риска. Без него возможны AUP провайдера, жалоба и редкие судебные истории. Законы юрисдикций различаются; это не юридическая консультация.
Почему хост «down», а сайт открывается в браузере?
Discovery не прошёл (фильтр режет ping/SYN/ACK). Повторите точечно с -Pn и нужным портом.
Почему UDP почти весь open|filtered?
Так устроен метод: нет ответа. Сузьте порты, при необходимости добавьте -sV на согласованных узлах.
Можно ли сканить scanme каждый час?
Нет. Лимит проекта — порядка дюжины раз в сутки, только Nmap, без DoS и эксплойтов. При злоупотреблении имя могут отключить.
Заменяет ли -A сканер уязвимостей?
Нет. По nmap --help это ОС, версии, script scanning и traceroute.
Нужен ли root?
Для -sS, -sU, -O и большинства raw-проб — да, на Unix. Без raw Nmap сам уйдёт в -sT. Это ограничение, не ошибка команды.
Чем Nmap отличается от ss и от проверки порта в Zabbix?
Nmap — вид с выбранной точки сети. ss — слушающие сокеты на хосте. Item Zabbix net.tcp.port — доступность с сервера/прокси мониторинга. Три разных вопроса, три разных артефакта.
Можно ли по баннеру OpenSSH писать CVE в отчёт?
Нельзя. Баннер подделывается, пакет в репозитории может быть запатчен без смены строки, а NSE-гипотеза требует подтверждения владельцем.
16. Шпаргалка по командам
| Задача | Команда |
|---|---|
| Версия | nmap --version |
| Список целей без пакетов | nmap -sL 192.0.2.0/24 |
| Кто жив | nmap -sn 192.0.2.0/24 |
| Не пинговать | nmap -Pn -p 443 192.0.2.10 |
| TCP SYN, узкие порты | sudo nmap -sS -p 22,80,443 --reason 192.0.2.10 |
| TCP без raw | nmap -sT -p 22,80,443 192.0.2.10 |
| UDP узко | sudo nmap -sU -p 53,123 --reason 192.0.2.10 |
| 100 частых TCP | nmap -F 192.0.2.10 |
| Все TCP-порты | sudo nmap -sS -p- --reason 192.0.2.10 |
| Версии служб | sudo nmap -sV -p 80,443 192.0.2.10 |
| Default NSE | sudo nmap -sC -p 80,443 192.0.2.10 |
| Справка по скрипту | nmap --script-help smb-vuln-ms17-010 |
| Три файла отчёта | nmap -sS -p 22,80,443 -oA /var/audit/nmap/lab 192.0.2.10 |
| Продолжить скан | nmap --resume /var/audit/nmap/lab.nmap |
| Учебный хост | nmap -sS -p 22,80,443 --reason scanme.nmap.org |
| Цели из файла | nmap -iL hosts.txt |
| Исключить адрес | nmap --exclude 192.0.2.1 192.0.2.0/24 |
| Только открытые | nmap --open 192.0.2.10 |
| Определить ОС (нужен root) | sudo nmap -O 192.0.2.10 |
| Версии, скрипты и ОС вместе | sudo nmap -A -p 80,443 192.0.2.10 (шумно, только по согласованию) |
| Шифры TLS | nmap --script ssl-enum-ciphers -p 443 192.0.2.10 |
| Скрипты проверки уязвимостей | nmap --script vuln -p 80,443 192.0.2.10 (может нарушить работу службы) |
| Скорость: осторожно | -T2 для хрупкого оборудования, -T4 для надёжной сети |
| Нижняя граница скорости | --min-rate 500 |
| Вывод для обработки | -oX scan.xml (XML), -oG scan.gnmap (grep) |
| Подробно | -v, -vv |
Как проверить
В заявке есть основание, команда, вывод nmap --version и файлы -oA. -sn и -Pn не перепутаны. Каждый open на периметре имеет владельца или заявку. open|filtered и filtered не переименованы. NSE, если был, согласован отдельно.
17. Источники
- Nmap Reference Guide. URL: https://nmap.org/book/man.html.
- Оглавление книги Nmap Network Scanning. URL: https://nmap.org/book/toc.html.
- Справочник на русском. URL: https://nmap.org/man/ru/. Перевод может отставать от английской главы; при расхождении флага верна английская man и
man nmapпакета. - Host Discovery. URL: https://nmap.org/book/man-host-discovery.html.
- Port Scanning Basics. URL: https://nmap.org/book/man-port-scanning-basics.html.
- Port Scanning Techniques. URL: https://nmap.org/book/man-port-scanning-techniques.html.
- Port Specification. URL: https://nmap.org/book/man-port-specification.html.
- Nmap Scripting Engine. URL: https://nmap.org/book/man-nse.html.
- Output. URL: https://nmap.org/book/man-output.html.
- Legal Issues. URL: https://nmap.org/book/legal-issues.html.
- Install. URL: https://nmap.org/book/install.html, https://nmap.org/download.html.
- NIST SP 800-115. URL: https://csrc.nist.gov/pubs/sp/800/115/final. Не замена согласия владельца сети.




















