nmap (Network Mapper)
Установка в Linux Ubuntu/Debian:
sudo apt-get install nmap
Примеры запуска:
nmap -v -sP 192.168.1.1/24 10.0.0.0/16 nmap -v -sP 192.168.1.1/24 10.0.0.0/16 | grep down nmap -v -A scanme.nmap.org nmap -v -iR 10000 -PN -p 80
Команда помощи:
man nmap
Ключи запуска.
Определение цели:
-iL <имя_входного_файла>: Использовать список хостов/сетей из файла
-iR <количество_хостов>: Выбрать произвольные цели
—exclude <хост1[,хост2][,хост3],...>: Исключить хосты/сети
—excludefile <имя_файла>: Исключить список из файла
Поиск хостов:
-sL: Сканирование с целью составления списка
-sP: Пинг сканирование
-PN: Расценивать все хосты как работающие, пропустить обнаружение хостов
-PS/PA/PU [список_портов]: TCP SYN/ACK или UDP пингование заданных хостов
-PE/PP/PM: Пингование с использованием ICMP эхо запросов, запросов временной метки и сетевой маски
-PO [список_протоколов]: Пингование с использованием IP протокола
-n/-R: Никогда не производить DNS разрешение/Всегда производить разрешение [по умолчанию: иногда]
—dns-servers <сервер1[,сервер2],...>: Задать собственные DNS сервера
—system-dns: Использовать системный DNS преобразователь
Приемы сканирования:
-sS/sT/sA/sW/sM: TCP SYN/с использованием системного вызова Connect()/ACK/Window/Maimon сканирования
-sU: UDP сканирование
-sN/sF/sX: TCP Null, FIN и Xmas сканирования
—scanflags <флаги>: Задать собственные TCP флаги
-sI <зомби_хост[:порт]>: «Ленивое» (Idle) сканирование
-sO: Сканирование IP протокола
-b
—traceroute: Отслеживать путь к хосту
—reason: Выводить причину нахождения порта в определенном состоянии
Определение портов и порядка сканирования:
-p <диапазон_портов>: Сканирование определенных портов. Пример: -p22; -p1-65535; -p U:53,111,137,T:21-25,80,139,8080
-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-trace: Выводить все полученные и отправленные данные
—script-updatedb: Обновить базу данных скриптов
Определение ОС:
-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 <номер_порта>: Использовать заданный номер порта
—data-length <число>: Добавить произвольные данные к посылаемым пакетам
—ip-options <опции>: Посылать пакет с заданным ip опциями
—ttl <значение>: Установить IP поле time-to-live (время жизни)
—spoof-mac
—badsum: Посылать пакеты с фиктивными TCP/UDP контрольными суммами
Вывод результатов:
-oN/-oX/-oS/-oG <файл>: Выводить результаты нормального, XML, s|
-v: Увеличить уровень вербальности (задать дважды или более для увеличения эффекта)
-d[уровень]: Увеличить или установить уровень отладки (до 9)
—open: Показывать только открытые (или возможно открытые) порты
—packet-trace: Отслеживание принятых и переданных пакетов
—iflist: Вывести список интерфейсов и роутеров (для отладки)
—log-errors: Записывать ошибки/предупреждения в выходной файл нормального режима
—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: Вывести эту страницу помощи
Официальное руководство http://nmap.org/man/ru/
Графический интерфейс — NmapSI4.