Шпаргалка по Nmap
Изучите Nmap с практическими лабораториями
Изучите сканирование сети с помощью Nmap посредством практических лабораторий и реальных сценариев. LabEx предлагает комплексные курсы по Nmap, охватывающие обнаружение сетей, сканирование портов, определение служб, снятие отпечатков ОС и оценку уязвимостей. Освойте методы сетевой разведки и аудита безопасности.
Установка и настройка
Установка в Linux
Установите Nmap с помощью менеджера пакетов вашего дистрибутива.
# Ubuntu/Debian
sudo apt update && sudo apt install nmap
# RHEL/Fedora/CentOS
sudo dnf install nmap
# Проверить установку
nmap --version
Установка в macOS
Установите с помощью менеджера пакетов Homebrew.
# Установка через Homebrew
brew install nmap
# Прямая загрузка с nmap.org
# Скачать .dmg с https://nmap.org/download.html
Установка в Windows
Загрузите и установите с официального сайта.
# Загрузить установщик с
https://nmap.org/download.html
# Запустить установщик .exe с правами администратора
# Включает графический интерфейс Zenmap и версию командной строки
Базовая проверка
Проверьте установку и получите справку.
# Отобразить информацию о версии
nmap --version
# Показать меню справки
nmap -h
# Расширенная справка и опции
man nmap
Базовые методы сканирования
Простое сканирование хоста: nmap [цель]
Базовое сканирование одного хоста или IP-адреса.
# Сканировать один IP
nmap 192.168.1.1
# Сканировать по имени хоста
nmap example.com
# Сканировать несколько IP-адресов
nmap 192.168.1.1 192.168.1.5
192.168.1.10
Войдите в систему, чтобы ответить на эту викторину и отслеживать свой прогресс обучения
nmap 192.168.1.1?Сканирование диапазона сети
Nmap принимает имена хостов, IP-адреса, подсети.
# Сканировать диапазон IP
nmap 192.168.1.1-254
# Сканировать подсеть с нотацией CIDR
nmap 192.168.1.0/24
# Сканировать несколько сетей
nmap 192.168.1.0/24 10.0.0.0/8
Ввод из файла
Сканирование целей, перечисленных в файле.
# Читать цели из файла
nmap -iL targets.txt
# Исключить определенные хосты
nmap 192.168.1.0/24 --exclude
192.168.1.1
# Исключить из файла
nmap 192.168.1.0/24 --excludefile
exclude.txt
Методы обнаружения хостов
Ping-сканирование: nmap -sn
Обнаружение хостов — ключевой способ, который многие аналитики и пентестеры используют с Nmap. Его цель — получить обзор того, какие системы активны.
# Только ping-сканирование (без сканирования портов)
nmap -sn 192.168.1.0/24
# Пропустить обнаружение хостов (предполагать, что все хосты активны)
nmap -Pn 192.168.1.1
# ICMP echo ping
nmap -PE 192.168.1.0/24
Войдите в систему, чтобы ответить на эту викторину и отслеживать свой прогресс обучения
nmap -sn?Методы TCP Ping
Использование TCP-пакетов для обнаружения хостов.
# TCP SYN ping на порт 80
nmap -PS80 192.168.1.0/24
# TCP ACK ping
nmap -PA80 192.168.1.0/24
# TCP SYN ping на несколько портов
nmap -PS22,80,443 192.168.1.0/24
UDP Ping: nmap -PU
Использование UDP-пакетов для обнаружения хостов.
# UDP ping на распространенные порты
nmap -PU53,67,68,137 192.168.1.0/24
Войдите в систему, чтобы ответить на эту викторину и отслеживать свой прогресс обучения
ARP Ping: nmap -PR
Использование ARP-запросов для обнаружения в локальной сети.
# ARP ping (по умолчанию для локальных сетей)
nmap -PR 192.168.1.0/24
# Отключить ARP ping
nmap --disable-arp-ping 192.168.1.0/24
Типы сканирования портов
TCP SYN Scan: nmap -sS
Это сканирование более скрытное, поскольку Nmap отправляет RST-пакет, что предотвращает множественные запросы и сокращает время сканирования.
# Сканирование по умолчанию (требует root)
nmap -sS 192.168.1.1
# SYN-сканирование указанных портов
nmap -sS -p 80,443 192.168.1.1
# Быстрое SYN-сканирование
nmap -sS -T4 192.168.1.1
TCP Connect Scan: nmap -sT
Nmap отправляет TCP-пакет на порт с установленным флагом SYN. Это позволяет пользователю узнать, открыты порты, закрыты они или неизвестны.
# TCP connect scan (root не требуется)
nmap -sT 192.168.1.1
# Connect scan с учетом времени
nmap -sT -T3 192.168.1.1
UDP Scan: nmap -sU
Сканирование UDP-портов на наличие служб.
# UDP-сканирование (медленное, требует root)
nmap -sU 192.168.1.1
# UDP-сканирование распространенных портов
nmap -sU -p 53,67,68,161 192.168.1.1
# Комбинированное TCP/UDP сканирование
nmap -sS -sU -p T:80,443,U:53,161 192.168.1.1
Скрытые сканирования
Продвинутые методы сканирования для обхода.
# FIN scan
nmap -sF 192.168.1.1
# NULL scan
nmap -sN 192.168.1.1
# Xmas scan
nmap -sX 192.168.1.1
Указание портов
Диапазоны портов: nmap -p
Целевые порты, диапазоны или комбинации TCP и UDP портов для более точного сканирования.
# Один порт
nmap -p 80 192.168.1.1
# Несколько портов
nmap -p 22,80,443 192.168.1.1
# Диапазон портов
nmap -p 1-1000 192.168.1.1
# Все порты
nmap -p- 192.168.1.1
Порты, специфичные для протокола
Явное указание TCP или UDP портов.
# Только TCP-порты
nmap -p T:80,443 192.168.1.1
# Только UDP-порты
nmap -p U:53,161 192.168.1.1
# Смешанные TCP и UDP
nmap -p T:80,U:53 192.168.1.1
Наборы распространенных портов
Быстрое сканирование часто используемых портов.
# Топ-1000 портов (по умолчанию)
nmap 192.168.1.1
# Топ-100 портов
nmap --top-ports 100 192.168.1.1
# Быстрое сканирование (100 наиболее распространенных портов)
nmap -F 192.168.1.1
# Показать только открытые порты
nmap --open 192.168.1.1
# Показать все состояния портов
nmap -v 192.168.1.1
Обнаружение служб и версий
Обнаружение служб: nmap -sV
Определите, какие службы запущены, и попытайтесь идентифицировать их программное обеспечение, версии и конфигурации.
# Базовое определение версии
nmap -sV 192.168.1.1
# Агрессивное определение версии
nmap -sV --version-intensity 9 192.168.1.1
# Легкое определение версии
nmap -sV --version-intensity 0 192.168.1.1
# Скрипты по умолчанию с определением версии
nmap -sC -sV 192.168.1.1
Скрипты служб
Использование скриптов для расширенного обнаружения служб.
# Захват баннера
nmap --script banner 192.168.1.1
# Перечисление HTTP-служб
nmap --script http-* 192.168.1.1
Определение операционной системы: nmap -O
Используйте отпечатки TCP/IP для угадывания операционной системы целевых хостов.
# Определение ОС
nmap -O 192.168.1.1
# Агрессивное определение ОС
nmap -O --osscan-guess 192.168.1.1
# Ограничение попыток определения ОС
nmap -O --max-os-tries 1 192.168.1.1
Комплексное обнаружение
Объединение нескольких методов обнаружения.
# Агрессивное сканирование (ОС, версия, скрипты)
nmap -A 192.168.1.1
# Пользовательское агрессивное сканирование
nmap -sS -sV -O -sC 192.168.1.1
Время и производительность
Шаблоны времени: nmap -T
Настройте скорость сканирования и скрытность в зависимости от целевой среды и риска обнаружения.
# Параноидальный (очень медленный, скрытный)
nmap -T0 192.168.1.1
# Скрытный (медленный, скрытный)
nmap -T1 192.168.1.1
# Вежливый (медленнее, меньше пропускной способности)
nmap -T2 192.168.1.1
# Нормальный (по умолчанию)
nmap -T3 192.168.1.1
# Агрессивный (быстрее)
nmap -T4 192.168.1.1
# Безумный (очень быстрый, может пропустить результаты)
nmap -T5 192.168.1.1
Пользовательские опции времени
Тонкая настройка того, как Nmap обрабатывает тайм-ауты, повторные попытки и параллельное сканирование для оптимизации производительности.
# Установить минимальную скорость (пакетов в секунду)
nmap --min-rate 1000 192.168.1.1
# Установить максимальную скорость
nmap --max-rate 100 192.168.1.1
# Параллельное сканирование хостов
nmap --min-hostgroup 10 192.168.1.0/24
# Пользовательский тайм-аут
nmap --host-timeout 5m 192.168.1.1
Nmap Scripting Engine (NSE)
Категории скриптов: nmap --script
Запуск скриптов по категории или имени.
# Скрипты по умолчанию
nmap --script default 192.168.1.1
# Скрипты уязвимостей
nmap --script vuln 192.168.1.1
# Скрипты обнаружения
nmap --script discovery 192.168.1.1
# Скрипты аутентификации
nmap --script auth 192.168.1.1
Конкретные скрипты
Целевые конкретные уязвимости или службы.
# Перечисление SMB
nmap --script smb-enum-* 192.168.1.1
# HTTP методы
nmap --script http-methods 192.168.1.1
# Информация о SSL-сертификате
nmap --script ssl-cert 192.168.1.1
Аргументы скриптов
Передача аргументов для настройки поведения скрипта.
# HTTP brute force с пользовательским списком слов
nmap --script http-brute --script-args
userdb=users.txt,passdb=pass.txt 192.168.1.1
# SMB brute force
nmap --script smb-brute 192.168.1.1
# DNS brute force
nmap --script dns-brute example.com
Управление скриптами
Управление и обновление скриптов NSE.
# Обновить базу данных скриптов
nmap --script-updatedb
# Показать доступные скрипты
ls /usr/share/nmap/scripts/ | grep http
# Получить справку по скрипту
nmap --script-help vuln
Форматы вывода и сохранение результатов
Форматы вывода
Сохранение результатов в различных форматах.
# Обычный вывод
nmap -oN scan_results.txt 192.168.1.1
# Вывод XML
nmap -oX scan_results.xml 192.168.1.1
# Вывод, пригодный для grep
nmap -oG scan_results.gnmap 192.168.1.1
# Все форматы
nmap -oA scan_results 192.168.1.1
Подробный вывод
Управление объемом отображаемой информации.
# Подробный вывод
nmap -v 192.168.1.1
# Очень подробный
nmap -vv 192.168.1.1
# Режим отладки
nmap --packet-trace 192.168.1.1
Возобновление и добавление
Продолжение или добавление к предыдущим сканированиям.
# Возобновить прерванное сканирование
nmap --resume scan_results.gnmap
# Добавить к существующему файлу
nmap --append-output -oN existing_scan.txt 192.168.1.1
Обработка результатов в реальном времени
Объединение вывода Nmap с инструментами командной строки для извлечения полезной информации.
# Извлечь активные хосты
nmap -sn 192.168.1.0/24 | grep "Nmap scan report"
# Найти веб-серверы
nmap -p 80,443 --open 192.168.1.0/24 | grep "open"
# Экспорт в CSV
nmap -oX - 192.168.1.1 | xsltproc --html -
Методы обхода брандмауэра
Фрагментация пакетов: nmap -f
Обход мер безопасности с использованием фрагментации пакетов, подмены IP-адресов и скрытных методов сканирования.
# Фрагментировать пакеты
nmap -f 192.168.1.1
# Пользовательский размер MTU
nmap --mtu 16 192.168.1.1
# Максимальная единица передачи
nmap --mtu 24 192.168.1.1
Сканирование с использованием ложных целей: nmap -D
Скрыть ваше сканирование среди IP-адресов ложных целей.
# Использовать ложные IP-адреса
nmap -D 192.168.1.100,192.168.1.101 192.168.1.1
# Случайные ложные цели
nmap -D RND:5 192.168.1.1
# Смешать реальные и случайные ложные цели
nmap -D 192.168.1.100,RND:3 192.168.1.1
Манипуляции с исходным IP/портом
Подмена исходной информации.
# Подменить исходный IP
nmap -S 192.168.1.100 192.168.1.1
# Пользовательский исходный порт
nmap --source-port 53 192.168.1.1
# Случайная длина данных
nmap --data-length 25 192.168.1.1
Idle/Zombie Scan: nmap -sI
Использование зомби-хоста для сокрытия источника сканирования.
# Zombie scan (требуется активный хост)
nmap -sI zombie_host 192.168.1.1
# Показать кандидатов на idle-хосты
nmap --script ipidseq 192.168.1.0/24
Расширенные опции сканирования
Управление разрешением DNS
Управление тем, как Nmap обрабатывает DNS-запросы.
# Отключить разрешение DNS
nmap -n 192.168.1.1
# Принудительное разрешение DNS
nmap -R 192.168.1.1
# Пользовательские DNS-серверы
nmap --dns-servers 8.8.8.8,1.1.1.1 192.168.1.1
Сканирование IPv6: nmap -6
Используйте эти флаги Nmap для дополнительной функциональности, такой как поддержка IPv6.
# Сканирование IPv6
nmap -6 2001:db8::1
# Сканирование сети IPv6
nmap -6 2001:db8::/32
Управление интерфейсом и маршрутизацией
Управление сетевым интерфейсом и маршрутизацией.
# Указать сетевой интерфейс
nmap -e eth0 192.168.1.1
# Вывести информацию об интерфейсе и маршрутах
nmap --iflist
# Трассировка маршрута
nmap --traceroute 192.168.1.1
Прочие опции
Дополнительные полезные флаги.
# Вывести версию и выйти
nmap --version
# Отправка на уровне ethernet
nmap --send-eth 192.168.1.1
# Отправка на уровне IP
nmap --send-ip 192.168.1.1
Примеры из реальной жизни
Рабочий процесс обнаружения сети
Полный процесс перечисления сети.
# Шаг 1: Обнаружение активных хостов
nmap -sn 192.168.1.0/24
# Шаг 2: Быстрое сканирование портов
nmap -sS -T4 --top-ports 1000 192.168.1.0/24
# Шаг 3: Детальное сканирование интересных хостов
nmap -sS -sV -sC -O 192.168.1.50
# Шаг 4: Комплексное сканирование
nmap -p- -A -T4 192.168.1.50
Оценка веб-сервера
Фокусировка на веб-службах и уязвимостях.
# Поиск веб-серверов
nmap -sS -p 80,443,8080,8443 --open 192.168.1.0/24
# Перечисление HTTP-служб
nmap -sS -sV --script http-* 192.168.1.50
# Проверка на распространенные уязвимости
nmap --script vuln -p 80,443 192.168.1.50
Перечисление SMB/NetBIOS
Пример ниже перечисляет Netbios в целевых сетях.
# Обнаружение служб SMB
nmap -sV -p 139,445 192.168.1.0/24
# Обнаружение имен NetBIOS
nmap -sU --script nbstat -p 137 192.168.1.0/24
# Скрипты перечисления SMB
nmap --script smb-enum-* -p 445 192.168.1.50
# Проверка уязвимостей SMB
nmap --script smb-vuln-* -p 445 192.168.1.50
Оценка скрытности
Низкопрофильная разведка.
# Ультра-скрытное сканирование
nmap -sS -T0 -f --data-length 200 -D RND:10 192.168.1.1
# Фрагментированное SYN-сканирование
nmap -sS -f --mtu 8 -T1 192.168.1.1
Оптимизация производительности
Стратегии быстрого сканирования
Оптимизация скорости сканирования для больших сетей.
# Быстрый сетевой проход
nmap -sS -T4 --min-rate 1000 --max-retries 1
192.168.1.0/24
# Параллельное сканирование хостов
nmap --min-hostgroup 50 --max-hostgroup 100
192.168.1.0/24
# Пропустить медленные операции
nmap -sS -T4 --defeat-rst-ratelimit 192.168.1.0/24
Управление памятью и ресурсами
Контроль использования ресурсов для стабильности.
# Ограничить параллельные зонды
nmap --max-parallelism 10 192.168.1.0/24
# Управление задержками сканирования
nmap --scan-delay 100ms 192.168.1.1
# Установить тайм-аут хоста
nmap --host-timeout 10m 192.168.1.0/24