Шпаргалка по 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?
Сканирует 1000 наиболее распространенных TCP-портов
Сканирует все 65535 портов
Выполняет только обнаружение хостов
Сканирует только порт 80

Сканирование диапазона сети

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?
Выполняет только обнаружение хостов, без сканирования портов
Сканирует все порты на цели
Выполняет скрытое сканирование
Сканирует только UDP-порты

Методы 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
Викторина

Войдите в систему, чтобы ответить на эту викторину и отслеживать свой прогресс обучения

Почему вы можете использовать UDP ping вместо ICMP ping?
UDP ping всегда быстрее
Некоторые сети блокируют ICMP, но разрешают UDP-пакеты
UDP ping автоматически сканирует порты
UDP ping работает только в локальных сетях
# UDP ping на порты по умолчанию nmap -PU 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

Связанные ссылки