Nmap (Network Mapper) — это мощный и гибкий инструмент с открытым исходным кодом для исследования сетей и проведения аудита безопасности. Этот сканер широко используется специалистами по безопасности, системными администраторами и тестировщиками на проникновение для сбора информации об активных хостах в сети, открытых портах, используемых приложениях, возможных уязвимостях и других аспектах, связанных с сетевой безопасностью.
Nmap имеет ряд основных функций:
1.Обнаружение активных хостов: Nmap может определить, какие хосты доступны в сети, чтобы исследовать их порты и сервисы.
2.Сканирование портов: Определяет открытые порты на хосте, что позволяет определить статус атакованной службы или системы.
3.Определение используемых сервисов и их версий: Nmap может определить сервисы, работающие на определенных портах, и их версии, что может быть полезно для поиска уязвимостей.
4.Определение операционной системы: Nmap может анализировать Fingerprint и определить, какая операционная система работает на определенном хосте.
5.Скрипты NSE (Nmap Scripting Engine): Расширяемый механизм скриптов позволяет создавать и использовать сценарии для автоматизации особых аспектов сканирования и определения уязвимостей.
Справка по Nmap
ОПРЕДЕЛЕНИЕ ЦЕЛИ СКАНИРОВАНИЯ: Можно использовать сетевые имена, IP адреса, сети и т.д. Пример: scanme.nmap.org, microsoft.com/24, 192.168.0.1; 10.0.0-255.1-254 -iL <имя_входного_файла>: Использовать список хостов/сетей из файла -iR <количество_хостов>: Выбрать произвольные цели --exclude <хост1[,хост2][,хост3],...>: Исключить хосты/сети --excludefile <имя_файла>: Исключить список из файла ОБНАРУЖЕНИЕ ХОСТОВ: -sL: Сканирование с целью составления списка - просто составить список целей для сканирования -sn: Пинг сканирование - отключить сканирование портов -Pn: Рассматривать все хосты будто бы они онлайн -- пропустить обнаружение хостов -PS/PA/PU/PY[список_портов]: TCP SYN/ACK, UDP или SCTP обнаружение данных портов пингование заданных портов -PE/PP/PM: Пингование с использованием ICMP эхо запросов, запросов временной метки и сетевой маски -PO[список_протоколов]: Пингование с использованием IP протокола -n/-R: Никогда не производить DNS разрешение/Всегда производить разрешение [по умолчанию: иногда] --dns-servers <сервер1[,сервер2],...>: Задать собственные DNS сервера --system-dns: Использовать системный DNS преобразователь --traceroute: Отслеживать путь к хосту РАЗЛИЧНЫЕ ПРИЕМЫ СКАНИРОВАНИЯ: -sS/sT/sA/sW/sM: TCP SYN/с использованием системного вызова Connect()/ACK/Window/Maimon сканирования -sU: UDP сканирование -sN/sF/sX: TCP Null, FIN и Xmas сканирования --scanflags <флаги>: Задать собственные TCP флаги -sI <зомби_хост[:порт]>: "Ленивое" (Idle) сканирование -sY/sZ: SCTP INIT/COOKIE-ECHO сканирования -sO: Сканирование IP протокола -b: FTP bounce сканирование ОПРЕДЕЛЕНИЕ ПОРТОВ И ПОРЯДКА СКАНИРОВАНИЯ: -p <диапазон_портов>: Сканирование только определенных портов Пример: -p22; -p1-65535; -p U:53,111,137,T:21-25,80,139,8080,S:9 --exclude-ports : Exclude the specified ports from scanning -F: Быстрый режим - Сканировать меньше портов чем при сканировании по умолчанию -r: Сканировать порты последовательно - не использовать случайный порядок портов --top-ports <количество_портов>: Сканировать <количество_портов> наиболее распространенных портов --port-ratio <рейтинг>: Сканировать порты с рейтингом большим чем <рейтинг> ОПРЕДЕЛЕНИЕ СЛУЖБ И ИХ ВЕРСИЙ: -sV: Исследовать открытые порты для определения информации о службе/версии --version-intensity <уровень>: Устанавливать от 0 (легкое) до 9 (пробовать все запросы) --version-light: Ограничиться наиболее легкими запросами (интенсивность 2) --version-all: Использовать каждый единичный запрос (интенсивность 9) --version-trace: Выводить подробную информацию о процессе сканирования (для отладки) СКАНИРОВАНИЕ С ИПОЛЬЗОВАНИЕМ СКРИПТОВ: -sC: эквивалентно опции --script=default --script= : это разделенный запятыми список директорий, файлов скриптов или категорий скриптов --script-args=<имя1=значение1,[имя2=значение2,...]>: Передача аргументов скриптам --script-args-file=имя_файла: передать скрипту NSE аргументы в файле --script-trace: Выводить все полученные и отправленные данные --script-updatedb: Обновить базу данных скриптов. --script-help= : Показать помощь о скриптах. разделённый запятой список файлов скриптов или категорий скриптов. ОПРЕДЕЛЕНИЕ ОС: -O: Активировать функцию определения ОС --osscan-limit: Использовать функцию определения ОС только для "перспективных" хостов --osscan-guess: Угадать результаты определения ОС ОПЦИИ УПРАВЛЕНИЯ ВРЕМЕНЕМ И ПРОИЗВОДИТЕЛЬНОСТЬЮ: Опции, принимающие аргумент <время>, задаются в миллисекундах, пока вы не добавите 's' (секунды), 'm' (минуты), или 'h' (часы) к значению (напр. 30m). -T[0-5]: Установить шаблон настроек управления временем (больше - быстрее) --min-hostgroup/max-hostgroup <кол_хостов>: Установить размер групп для параллельного сканирования --min-parallelism/max-parallelism <кол_хостов>: Регулирует распараллеливание запросов --min-rtt-timeout/max-rtt-timeout/initial-rtt-timeout <время>: Регулирует время ожидания ответа на запрос --max-retries <количество_попыток>: Задает максимальное количество повторных передач запроса --host-timeout <время>: Прекращает сканирование медленных целей --scan-delay/--max-scan-delay <время>: Регулирует задержку между запросами --min-rate <число>: Посылать запросы с интенсивностью не меньше чем <число> в секунду --max-rate <число>: Посылать запросы с интенсивностью не больше чем <число> в секунду ОБХОД ФАЙЕРВОЛОВ/IDS И СПУФИНГ: -f; --mtu <значение>: Фрагментировать пакеты (опционально с заданным значениме MTU) -D <фикт_хост1,фикт_хост2[,ME],...>: Маскировка сканирования с помощью фиктивных хостов -S : Изменить исходный адрес -e <интерфейс>: Использовать конкретный интерфейс -g/--source-port <номер_порта>: Использовать заданный номер порта --proxies : Переправлять подключения через прокси HTTP/SOCKS4 --data : Append a custom payload to sent packets --data-string : Дописать пользовательскую ASCII строку к отправляемым пакетам --data-length <число>: Добавить произвольные данные к посылаемым пакетам --ip-options <опции>: Посылать пакет с заданным ip опциями --ttl <значение>: Установить IP поле time-to-live (время жизни) --spoof-mac : Задать собственный MAC адрес --badsum: Посылать пакеты с фиктивными TCP/UDP контрольными суммами ВЫВОД РЕЗУЛЬТАТОВ: -oN/-oX/-oS/-oG <файл>: Выводить результаты нормального, XML, s| : Использовать сразу три основных формата вывода -v: Увеличить уровень вербальности (используйте -vv или более для усиления эффекта) -d: Увеличить уровень отладки (используйте -dd или более для усиления эффекта) --reason: Отобразить причину, по которой порт в конкретном состоянии --open: Показывать только открытые (или возможно открытые) порты --packet-trace: Отслеживание принятых и переданных пакетов --iflist: Вывести список интерфейсов и роутеров (для отладки) --append-output: Добавлять в конец, а не перезаписывать выходные файлы --resume <имя_файла>: Продолжить прерванное сканирование --stylesheet <путь/URL>: Устанавливает XSL таблицу стилей для преобразования XML вывода в HTML --webxml: Загружает таблицу стилей с Nmap.Org --no-stylesheet: Убрать объявление XSL таблицы стилей из XML РАЗЛИЧНЫЕ ОПЦИИ: -6: Включить IPv6 сканирование -A: Активировать функции определения ОС и версии, сканирование с использованием скриптов и трассировку --datadir <имя_директории>: Определяет место расположения файлов Nmap --send-eth/--send-ip: Использовать сырой уровень ethernet/IP --privileged: Подразумевать, что у пользователя есть все привилегии --unprivileged: Подразумевать, что у пользователя нет привилегий для использования сырых сокетов -V: Вывести номер версии -h: Вывести эту страницу помощи. ПРИМЕРЫ: nmap -v -A scanme.nmap.org nmap -v -sn 192.168.0.0/16 10.0.0.0/8 nmap -v -iR 10000 -Pn -p 80