WikiSort.ru - Программирование

ПОИСК ПО САЙТУ | о проекте

Nmap Security Scanner

Результаты сканирования NMap
Тип Компьютерная безопасность, Управление компьютерной сетью
Разработчик Fyodor (Gordon Lyon)
Написана на Си, C++, Python
Операционная система Linux, Microsoft Windows, macOS, FreeBSD, NetBSD, OpenBSD и Solaris
Первый выпуск 1 сентября 1997[1]
Аппаратная платформа CLI, GTK
Последняя версия
Лицензия GNU GPL 2
Сайт nmap.org
 Nmap Security Scanner на Викискладе

Nmap — свободная утилита, предназначенная для разнообразного настраиваемого сканирования IP-сетей с любым количеством объектов, определения состояния объектов сканируемой сети (портов и соответствующих им служб). Изначально программа была реализована для систем UNIX, но сейчас доступны версии для множества операционных систем.

Nmap использует множество различных методов сканирования, таких как UDP, TCP (connect), TCP SYN (полуоткрытое), FTP-proxy (прорыв через ftp), Reverse-ident, ICMP (ping), FIN, ACK, Xmas tree, SYN- и NULL-сканирование. Nmap также поддерживает большой набор дополнительных возможностей, а именно: определение операционной системы удалённого хоста с использованием отпечатков стека TCP/IP, «невидимое» сканирование, динамическое вычисление времени задержки и повтор передачи пакетов, параллельное сканирование, определение неактивных хостов методом параллельного ping-опроса, сканирование с использованием ложных хостов, определение наличия пакетных фильтров, прямое (без использования portmapper) RPC-сканирование, сканирование с использованием IP-фрагментации, быстрый поиск уязвимостей SQL Injection[3], а также произвольное указание IP-адресов и номеров портов сканируемых сетей.

В последних версиях добавлена возможность написания произвольных сценариев (скриптов) на языке программирования Lua - Nmap Scripting Engine (NSE).

Существуют графические интерфейсы, упрощающие выполнение задач сканирования:

Использование утилиты

Использование утилиты:

nmap [Тип(ы) Сканирования] [Опции] {цель сканирования}[4]

Сводка опций утилиты

Утилита предлагает различные опции для проведения сканирований[4]:

Определение цели сканирования:

-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 <FTP_хост>: FTP bounce сканирование

--traceroute: Отслеживать путь к хосту

--reason: Выводить причину нахождения порта в определенном состоянии

Определение портов и порядка сканирования:

-p <диапазон_портов>: Сканирование только определенных портов

-F: Быстрое сканирование - Сканирование ограниченного количества портов

-r: Сканировать порты последовательно - не использовать случайный порядок портов

--top-ports <количество_портов>: Сканировать <количество_портов> наиболее распространенных портов

--port-ratio <рейтинг>: Сканировать порты с рейтингом большим чем <рейтинг>

Определение служб и их версий:

-sV: Исследовать открытые порты для определения информации о службе/версии

--version-intensity <уровень>: Устанавливать от 0 (легкое) до 9 (пробовать все запросы)

--version-light: Ограничиться наиболее легкими запросами (интенсивность 2)

--version-all: Использовать каждый единичный запрос (интенсивность 9)

--version-trace: Выводить подробную информацию о процессе сканирования (для отладки)

Сканирование с использованием скриптов:

-sC: эквивалентно опции --script=default

--script=<Lua скрипты>: <Lua скрипты> это разделенный запятыми список директорий, файлов скриптов или категорий скриптов

--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 <IP_адрес>: Изменить исходный адрес

-e <интерфейс>: Использовать конкретный интерфейс

-g/--source-port <номер_порта>: Использовать заданный номер порта

--data-length <число>: Добавить произвольные данные к посылаемым пакетам

--ip-options <опции>: Посылать пакет с заданным ip опциями

--ttl <значение>: Установить IP поле time-to-live (время жизни)

--spoof-mac <MAC_адрес/префикс/название производителя>: Задать собственный MAC адрес

--badsum: Посылать пакеты с фиктивными TCP/UDP контрольными суммами

Вывод результатов:

