Nmap

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