-oN/-oX/-oS/-oG <файл>: Выводить результаты нормального, XML, s|<rIpt kIddi3, и Grepable формата вывода, соответственно, в заданный файл

-oA <базовове_имя_файла>: Использовать сразу три основных формата вывода

-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: Вывести эту страницу помощи

Определение цели сканирования

В командной строке утилиты "Nmap" все, что не является опцией (или аргументом опции), рассматривается как цель сканирования. В простейшем случае для сканирования используется IP адрес или сетевое имя целевой машины[5].

Сканирование целевой сети[5]

Иногда необходимо просканировать целую сеть. Для этого Nmap поддерживает CIDR адресацию. Вы можете добавить /<кол-во бит> к IP адресу или сетевому имени и утилита "Nmap" просканирует каждый IP адрес, для которого первые <кол-во бит> такие же как и у заданного хоста.

Например, 192.168.10.0/24 просканирует 256 хостов между 192.168.10.0 (бинарное: 11000000 10101000 00001010 00000000) и 192.168.10.255 (бинарное: 11000000 10101000 00001010 11111111) включительно. 192.168.10.40/24 сделает абсолютно то же самое.

Зная, что IP адрес scanme.nmap.org 64.13.134.52, при записи типа scanme.nmap.org/16 будет произведено сканирование 65,536 IP адресов между 64.13.0.0 и 64.13.255.255.

Наименьшее допустимое значение /0, при котором будет просканирован весь Интернет.

Наибольшее значение /32, при котором будет просканирован только заданный хост или IP адрес, т.к. все адресные биты заблокированы.

Примеры использования утилиты

Самая простая команда для использования утилиты - запуск сканироваия определенного IP адреса:

nmap 127.0.0.1

Следующей командой будут просканированы все TCP порты машины scanme.nmap.org . Опция -v активирует вербальный режим[6]:

nmap -v scanme.nmap.org

Следующей командой будет произведено скрытное SYN сканирование всех 255 машин сети «класса C», в которой расположена машина Scanme. Также будет произведена попытка определения операционной системы на каждом работающем хосте. Из-за SYN сканирования и опции определения ОС данная команда требует привилегий суперпользователя (root)[6]:

nmap -sS -O scanme.nmap.org/24

Следующей командой будет запущен перебор хостов и TCP сканирование первой половины всех (из доступных 255) 8 битных подсетей адресного пространства 198.116 класса B. Также утилита с помощью команды проверяет запущены ли SSH, DNS, POP3 или IMAP с использованием их стандартных портов, а также использует ли какое-нибудь приложение порт 4564. Если какой-нибудь из этих портов открыт, то утилитой будет произведена попытка определения работающего с этим портом приложения[6]:

nmap -sV -p 22,53,110,143,4564 198.116.0-255.1-127

Проникновение в культуру

Утилита nmap появляется на экране в фильмах:

См. также

Примечания

  1. http://phrack.org/issues/51/11.html#article
  2. Nmap Change Log
  3. Николай Дубков. Поиск SQL Injection с помощью Nmap (5 августа 2016).
  4. 1 2 Сводка опций |. nmap.org. Проверено 8 февраля 2019.
  5. 1 2 Определение цели сканирования |. nmap.org. Проверено 19 февраля 2019.
  6. 1 2 3 Примеры |. nmap.org. Проверено 18 февраля 2019.
  7. Movies featuring the Nmap Security Scanner  (англ.)

Ссылки

Данная страница на сайте WikiSort.ru содержит текст со страницы сайта "Википедия".

Если Вы хотите её отредактировать, то можете сделать это на странице редактирования в Википедии.

Если сделанные Вами правки не будут кем-нибудь удалены, то через несколько дней они появятся на сайте WikiSort.ru .




Текст в блоке "Читать" взят с сайта "Википедия" и доступен по лицензии Creative Commons Attribution-ShareAlike; в отдельных случаях могут действовать дополнительные условия.

Другой контент может иметь иную лицензию. Перед использованием материалов сайта WikiSort.ru внимательно изучите правила лицензирования конкретных элементов наполнения сайта.

2019-2024
WikiSort.ru - проект по пересортировке и дополнению контента Википедии