From 991fc4eef37c3c41c6236b5c4cdee3842e29ce30 Mon Sep 17 00:00:00 2001 From: fyodor Date: Fri, 29 Mar 2019 21:56:11 +0000 Subject: [PATCH] Update russion man page source with some fixes by Hackcat Dev (hackcat.dev at gmail) --- docs/man-xlate/nmap-man-ru.xml | 7305 ++++++++++++++++---------------- 1 file changed, 3656 insertions(+), 3649 deletions(-) diff --git a/docs/man-xlate/nmap-man-ru.xml b/docs/man-xlate/nmap-man-ru.xml index 879c428b7..475fa5cb7 100644 --- a/docs/man-xlate/nmap-man-ru.xml +++ b/docs/man-xlate/nmap-man-ru.xml @@ -1,3649 +1,3656 @@ - - -
- - Справочное руководство Nmap (Man Page) - -man pagereference guide -reference guide (man page) - - - nmap - 1 - - - nmap - Утилита для исследования сети и сканер портов - - - - - nmap - - Тип сканирования - - - Опции - - - цель сканирования - - - - - Описание - Nmapdescription of - - - Этот документ описывает версию Nmap 4.22SOC8. Последняя документация - доступна на английском языке в - . - - Nmap (Network Mapper) это утилита с открытым исходным кодом для исследования сети и - проверки безопасности. Она была разработана для быстрого сканирования больших сетей, хотя прекрасно справляется - и с единичными целями. Nmap использует сырые IP пакеты оригинальными способами, чтобы определить какие хосты - доступны в сети, какие службы (название приложения и версию) они предлагают, какие операционные системы (и версии - ОС) они используют, какие типы пакетных фильтров/брандмауэров используются и еще дюжины других характеристик. - В тот время как Nmap обычно используется для проверки безопасности, многие сетевые и системные администраторы - находят ее полезной для обычных задач, таких как контролирование структуры сети, управление расписаниями запуска - служб и учет времени работы хоста или службы. - - Выходные данные Nmap это список просканированных целей с дополнительной информацией по каждой в зависимости - от заданных опций. Ключевой информацией является таблица важных портов.ports“interesting” - Эта таблица содержит номер порта, протокол, имя службы и состояние. Состояние может иметь значение - open (открыт), filtered (фильтруется), - closed (закрыт) или unfiltered (не - фильтруется). - Открытopen port state - означает, что приложение на целевой машине готово для установки соединения/принятия пакетов на этот порт. - Фильтруетсяfiltered port state - означает, что брандмауэр, сетевой фильт или какая-то другая помеха в сети блокирует порт, и Nmap не может установить - открыт этот порт или закрыт. - Закрытыеclosed port state - порты не связаны ни с каким приложение, так что они могут быть открыты в любой момент. Порты расцениваются как - не фильтрованныеunfiltered port state, когда они отвечают на запросы Nmap, но Nmap не может определить открыты они или закрыты. Nmap выдает комбинации - открыт|фильтруетсяopen|filtered port state - и закрыт|фильтруетсяclosd|filtered port state, когда не может определить, какое из этих двух - состояний описывает порт. Эта таблица также может предоставлять детали о версии программного обеспечения, если это - было запрошено. Когда осуществляется сканирование по IP протоколу (), Nmap предоставляет - информацию о поддерживаемых IP протоколах, а не об открытых портах. - - В дополнение к таблице важных портов Nmap может предоставлять дальнейшую информацию о целях: преобразованные - DNS имена, предположение о используемой операционной системе, типы устройств и MAC адреса. - - Типичное сканирование с использованием Nmap показано в . Единственные аргументы, использованные в этом примере это , для определения версии ОС, - сканирования с использованием скриптов и трассировки; для более быстрого выполнения; затем - два целевых хоста. - -Типичный пример сканирования с помощью Nmap -example of - -# nmap -A -T4 scanme.nmap.org playground - -Starting Nmap ( https://nmap.org ) -Interesting ports on scanme.nmap.org (64.13.134.52): -(The 1663 ports scanned but not shown below are in state: filtered) -PORT STATE SERVICE VERSION -22/tcp open ssh OpenSSH 3.9p1 (protocol 1.99) -53/tcp open domain -70/tcp closed gopher -80/tcp open http Apache httpd 2.0.52 ((Fedora)) -113/tcp closed auth -Device type: general purpose -Running: Linux 2.4.X|2.5.X|2.6.X -OS details: Linux 2.4.7 - 2.6.11, Linux 2.6.0 - 2.6.11 - -Interesting ports on playground.nmap.org (192.168.0.40): -(The 1659 ports scanned but not shown below are in state: closed) -PORT STATE SERVICE VERSION -135/tcp open msrpc Microsoft Windows RPC -139/tcp open netbios-ssn -389/tcp open ldap? -445/tcp open microsoft-ds Microsoft Windows XP microsoft-ds -1002/tcp open windows-icfw? -1025/tcp open msrpc Microsoft Windows RPC -1720/tcp open H.323/Q.931 CompTek AquaGateKeeper -5800/tcp open vnc-http RealVNC 4.0 (Resolution 400x250; VNC port: 5900) -5900/tcp open vnc VNC (protocol 3.8) -MAC Address: 00:A0:CC:63:85:4B (Lite-on Communications) -Device type: general purpose -Running: Microsoft Windows NT/2K/XP -OS details: Microsoft Windows XP Pro RC1+ through final release -Service Info: OSs: Windows, Windows XP - -Nmap finished: 2 IP addresses (2 hosts up) scanned in 88.392 seconds - - - -Самую новую версию Nmap можно скачать с . Самая новая версия страницы справки Nmap - (man page) расположена на . - - - - - - Замечания о переводе - - Гуз Александр (Guz Alexander) kalimatas@gmail.com - Этот русский вариант Справочного Руководства Nmap является переводом версии 6184 оригинальной английской версии. Хотя я надеюсь, что данный перевод - сделает Nmap более доступной для русскоязычных пользователей, я не могу гарантировать, что он является полным или - является перевод последней официальной английской версии. Эта работа может модифицироваться или распространяться - на основе лицензии Creative - Commons Attribution License. - - - - - - Сводка опций - -Эта сводка опций выводится на экран, когда Nmap запускается без каких-либо опций; последняя версия всегда доступна -здесь . -Это помогает людям запомнить наиболее употребляемые опции, но это сводка не может быть заменой документации, -предоставленной в данном руководстве. Некоторые опции даже не включены в этот список. - - - -summary of options -command-line optionsof Nmap - - -Nmap 4.76 ( https://nmap.org ) -Использование: 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: Сканирование с целью составления списка - просто составить список целей для сканирования - -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 <диапазон_портов>: Сканирование только определенных портов - Пример: -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=<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 -v -A scanme.nmap.org - nmap -v -sP 192.168.0.0/16 10.0.0.0/8 - nmap -v -iR 10000 -PN -p 80 -ДЛЯ СПРАВКИ ПО ДРУГИМ ОПЦИЯМ, ОПИСАНИЙ И ПРИМЕРОВ СМОТРИТЕ MAN СТРАНИЦУ - - - - - - - - - - - Определение цели сканирования - target specification - -В командной строке Nmap все, что не является опцией (или аргументом опции), рассматривается как цель -сканирования. В простейшем случае для сканирования используется IP адрес или сетевое имя целевой машины. - -Иногда необходимо просканировать целую сеть. Для этого Nmap поддерживает CIDR адресацию. CIDR (Classless Inter-Domain Routing) -Вы можете добавить -/кол-во бит к 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 адрес, т.к. все адресные биты заблокированы. - -address ranges -CIDR нотация коротка, однако не всегда достаточно гибка. Например, вы хотите просканировать -192.168.0.0/16, но пропустить все IP-ки оканчивающиеся на .0 или .255, т.к. обычно это широковещательные адреса. -Nmap может осуществить такое сканирование путем задания диапазонов в октетах. Вместо определния обычного IP адреса, вы -можете определить для каждого октета либо разделенный запятыми список чисел, либо диапазон. Например, -192.168.0-255.1-254 пропустит все адреса в диапазоне оканчивающиеся на .0 и .255. Диапазоны не обязательно задавать -только в последних октетах: при записи 0-255.0-255.13.37 будет произведено сканирование всех адресов в Интернете -оканчивающихся на 13.37. Такой тип сканирования может быть полезен для обозрения просторов Интернета и различных -исследований. - -IPv6 адреса могут быть определны только в форме, полностью соответствующей правильной форме записи IPv6 адресов. -CIDR и использование диапазонов в октетах не применимо к IPv6 адресам, т.к. они редко используются. - -Вы можете передавать в командной строке Nmap различные варианты определения целей, не обязательно одного типа. -Команда nmap -scanme.nmap.org 192.168.0.0/16 10.0.0,1,3-7.0-255 сделает то, что вы ожидаете. - -Цели сканирования обычно задаются в командной строке, и существуют различные опции контроля выбора целей: - - - - - (Ввод из списка) - - target specificationfrom list - - - Считывает цели из имя_файла. Хотя передача большого списка хостов для - сканирования является обычным явлением, это не удобно. Например, ваш DHCP сервер передают вам список из - 10,000 используемых им на данный момент адресов, и вы хотите его просканировать. Или, возможно, вы хотите - просканировать все IP адреса, кроме переданных им, чтобы выявить несанкционированное - использование статических IP адресов. Просто сгенерируйте список хостов для сканирования и передайте - имя файла в Nmap как аргумент для опции. Записи в файле могут находиться в любой - приемлимой для Nmap форме (IP адреса, сетевые имена, CIDR, IPv6, или диапазоны в октетах). Каждая запись - должна быть отделена пробелом или несколькими, символами табуляции или символами перехода на новую строку. - Вы можете передать в качестве аргумента дефис(-) как имя файла, если - хотите, чтобы Nmap считывала список хостов из стандартного ввода, а не из файла. - - - - - - (Выбирает произвольные цели) - - random targets - target specificationat random - - - Для сканирования в пределах всего Интернета или каких-либо исследований, вам, возможно, понадобится - выбрать цели произвольно. Аргумент кол-во хостов определяет сколько необходимо - сгенерировать IP адресов. Неподходящие IP адреса, такие как частные, широковещательные или нелокализованные - диапазоны адресов автоматически пропускаются. Аргумент 0 может быть - передан для бесконечного сканирования. Имейте в виду, что некоторым системным администраторам может не - понравиться неразрешенное сканирование их сетей и они могут пожаловаться. Используйте эту опцию на свой страх - и риск! Если в дождливый денек вам будет скучно, попробуйте команду - nmap -sS -PS80 -iR 0 -p 80 - example of - example of - example of - для сканирования произвольных веб-серверов. - - - - - - (Исключить хосты/сети) - - excluding targets - - - Определяет разделенный запятыми список целей, которые необходимо исключить из сканирования, даже если - они являются частью заданного вами диапазона сканирования. Передаваемый список использует стандартный - синтаксис Nmap, поэтому может содержать сетевые имена, CIDR адресацию, диапазоны в октетах и т.д. Эта - опция может быть полезна, если сеть, которую вы хотите просканировать, содержит сервера или системы, - негативно реагирующие на сканирование портов, или подсети, администрируемые другими людьми. - - - - - - (Исключить список из файла) - - - - Эта опция делает то же самое, что и , за исключением того, что цели для - исключения находятся в разделенном пробелами, символами табуляции или символами перехода на новую строку - файле, а не в командной строке. - - - - - - - Обнаружение хостов - host discovery - - Одна из первейших задач при исследовании любой сети это сократить (иногда довольно большой) набор IP диапазонов - до списка активных или интересных хостов. Сканирование каждого порта каждого IP адреса медленно и необязательно. - Конечно же то, что делает хост интересным для исселедования во многом определяется целями сканирования. Сетевые - администраторы возможно будут заинтересованы только в хостах, на которых запущена определенная служба, в то время - как тем, кого интересует безопасность, будут интересны все устройства с IP адресами. Задачи администраторов по - обнаружению работающих хостов в сети могут быть удовлетворены обычным ICMP пингом, людям же, которые тестируют - способность сети противостоять атакам из вне, необходимо использовать разнообразные наборы запросов с целью обхода - брандмауэра. - - Посколько задачи требующие обнаружения хостов столь различны, Nmap предоставляет большое разнообразие опций - для различных методов. Задачу обнаружения хостов иногда называют пинг сканированием (ping scan), однако она намного - превосходит использование обычных ICMP запросов ассоциирующихся с вездесущими - ping утилитами. Пользователи могут полностью пропустить шаг пинг - сканирования с помощью опции сканирования с целью составления списка () или просто отключив его - (), или сканировать сеть с помощью произвольных комбинаций мультипортовых TCP SYN/ACK, UDP и - ICMP запросов. Целью всех этих запросов является получение ответов, указывающих, что IP адрес в настоящее время - активен (используется хостом или сетевым устройством). В большинстве сетей лишь небольшой процент IP адресов - активен в любой момент времени. Это особенно характерно для адресных пространств вида 10.0.0.0/8. Такие сети - имеют 16 млн. IP адресов, но я видел, как они используются компаниями, в которых не более тысячи машин. Функция - обнаружения хостов может найти эти машины в этом необъятном море IP адресов. - - Если не задано никаких опций обнаружения хостов, то Nmap посылает TCP ACK пакет на порт 80 и запрос на ICMP - эхо ответ кажодй целевой машине. Исключение составляет ARP сканировании всех целей в сети. Для непривилегированных - пользователей Unix оболочки, вместо ACK пакета посылается SYN используя системный вызов - connectunprivileged userslimitations of - Эти умолчания равнозначны опциям . Такое сканирование достаточно для локальных сетей, - но для исследования безопасности необходимо использовать более сложные наборы запросов. - - - Опции (определяющие тип пинг сканирования) могут комбинироваться. Вы можете увеличить - шансы обхода строго брандмауэра посылая множество запросов различных типов, используя различные TCP порты/флаги и - ICMP коды. Также имейте в виду, что даже если вы определите различные опции, по умолчанию - применительно к целям локальной сети будет производиться и ARP сканирование - (), т.к. - оно почти всегда быстрее и более эффективно. - - По умолчанию после обнаружения хостов Nmap начинает сканирование портов каждой активной машины. Так будет, - даже если вы укажите на использование нестандартных методов обнаружения хостов, например, с использованием - UDP запросов (). Прочтите об опции , чтобы узнать, как выполнить только - обнаружение хостов, или используйте опцию , чтобы пропустить обнаружение хостов и осуществить - сканирование портов всех целевых машин. С помощью следующих опций можно настраивать функцию обнаружения хостов: - - - - - - - (Сканирование с целью составления списка) - - list scan - - - Это тип сканирования является "упрощенной" версией функции обнаружения хостов, при помощи которого - просто будет создан список хостов заданной сети без посылки каких-либо пакетов целевым машинам. По умолчанию - Nmap все же будет осуществлять обратное разрешение DNS с целью узнавания имен хостов. Часто бывает - удивительно, как много полезной информации могут содержать обычные имена хостов. Например, - fw.chi это имя брандмауэра одной Чикагской компании. - DNSrecords as source of information - В конце Nmap также сообщает общее количество IP адресов. Этот тип сканирования также является хорошим способом - проверить, что вы действительно знаете IP адреса необходимых вам целей. Если имена хостов содержат неизвестные - вам доменные имена, то стоит провести дальнейшее исследование, чтобы избежать сканирования сети не той - компании, которая вам нужна. - - Т.к. целью является просто составление списка целевых хостов, то опции с большим уровнем - функциональности, такие как сканирование портов, определение ОС или пинг сканирование не могут сочетаться с - рассматриваемой опцией. Если вы хотите отключить пинг сканирование, но хотите использовать опции с таким - высоким уровнем функциональности, то почитайте об опции . - - - - - - (Пинг сканирование) - - ping scan - - - Эта опция указывает Nmap произвести пинг сканирование (определение хостов), а затем вывести список - доступных хостов, т.е. тех, которые ответили на запросы. Определение маршрутов и NSE скрипты также - используются, если необходимо, однако дальнейшее тестирование (как сканирование портов или определение ОС) - не производится. По умолчанию эта опция считается как бы на один шаг более тщательной, чем сканирование - с целью составления простого списка хостов, и может быть использована в этих же целях. Она позволяет - произвести исследование целевой сети без привлечения внимания. Знание, какие хосты в сети в данный момент - работают, для атакующих ценне, чем просто список IP адресов и сетевых имен, предоставляемых - опцией -sL. - - Эта опция также полезна системным администраторам. Она может быть использована для подсчета - количества работающих в сети машин или мониторинга доступности сервера. Это часто называют "пинг чисткой" - (ping sweep) и результаты, предоставляемые этой опцией, заслуживают больше доверия, чем обычное пингование - широковещательных адресов, т.к. большинство хостов не отвечают на подобные запросы. - - По умолчанию опцией посылаются запрос на ICMP это ответ и TCP ACK пакет на порт - 80. Когда используется непривилегированным пользователем, посылается только SYN пакет - (используя системные вызов connect) на порт 80 целевой машины. - Когда привилегированный пользователь производит сканирование целей локальной сети, то используются ARP - запросы до тех пор, пока не будет задано . Для большей гибкости опция - может быть скомбинирована с любой из опций (за исключением - ). Если используется какой-либо из этих типов запросов и опции для задания номеров - портов, то запросы по умолчанию (ACK и это ответы) опускаются. Когда между машиной с Nmap и целевой сетью - расположен строгий брандмауэр, то рекомедуется использование таких расширенных методов сканирования. - Иначе некоторые из хостов могут быть не определены, т.к. брандмауэр заблокировал запрос или ответ. - - - - - - - - (Не использовать пинг сканирование) - - host discoverydisabling - - - Указывает Nmap полностью пропустить этап обнаружения хостов. Обычно, Nmap использует этот этап для - обнаружения активных машин, к которым можно применить более углубленное сканирование. По умолчанию Nmap - производит углубленное сканирование, такое как сканирование портов, определение версии или определение ОС - только обнаруженных работающих хостов. После отключения этапа обнаружения хостов опцией , - Nmap будет производить сканирование каждого заданого целевого IP адреса. - Так что, если для сканирования будет определена сеть с адресным пространством класса B (/16), то будет - произведено сканирование всех 65,536 IP адресов. Т.к. этап обнаружения хостов и составления списка целей - сканирования пропущен, то Nmap будет исполнять запрошенные функции, как если бы каждый IP адрес был активен. - Для машин локальной сети будет произведено ARP сканирование (пока не зададите ), - т.к. Nmap необходимы MAC адреса для дальнейшего сканирования целевых хостов. Раньше эта опция задавалась - флагом (используется нуль), но была переименова, чтобы избежать путаницы с - пингованием с использованием IP протокола (используется буква O). - - - - - - (TCP SYN пингование) - - SYN ping - - - - Эта опция посылает пустой TCP пакет с установленным SYN флагом. Порт по умолчанию - 80 (можно задать - во время компилирования изменяя DEFAULT_TCP_PROBE_PORT_SPEC - DEFAULT_TCP_PROBE_PORT_SPEC - в nmap.h). - nmap.h - Альтернативные порты задаются в качестве параметров. Синтаксис такой же как и для опции - за исключением того, что спецификаторы типа T: недопустимы. Примеры: - и . Имейте в виду, что между списком - портов и не должно быть пробела. Если заданы несколько запросов, то они будут посланы - параллельно. - - Установленные флаг SYN указывает удаленной системе, что вы пытаетесь установить соединение. Если порт - назначения закрыт, то в ответ посылается RST (сброс) пакет. Если порт открыт, то удаленная система - предпримет второй шаг в 3-ех этапной последовательности установки TCP соединения путем ответа - three-way handshake - SYN/ACK TCP пакетом. Система, на которой работает Nmap, сбрасывает почти установленное соединение отвечая RST - пакетом вместо ACK, что привело бы к установке полного соединения. RST пакет посылается ядром системы, на - которой работает Nmap, в ответ на непредвиденный SYN/ACK пакет, а не самой Nmap. - - Nmap не важно открыт порт или закрыт. Ответы пакетами RST или SYN/ACK описанными выше, указывают - Nmap на то, что хост доступен и может отвечать на запросы. - - На Unix машинах, только пользователь с правами - rootprivileged users, как правило, может посылать и принимать сырые TCP пакеты.raw packets - Для непривилегированного пользователя - unprivileged userslimitations of для каждого целевого - порта инициируется системный вызов connect. Поэтому при попытке - установить соединение на целевой хост посылается SYN пакет. Если на вызов - connect приходит быстрый ответ или отказ типа ECONNREFUSED, значит - TCP стек получил SYN/ACK или RST пакет, и хост помечается как доступный. Если соединение не устанавливается - по причине истечения времени (timeout), то хост помечается как не работающий. Этот механизм также - используется для соединений с использованием протокола IPv6, т.к. построение сырых пакетов IPv6 еще не - реализовано в Nmap.IPv6limitations of - - - - - - - - (TCP ACK пингование) - - ACK ping - - - Этот тип пингования очень похож на описанный выше. Разница состоит в том, как вы могли догадаться, что - вместо установки SYN флага устанавливается TCP ACK флаг. Такой ACK пакет имеет своей целью распознавание - данных во время установленного TCP соединения, но такого соединения не существует, поэтому удаленные хосты - всегда будут отвечат на такой запрос RST пакетом, тем самым выдавая свое существование. - - Опция использует тот же порт по умолчанию, что и SYN запросы (80), и так же может - принимать в качестве параметра список портов в том же формате. Если эту опцию пытается использовать - непривилегированный пользователь или задана цель в формате IPv6, то используется механизм с использованием - вызова connect описанный выше. Этот механизм несовершенен, т.к. при - использовании вызова connect вместо ACK пакета посылается SYN. - - Причина, по которой Nmap предоставляет оба типа пингования (SYN и ACK), состоит в повышении шансов - обхода брандмауэров. Многие администраторы конфигурируют роутеры или другие простые брандмауэры на блокировку - входящих SYN пакетов за исключением тех, что предназначены для публичных служб, таких как веб сайт или - почтовый сервер. Тем самым предотвращаются все остальные соединения, и в то же время пользователи могут - беспрепятственно выходить в Интернет. Такой подход не требует много ресурсов от брандмауэров/роутеров и - широко поддерживается различными аппаратными и программными фильтрами. iptables - для реализации такого подхода имеет опцию . Когда брандмауэр использует такие правила, - то запросы с установленным флагом SYN (), посланные на закрытые порты, с большой - вероятностью будут заблокированы. В таких случаях более выгодно использовать запросы с флагом ACK, т.к. - они не попадают под эти правила. - - Другим популярным типом сетевого экрана является брандмауэр блокирующий все непредвиденные пакеты. - Изначально эта функция поддерживалась только в наиболее продвинутых брандмауэрах, хотя с годами она становится - все популярнее. Использующийся в Linux сетевой экран Netfilter/iptables реализует этот механизм с помощью - опции , которая категоризирует пакеты в зависимости от состояния соединения. Против - таких систем лучше использовать пакеты SYN, т.к. непредвиденные пакеты ACK с большой вероятностью будут - распознаны как фиктивные и заблокированы. Решение такого затруднительного положение состоит в том, чтобы - посылать и SYN и ACK запросы путем задания опций и . - - - - - - (UDP пингование) - - UDP ping - - - - Еще одной функцией используемой для обнаружения хостов является UDP пингование, которая посылает пустой - (пока не задана опция ) UDP пакет на данные порты. Список портов задается в том - же формает, что и для описанных выше опций и . Если порты не заданы, - то по умолчанию используется 31338. Порт по умолчанию может быть задан во время компиляции путем изменения - DEFAULT_UDP_PROBE_PORT_SPEC - DEFAULT_UDP_PROBE_PORT_SPEC - в nmap.h. - nmap.h - По умолчанию выбран не распростаненный порт, т.к. отправка запросов на открытые порты нежелательна для - этого типа сканирования. - - Целью запроса UDP является получение в ответ ICMP пакета с ошибкой "порт недостижим". Это указывает - Nmap на то, что машина работает и доступна. Другие типы ICMP ошибок, такие как хост/сеть недоступна или - превышение TTL указывают на то, что машина выключена или недоступна. Отсутствие ответа интерпретируется - этим же путем. Если такой запрос посылается на открытый порт, то большинство служб просто игнорируют пустой - пакет и не посылают никакого ответа. Поэтому портом по умолчанию является 31338, т.к. он вряд ли будет - использоваться какой-либо службой. Лишь некоторые службы, такие как Character Generator (chargen) protocol, - ответят на пустой UDP пакет, и это также укажет Nmap на то, что машина доступна. - - Основным преимуществом такого типа сканирования является то, что он позволяет обходить брандмауэры, - фильтрующие только TCP запросы. Например, однажды у меня был беспроводной широкополосный роутер - Linksys BEFW11S4. Внутренний интерфейс этого устройства фильтровал по умолчанию все TCP порты, в то время - как в ответ на UDP запросы посылалось сообщение об ошибке "порт недостижим", что делало его работу - бесполезной. - - - - - - - ; - ; - (Типы пинг пакетов ICMP) - - - - ICMP ping - - - - В дополнении к нестандратным методам обнаружения хостов с помощью TCP и UDP запросов, Nmap может - посылать и стандартные пакеты, используемые вездесущей программой - ping. Nmap посылает ICMP пакет типа 8 (эхо запрос) на целевой - IP адрес, ожидая в ответ от доступного хоста пакет типа 0 (эхо ответ). - ICMP echo К сожалению для сетевых исследователей, многие хосты и брандмауэры - теперь блокируют такие пакеты вместо того, чтобы ответить на них, как это требуется в - RFC 1122. По этой причине - сканеры использующе только ICMP запросы редко бывают полезны при сканировании неизвестных целей в Интернете. - Но они могут быть полезны системным администраторам, занимающимся мониторингом внутренней сети. Используйте - опцию , чтобы активировать такой тип сканирования. - - Но Nmap использует не только стандратный эхо запрос. В стандарте ICMP - (RFC 792) также определены - запросы временной метки, информационные запросы и запросы адресной маски с кодами 13, 15 и 17 соответственно. - Хотя они служат для того, чтобы узнать какую-либо информацию, такую как адресную маску или текущее время, они - могут быть легко применены для обнаружения целей. Система, которая отвечает на них, работает и доступна. В - настоящее время Nmap не использует информационные запросы, т.к. они не получиил широкого распространения. - Стандарт RFC 1122 наставивает на том, что хост НЕ ДОЛЖЕН посылать такие сообщения. Запросы - временной метки или адресной маски могут быть посланы путем задания опций и - соответственно. Ответ на запрос временной метки (ICMP код 14) или на запрос адресной - маски (код 18) указывают на то, что хост доступен. Эти запросы могут быть полезны, когда администраторы - блокируют пакеты эхо запросов, но забывают о том, что другие типы ICMP запросов могут быть использованы в - тех же целях. - - - - - - - (пингование с использованием IP протокола) - - IP protocol ping - - - - Новейшей опцией для обнаружения хостов является пингование с использованием IP протокола, которая - посылает IP пакеты с номером протокола, указанным в заголовке пакета. Список протоколов задается в том же - формате, что и список портов в описанных выше опциях обнаружения хостов с помощью протоколов TCP и UDP. Если - не указан ни один протокол, то по умолчанию будут использованы IP пакеты ICMP (протокол 1), - IGMP (протокол 2) и IP-in-IP (протокол 4). Протоколы по умолчанию могут быть заданы во время компиляции - путем изменения - DEFAULT_PROTO_PROBE_PORT_SPEC - DEFAULT_PROTO_PROBE_PORT_SPEC - в nmap.h. - nmap.h - Имейте в виду, что для ICMP, IGMP, TCP (протокол 6) и UDP (протокол 17), пакеты посылаются с "правильными" - заголовками протокола, в то время как для остальных протоколов пакеты посылаются без дополнительной - информации после IP заголовка (пока не задана опция ). - - При использовании этого метода ожидаются ответы по протоколу исходного запроса, либо ICMP сообщение - о недостижимости, что свидетельствует о том, что данный протокол не поддерживается удаленным хостом. Оба - варианта ответа означают, что целевой хост доступен. - - - - - - (ARP пингование) - - ARP ping - - - - Одной из наиболее популярных сфер применения Nmap является сканирование локальных сетей (LAN). В - большинстве локальных сетей, особенно тех, которые используют диапазоны частных адресов определенные в - RFC 1918, большое количество - IP адересов не используется в любой момент времени. Когда Nmap пытается послать сырой IP пакет, такой как - ICMP эхо запрос, операционная система должна определить MAC-адрес (ARP) соответствующий целевому IP, - чтобы правильно адресовать фрейм. Это часто бывает медленно и проблематично, т.к. операционные системы - не были написаны с учетом того, что им придется посылать миллионы ARP запросов недоступным хостам в - короткий промежуток времени. - - ARP сканирование позволяет Nmap вместо ARP запросов использовать свои собственные оптимизированные - алгоритмы. И если Nmap получает ответ, то ей даже нет необходимости беспокоиться о других типах обнаружения - хостов, основанных на IP пакетах. Этот делает ARP сканирование более быстрым и надежным. Поэтому оно - применяется по умолчанию для сканирования локальных сетей. Даже если указаны другие типы сканирования - (как или ), Nmap все равно использует ARP сканирование для - машин локальной сети. Если вы абсолютно не хотите использовать такой тип сканирования, то задайте опцию - . - - - - - - - (Отслеживать путь к хосту) - - traceroute - - - - -Отслеживание осуществляется после сканирования, используя результаты этого сканирования для определения порта и -протокола, с помощью которых можно будет достичь цели. Процедура работает со всеми типами сканирования кроме -сканирования с использованием системного вызова connect () и "ленивого" (idle) сканирования -(). Все отслеживания используют динамическую модель таймингов Nmap и осуществляются параллельно. - - - -Процедура отслеживания маршрута работает путем посылки пакетов с низким TTL (time-to-live (временем-жизни) в попытке -получить в ответ ICMP сообщение Time Exceeded (Превышение Времени Жизни) от промежуточных узлов между сканером и -целевым хостом. Стандартные реализации процедуры отслеживания маршрута начинают с TTL равным 1, а затем увеличивают -его до тех пор, пока не будет достигнут целевой хост. В реализации же этой процедуры в Nmap сначала устанавливается -высокий TTL, а затем TTL уменьшается, пока не станет равным 0. Это позволяет Nmap использовать "умные" алгоритмы -кэширования с целью увеличения скорости отслеживания маршрута. В среднем Nmap посылает 5-10 пакетов на хост, в -зависимости от условий в сети. В случае сканирования единственной подсети (напр. 192.168.0.0/24), возможно будет -необходимо послать только один пакет на каждый хост. - - - - - - (Показать причины состояний портов и хостов) - - - - - -Показывает информацию о причинах, по которым каждый порт установлен в какое-либо состояние, и по которым каждый хост -работает или нет. Эта опция выводит тип пакета, по которому было определено состояние порта или хоста. Например, -RST пакет от закрытого порта или эхо ответ от работающего хоста. Информация, которую -может предоставить Nmap, определяется типом сканирования или пингования. SYN сканирование и SYN пингование -( и ) описываются очень детально, а информация о сканировании с использованием TCP соединений () ограничена реализацией системного вызова -connect. Эта функция автоматически активируется при использовании опции отладки -()implied by , -и результаты ее работы хранятся в XML файлах, даже если эта опция не была задана. - - - - - - (Не производить разрешение DNS имен) - - - - - Указывает Nmap никогда не производить обратное разрешение DNS - reverse DNSdisabling with - имен каждого обнаруженного активного IP адереса. Преобразование DNS может быть - медленным даже со встроенным в Nmap параллельным преобразователем IP адресов, поэтому данная опция может - сократить время сканирования. - - - - - - (Производить разрешение DNS имен для всех целей) - - - - Указыват Nmap всегда производить обратное разрешение DNS имен для каждого целевого - IP адреса. Обычно DNS преобразование применяется только к доступным хостам. - - - - - - (Использовать системный DNS преобразователь) - - - - - По умолчанию Nmap преобразует IP адреса путем посылки запросов непосредственно серверам имен, указанным - в вашей системе, и последующим анализом ответов. Многие запросы (часто десятки) исполняются параллельно для - увеличения производительности. Задайте эту опцию, чтобы использовать ваш системный преобразователь IP адресов - (один IP адрес за один системный вызов getnameinfo). Это медленно и - редко бывает полезно, до тех пор, пока вы не найдете ошибку в параллельном преобразователе Nmap (если найдете, - известите нас, пожалуйста). Системный преобразователь всегда используется для сканирования с использованием - протокола IPv6. - IPv6limitations of - - - - - - - (Сервера для обратного разрешения DNS) - - - - - По умолчанию Nmap определяет DNS сервера (для разрашения rDNS) из вашего resolv.conf файла (Unix) или - из реестра (Win32). Вы можете использовать эту опцию для задания альтернативных серверов. Эта опция - игнорируется, если вы используете или сканирование по протоколу IPv6. - Использование нескольких DNS серверов частно увеличивает скорость сканирования, особенно если вы выбираете - официальные сервера для IP пространства вашей цели. Эта опция также может увеличить незаметность, т.к. ваши - запросы могут быть перенаправлены любым рекурсивным DNS сервером в Интернете. - - Эта опция также бывает полезна при сканировании частных сетей. Иногда лишь некоторые сервера имен - предоставляют правильную rDNS информацию, и вы можете даже не знать, где они. Вы можете просканировать сеть - на наличие открытого порта 53 (возможно с помощью фукнкции определения версии), затем попробовать составить - список () указывая по очереди все сервера имен в опции - до тех пор, пока не найдете тот, который работает. - - - - - - - - - - Основы сканирования портов - - Хотя Nmap постоянно наращивала функциональность, - изначально утилита разрабатывалась как эффективный сканер портов, - и она по-прежнему сохраняет свои основные функции. Простой командой nmap - цель сканирования будет произведено сканирование более чем - 1660 TCP портов на целевой машине. В то время как многие сканеры портов - традиционно разделяют все порты на закрытые и открытые, Nmap имеет более подробную шкалу деления. - Она подразделяет порты на шесть состояний: открыт, - закрыт, фильтруется, - не фильтурется, - открыт|фильтруется или - закрыт|фильтруется. - -Эти состояния не являются собственно характеристиками самих портов, а лишь описывают, как Nmap видит их. -Например, сканирование из той же сети, что и цель, может показать, что порт -135/tcp открыт, в то время как сканирование из Интернета в то же время и с теми же -опциями может показать, что порт фильтруется. - -Шесть состояний портов распознаваемых Nmap - - - open port state - открыт (open) - Приложение принимает запросы на TCP соединение или UDP пакеты на этот порт. - Обнаружение этого состояния обычно является основной целью сканирования. Люди разбирающиеся в безопасности знают, - что каждый открытый порт это прямой путь к осуществлению атаки. Атакующие хотят использовать открытые порты, а - администраторы пытаются закрыть их или защитить с помощью брадмауэров так, чтобы не мешать работе обычных - пользователей. Октрытые порты также интересны с точки зрения сканирования, не связанного с безопасностью, т.к. они - позволяют определить службы доступные в сети. - - - - closed port state - закрыт (closed) - - Закрытый порт доступен (он принимает и отвечает на запросы Nmap), но не используется каким-либо - приложением. Они могут быть полезны для установления, что по заданному IP адресу есть работающий хост (определение - хостов, ping сканирование), или для определения ОС. Т.к. эти порты достижимы, может быть полезным произвести - сканирование позже, т.к. некоторые из них могут открыться. Администраторы могут заблокировать такие порты с - помощью брандмауэров. Тогда их состояние будет определено как фильтруется, что обсуждается далее. - - - - filtered port state - фильтруется (filtered) - - Nmap не может определить, открыт ли порт, т.к. фильтрация пакетов не позволяет достичь запросам - Nmap этого порта. Фильтрация может осуществляться выделенным брадмауэром, правилами роутера или брандмауэром на - целевой машине. Эти порты бесполезны для атакующих, т.к. предоставляют очень мало информации. Иногда они отвечают - ICMP сообщениями об ошибке, такими как тип 3 код 13 (destination unreachable: communication administratively - prohibited (цель назначения недоступна: связь запрещена администратором)), но чаще встречаются фильтры, которые - отбрасывают запросы без предоставления какой-либо информации. Это заставляет Nmap совершить еще несколько - запросов, чтобы убедиться, что запрос был отброшен фильтром, а не затором в сети. Это очень сильно замедляет - сканирование. - - - unfiltered port state - не фильтруется (unfiltered) - Это состояние означает, что порт доступен, но Nmap не может определить открыт он или закрыт. - Только ACK сканирование, используемое для определения правил брандмауэра, может охарактеризовать порт этим состоянием. - Сканирование не фильтруемых портов другими способами, такими как Window сканирование, SYN сканирование или FIN - сканирование может помочь определить, является ли порт открытым. - - - - open|filtered port state - открыт|фильтруется (open|filtered) - Nmap характеризует порт таким состоянием, когда не может определить октрыт порт или фильтруется. - Это состояние возникает при таких типах сканирования, при которых открытые порты не отвечают. Отсутствие ответа - также может означать, что пакетный фильтр не пропустил запрос или ответ не был получен. Поэтому Nmap не может - определить наверняка открыт порт или фильтруется. При сканировании UDP, по IP протоколу, FIN, NULL, а также Xmas - порт может быть охарактеризован таким состоянием. - - - closed|filtered port state - закрыт|фильтруется (closed|filtered) - Это состояние используется, когда Nmap не может определить закрыт порт или фильтруется. - Используется только при сканировании IP ID idle типа. - - - - - Различные приемы сканирования портов - -Как новичок в автомобильном деле, я могу часами биться в попытках использовать свои элементарные инструменты -(молоток, клейкая лента, гаечный ключ и т.д.) для решения какой-либо проблемы. Когда все мои попытки с крахом -проваливаются, и я буксирую свою развалюху к настоящему механику, он неизменно достает из большой коробки с интрументами -какую-нибудь штуковину, и сразу складывается впечатление, что решение проблемы не требует много усилий. Искусство -сканирования портов очень на это похоже. Эксперты понимают дюжины различных приемов сканирования портов и выбирают для конкретной задачи подходящий (или комбинацию из нескольких). Неопытные пользователи и script kiddies, -script kiddies -пытаются решить все задачи с помощью используемого по умолчанию SYN сканирования. Т.к. Nmap является бесплатной, то -единственным барьером на пути к овладению техникой сканирования портов является знание. Это все же лучше чем в мире -автомобилей, где, когда вам наконец-то удается определить, что вам необходимо какое-либо устройство, вам еще надо -будет заплатить за него тысячу долларов. - -Большинство типов сканирования доступны только привилегированным пользователям, -privileged users -потому что посылаются и принимаются сырые пакеты, -raw packets -что требует прав пользователя root на Unix системах. Под Windows рекомендуется работать с учетной записью -администратора, хотя иногда Nmap работает и с непривилегированными пользователя, когда в ОС уже загружена утилита -WinPcap. Требование root привилегий было серьезным ограничением, когда Nmap была выпущена в свет в 1997, т.к. многие -пользователи имели доступ только к разделяемым аккаунтам. Сейчас мир изменился. Компьютеры стали дешевле, многие -пользователи имеют постоянный доступ в Интернет, а Unix системы для домашних компьютеров (включая Linux и Mac OS X) -теперь широко распространены. Также теперь доступна Windows версия Nmap, что позволяет запускать ее на еще большем -количестве компьютеров. По этим причинам, пользователям нет необходимости запускать Nmap с разделяемых аккаунтов. -Это большая удача, т.к. функции требующие привилегированного доступа делают Nmap намного более мощной и гибкой. - -Когда Nmap предпринимает попытку выдать правильные результаты, надо иметь ввиду, что вся информация базируется -на пакетах, возвращенных целевыми машинами (или брандмауэром перед ними). Такие хосты могут быть ненадежными и -посылать ответы с целью ввести Nmap в забдуждение. Намного более распространным случаем являются не совместимые с -RFC хосты, которые отвечают на запросы Nmap не так, как должны. Сканирования типа FIN, NULL и Xmas наиболее -восприимчивы к такого рода проблемам. Такие сложности специфичны только для определенных типов сканирования, и поэтому -обсуждаются в посвященных им разделах. - -В этом разделе описываются около дюжины способов сканирования портов поддерживаемых Nmap. В любой момент времени -вы можете использовать только один метод; исключение составляет UDP сканирование (), которое может -быть скомбинировано с любым типом TCP сканирования. В качестве памятки имейте ввиду, что различные опции сканирования -портов задаются в форме , где C это символ -из названия какого-либо типа сканирования, обычно первый. Единственное исключение это FTP bounce сканирование -(). По умолчанию Nmap осуществляет SYN сканирование; этот тип сканирования заменяет сканирование с -использованием соединения для пользователей не имеющих достаточных привилегий для отправки сырых пакетов (требует -root доступа в Unix), или если были заданы цели в формате IPv6. Среди описанных ниже типов сканирования, -непривилегированные пользователи могут осуществлять только сканирование с использованием соединения и FTP bounce -сканирование. - - - - - (TCP SYN сканирование) - - SYN scan - - - -SYN это используемый по умолчанию и наиболее популярный тип сканирования. На то есть несколько причин. Он может -быть быстро запущен, он способен сканировать тысячи портов в секунду при быстром соединении, его работе не препятствуют -ограничивающие бранмауэры. Этот тип сканирования относительно ненавящив и незаметен, т.к. при таком сканировании TCP -соединение никогда не устанавливается до конца. Он работает с любым TCP стеком, не завися от каки-либо особенностей -специфичной платформы, как это происходит при сканированиях типа FIN/NULL/Xmas, Maimon и idle сканировании. Он также -предоставляет ясную и достоверную дифференциацию между состояниями открыт, -закрыт и фильтруется. - -Эту технику часто называют сканированием с использованием полуотрытых соединений, т.к. вы не открываете -полного TCP соединения. Вы посылаете SYN пакет, как если бы вы хотели установить реальное соединение и ждете. Ответы -SYN/ACK указывают на то, что порт прослушивается (открыт), а RST (сброс) на то, что не прослушивается. Если после -нескольких запросов не приходит никакого ответа, то порт помечается как фильтруемый. Порт также помечается как -фильтруемый, если в ответ приходит ICMP сообщение об ошибке недостижимости (тип 3, код 1,2, 3, 9, 10 или 13). - - - - - - - (TCP сканирование с использованием системного вызова connect) - - connect scan - - -Это используемый по умолчанию тип TCP сканирования, когда недоступно SYN сканирование. Это происходит в случае, -когда у пользователя нет привилегий для использования сырых пакетов или при сканировании IPv6 сетей. Вместо того, -чтобы использовать сырые пакеты, как это происходит при большинстве других типов сканирования, Nmap "просит" -операционную систему установить соединение с целевой машиной по указанному порту путем системного вызова -connect. Это такой же высокоуровневый системный вызов, используемый браузерами, -P2P клиентами и другими приложениями для установки соединения. Этот вызов является частью программируемого интерфейса, -известного как Berkeley Sockets API. Вместо того, чтобы считывать ответы в форме сырых пакетов, Nmap использует этот -API для получения информации о статусе каждой попытки соединения. - -При доступности SYN сканирования, оно, безусловно, будет являться лучшм выбором. У Nmap имеется меньше -возможностей контролирования высокоуровнего вызова connect по сравнению с -сырыми пакетами, что делает его менее эффективным. Системный вызов завершает соединения по открытым портам, вместо -того, чтобы использовать полуоткрытые соединения, как в случае с SYN сканированием. Таким образом на получение -той же самой информации потребуется больше времени и пакетов, да к тому же целевые машины скорее всего запишут это -соединение в свои логи. То же самое сделает и порядочная IDS, хотя большинство машин не имеют такой системы защиты. -Многие службы на вашей Unix системе будут добавлять запись в системный лог (syslog), а также сообщение об ошибке, -когда Nmap будет устанавливать и закрывать соединение без отправления данных. Некоторые службы даже аварийно завершают -свою работу, когда это происходит, хотя это не является обычной ситуацией. Администратор, который увидит в логах -группу записей о попытке установки соединения от одной и той же системы, должен знать, что его машина подверглась -такому типу сканирования. - - - - - - - (Различные типы UDP сканирования) - -UDP scan - - - -В то время как большинство сервисов Интернета используют TCP протокол, -UDP службы также широко распространены. -Тремя наиболее популярными являются DNS, SNMP и DHCP (используют порты 53, 161/162 и 67/68). Т.к. UDP сканирование -в общем случае медленнее и сложнее TCP, то многие специалисты по безопасности игнорируют эти порты. Это является -ошибкой, т.к. существуют UDP службы, которые используются атакующими. К счастью, Nmap позволяет инвентаризировать UDP -порты. - -UDP сканирование запускается опцией . Оно может быть скомбинировано с каким-либо типом TCP -сканирования, например SYN сканирование (), чтобы использовать оба протокола за один проход. - -UDP сканирование работает путем посылки пустого (без данных) UDP заголовка на каждый целевой порт. Если в ответ -приходит ICMP ошибка о недостижимости порта (тип 3, код 3), значит порт закрыт. -Другие ICMP ошибки недостижимости (тип 3, коды 1, 2, 9, 10 или 13) указывают на то, что порт -фильтруется. Иногда, служба будет отвечать UDP пакетом, указывая на то, что порт -открыт. Если после нескольких попыток не было получено никакого ответа, то порт -классифицируется как открыт|фильтруется. Это означает, что порт может быть открыт, -или, возможно, пакетный фильтр блокирует его. Функция определения версии () может быть полезна -для дифференциации действительно открытых портов и фильтруемых. - -Большой проблемой при UDP сканировании является его медленная скорость работы. Открытые и фильтруемые порты редко -посылают какие-либо ответы, заставляя Nmap отправлять повторные запросы, на случай если пакеты были утеряны. Закрытые -порты часто оказываются еще большей проблемой. Обычно они в ответ возвращают ICMP ошибку о недостижимости порта. Но в -отличии от RST пакетов отсылаемых закрытыми TCP портами в ответ на SYN или сканирование с установкой соединения, многие -хосты ограничивают лимит rate limiting -ICMP сообщений о недостижимости порта по умолчанию. Linux и Solaris особенно строги в этом плане. Например, ядро -Linux 2.4.20 огранивает количество таких сообщений до одного в секунду (в -net/ipv4/icmp.c). - -Nmap обнаруживает такого рода ограничения и соответственно сокращает количество запросов, чтобы не забивать -сеть бесполезными пакетами, которые все равно будут отброшены целевой машиной. К сожалению, при ограничении в стиле -Linux (один пакет в секунду) сканирование 65,536 портов займет более 18 часов. К способам увеличения скорости UDP -сканирования относятся: параллельное сканирование нескольких хостов, сканирование в первую очередь только наиболее -популярных портов, сканирование из-за брандмауэра и использование дял пропуска -медленных хостов. - - - - - - - ; ; (TCP NULL, FIN и Xmas сканирования) - - - -NULL scan -FIN scan -Xmas scan - - - -Эти три типа сканирования используют (другие типы сканирования доступны с использованием опции - описанной в другой секции) -незаметную лазейку в TCP RFC, чтобы -разделять порты на открытые и закрытые. На -странице 65 RFC 793 говорится, что если порт назначения ЗАКРЫТ .... входящий сегмент не содержащий RST повлечет -за собой отправку RST в ответ. На следующей странице, где обсуждается отправка пакетов без установленных -битов SYN, RST или ACK, утверждается что: вы вряд ли с этим столкнетесь, но если столкнетесь, то сбросьте -сегменти и вернитесь к исходному состоянию. - -Когда сканируется система отвечающая требованиям RFC, любой пакет, не содержащий установленного бита SYN, RST или -ACK, повлечет за собой отправку RST в ответ в случае, если порт закрыт, или не повлечет никакого ответа, если порт -открыт. Т.к. ни один из этих битов не установлен, то любая комбинация трех оставшихся (FIN, PSH и URG) будет являться -правильной. Nmap использует это в трех типах сканирования: - - - Null сканирование () - Не устанавливаются никакие биты (Флагов в TCP заголовоке 0) - - FIN сканирование () - Устанавливается только TCP FIN бит. - - Xmas сканирование () - Устанавливаются FIN, PSH и URG флаги. - - -Эти три типа сканирования работают по одной схеме, различия только в TCP флагах установленных в пакетах запросов. -Если в ответ приходит RST пакет, то порт считается закрытым, отсутствие ответа -означает, что порт открыт|фильтруется. Порт помечается как -фильтруется, если в ответ приходит ICMP ошибка о недостижимости (тип 3, код -1, 2, 3, 9, 10 или 13). - -Ключевой особенностью этих типов сканирования является их способность незаметно обойти некоторые не учитывающие -состояние (non-stateful) брандмауэры и роутеры с функцией пакетной фильтрации. Еще одним преимуществом является то, что -они даже чуть более незаметны, чем SYN сканирование. Все же не надо на это полагаться - большинство современных IDS -могут быть сконфигурированы на их обнаружение. Большим недостатком является то, что не все системы следуют RFC 793 -дословно. Некоторые системы посылают RST ответы на запросы не зависимо от того, открыт порт или закрыт. Это приводит -к тому, что все порты помечаются как закрытые. Основными системами ведущими себя -подобным образом являются Microsoft Windows, многие устройства Cisco, BSDI и IBM OS/400. Хотя такое сканирование -применимо к большинству систем, основанных на Unix. Еще одним недостатком этих видов сканирования является их -неспособность разделять порты на открытые и -фильтруемые, т.к. порт помечается как -открыт|фильтруется. - - - - - - - (TCP ACK сканирование) - - ACK scan - - - -Этот тип сканирования сильно отличается от всех других тем, что он не способен определить открый порт -open (или даже открытый|фильтруемый). Он -используются для выявления правил брандмауэров, определения учитывают ли он состояние или нет, а также для определения -фильтруемых ими портов. - -Пакет запроса при таком типе сканирования содержит установленным только ACK флаг (если не используется -). При сканировании нефильтруемых систем, -открытые и закрытые порты оба будут возвращать -в ответ RST пакет. Nmap помечает их как не фильтруемые, имея ввиду, что они -достижимы для ACK пакетов, но неизвестно открыты они или -закрыты. Порты, которые не отвечают или посылают в ответ ICMP сообщение об ошибке -(тип 3, код 1, 2, 3, 9, 10 или 13), помечаются как фильтруемые. - - - - - - - (TCP Window сканирование) - -window scan - - - -Этот тип сканирования практически то же самое, что и ACK сканирование, за исключением того, что он использует -особенности реализации различных систем для разделения портов на открытые и закрытые, вместо того, чтобы всегда при -получении RST пакета выводить не фильтруется. Это осуществляется путем анализа -TCP Window поля полученного в ответ RST пакета. В некоторых системах открытые порты используют положительное значение -этого поля (даже в RST пакетах), а закрытые - нулевое. Поэтому вместо того, что все время при получении RST пакета в -ответ помечать порты как не фильтруемые, при Window сканировании порты помечаются -как открытые или закрытые, если значение поля -TCP Window положительно или равно нулю соответственно. - -Этот тип сканирования основывается на особенностях реализации меньшинства систем в Интернете, поэтому вы не -можете все время доверять ему. В общем случае в системах, не имеющих таких особенностей, все порты будут помечаться -как закрытые. Конечно, это возможно, что у машины действительно нет открытых портов. -Если большинство просканированных портов закрыты, и лишь несколько распространненых -портов (таких как 22, 25, 53) фильтруются, то скорее всего результатам сканирования -можно доверять. Иногда, системы будут вести себя прямо противоположным образом. Если в результате сканирования будет -найдено 1000 открытых портов и 3 закрытых или фильтруемых, то как раз эти 3 могут оказаться действительно открытыми. - - - - - - - - (TCP сканирование Мэймона (Maimon)) - -Maimon scan - - - -Этот тип сканирования носит имя своего первооткрывателя, Уриела Мэймона (Uriel Maimon). -Maimon, Uriel -Он описал эту технику в журнале Phrack Magazine, выпуск #49 (Ноябрь 1996). -Phrack -Версия Nmap с поддержкой этого типа сканирования была выпущена через два номера. Техника практически такая же как и -при NULL, FIN и Xmas сканированиях, только в качестве запросов используются запросы FIN/ACK. Согласно -RFC 793 (TCP), в ответ на такой запрос -должен быть сгенерирован RST пакет, если порт открыт или закрыт. Тем не менее, Уриел заметил, что многие BSD системы -просто отбрасывают пакет, если порт открыт. - - - - - - - (Заказное TCP сканирование) - - - - -Действительно продвинутым пользователям Nmap не нужды ограничивать себя заранее приготовленными типами -сканирования. С помощью опции вы можете разработать свой тип сканирования путем задания -специфичных TCP флагов.TCP flags -Используйте свое воображение, обходя системы обнаружения вторжений, чьи производители просто просмотрели справочное -руководство Nmap, путем задания собственных правил!intrusion detection systemsevading - -Аргументом опции может быть числовое значение, например, 9 (PSH и FIN флаги), но -использование символьных имен намного проще. Используйте любые комбинации URG, -ACK, PSH, -RST, SYN и -FIN. Например, опцией будут установлены все флаги, хотя это и не очень полезно для сканирования. Порядок задания -флагов не имеет значения. - -В добавлении к заданию желаемых флагов, вы также можете задать тип TCP сканирования (например, - или ). Это укажет Nmap на то, как необходимо интерпретировать ответы. -Например, при SYN сканировании отсутствие ответа указывает на фильтруемый порт, -тогда как при FIN сканировании - на открытый|фильтруемый. Nmap будет осуществлять -заданный тип сканирования, но используя указанные вами TCP флаги вместо стандартных. Если вы не указываете тип -сканирования, то по умолчанию будет использоваться SYN. - - - - - - - ("ленивое" idle сканирование) - - idle scan - - - - - Этот продвинутый метод сканирования позволяет осуществить действительно незаметное TCP сканирование - портов цели (имеется ввиду, что никакие пакеты не отсылаются на целевую машину с вашего реального IP адерса). - Вместо этого, на зомби машине используется предсказуемая последовательность генерации ID IP фрагментов для - сбора информации об открытых портах цели. Системы IDS будут считать, что сканирование производится с - заданной вами зомби машины (которая должна работать и удовлетворять определенным критериям). - Этот тип сканирования слишком сложен для описания в этом справочном руководстве, поэтому я написал и выложил - подробное описание на . - - Подробное описание этого типа сканирования смотрите на . - - - - Помимо его незаметности (в силу своей природы), этот тип сканирования также позволяет определять - основанные на IP доверительные отношения между машинами. Список открытых портов показывает открытые порты - с точки зрения зомби машины. Поэтому вы можете попробовать просканировать цель - используя различные зомби машины, которым, вы считаете, возможно будут доверять - trust relationships - (посредством правил роутера/пакетного фильтра). - - - Вы можете добавить номер порта после двоеточия к зомби хосту, если хотите использовать конкретный - порт. По умолчанию будет использоваться порт 80. - - Порты также могут быть заданы именами, которым они соответствуют в файле - nmap-services. Вы даже можете использовать шаблоны * и ? в именах. - Например, чтобы просканировать ftp и все порты начинающиеся с http используйте . - В таких случаях лучше брать аргументы -p в кавычки. - - Диапазоны портов заключаются в квадратные скобки; будут просканированы порты из этого диапазона, - встречающиеся в nmap-services. - Например, с помощью следующей опции будут просканированы все порты из - nmap-services равные или меньше 1024: . - В таких случаях лучше брать аргументы -p в кавычки. - - - - - - (Сканирование IP протокола) - - IP protocol scan - - - -Сканирование такого типа позволяет определить, какие IP протоколы (TCP, ICMP, IGMP и т.д.) поддерживаются -целевыми машинами. Технически такое сканирование не является разновидностью сканирования портов, т.к. при нем -циклически перебираются номера IP протоколов вместо номеров TCP или UDP портов. Хотя здесь все же используется опция - для выбора номеров протоколов для сканирования, результаты выдаются в формате таблицы портов, и -даже используется тот же механизм сканирования, что и при различных вариантах сканирования портов. Поэтому он -достаточно близок к сканированию портов и описывается здесь. - -Помимо полезности непосредственно в своей сфере применения, этот тип сканирования также демонстрирует всю мощь -открытого программного обеспечения (open-source software). Хотя основная идея довольна проста, я никогда не думал -включить такую функцию в Nmap, и не получал запросов на это. Затем, летом 2000-го, Джерард Риджер (Gerhard Rieger) -Rieger, Gerhard -развил эту идею, написал превосходный патч воплощающий ее и отослал его на -nmap-hackers рассылку.nmap-hackers mailing list -Я включил этот патч в Nmap и на следующий день выпустил новую версию. Лишь единицы комерческого программного обеспечения -могут похвастаться пользователями, достаточно полными энтузиазма для разработки и предоставления своих улучшений! - -Способ работы этого типа сканирования очень похож на реализованный в UDP сканировании. Вместо того, чтобы -изменять в UDP пакете поле, содержащее номер порта, отсылаются заголовки IP пакета, и изменяется 8 битное поле IP -протокола. Заголовки обычно пустые, не содержащие никаких данных и даже правильного заголовка для требуемого протокола. -Исключениями явлются TCP, UDP и ICMP. Включение правильного заголовка для этих протоколов необходимо, т.к. в обратном -случае некоторые системы не будут их отсылать, да и у Nmap есть все необходимые функции для их создания. Вместо того, -чтобы ожидать в ответ ICMP сообщение о недостижимости порта, этот тип сканирования ожидает ICMP сообщение о -недостижимости протокола. Если Nmap получает любой ответ по любому протоколу, то протокол -помечается как открытый. ICMP ошибка о неостижимости протокола (тип 3, код 2) -помечает протокол как закрытый. Другие ICMP ошибки недостижимости (тип 3, код -1, 3, 9, 10 или 13) помечают протокол как фильтруемый (в то же время они показывают, -что протокол ICMP открыт). Если не приходит никакого ответа после нескольких -запросов, то протокол помечается как открыт|фильтруется. - - - - - - - - - (FTP bounce сканирование) - - FTP bounce scan - - - -Интересной возможностью FTP протокола (RFC 959) является поддержка так называемых прокси FTP соединений. Это позволяет пользователю подключиться к одному -FTP серверу, а затем попросить его передать файлы другому. Это является грубым нарушением, поэтому многие сервера -прекратили поддерживать эту функцию. Используя эту функцию, можно осуществить с помощью данного FTP сервера -сканирование портов других хостов. Просто попросите FTP сервер переслать файл на каждый интересующий вас порт целевой -машины по очереди. Сообщение об ошибке укажет: открыт порт или нет. Это хороший способ обхода брандмауэров, т.к. -организационные FTP сервера обычно имеют больше доступа к другим внутренним хостам, чем какие-либо другие машины. -В Nmap такой тип сканирования задается опцией . В качестве аргумента ей передается -имя_пользователя:пароль@сервер:порт. -Сервер - это сетевое имя или IP адрес FTP сервера. Как и в случае в обычными URL, вы можете опустить имя_пользователя:пароль, тогда будут использованы -анонимные данные (пользователь: anonymous -пароль:-wwwuser@). Номер порта (и предшествующее ему двоеточие) также можно не -указывать; тогда будет использован FTP порт по умолчанию (21) для подключения к серверу. - - -Эта уязвимость была широко распространена в 1997, когда была выпущена Nmap, но теперь почти везде исправлена. -Уязвимые сервера по-прежнему есть, так что, если ничего другое не помогает, то стоит попробовать. Если вашей целью -является обход бранмауэра, то просканируйте целевую сеть на наличие открытого порта 21 (или даже на наличие любых -FTP служб, если вы используете определение версии), а затем попробуйте данный тип сканирования с каждым из найденных. -Nmap скажет вам, уязвим хост или нет. Если вы просто пытаетесь замести следы, то вам нет необходимости (и, фактически, -не следует) ограничивать себя только хостами целевой сети. Перед тем как вы начнете сканировать произвольные Интернет -адреса на наличие уязвимого FTP сервера, имейте ввиду, что многим системным администраторам это не понравится. - - - - - - - - Определение портов и порядка сканирования - port specification - - В дополнении ко всем методам сканирования описанными ранее, Nmap предлагает опции для определения портов - для сканирования, а также порядка сканирования: произвольного или последовательного. По умолчанию, Nmap сканирует - все порты до 1024 включительно, а также все порты с большими номерами упомянутыми в файле nmap-services для протокола, по которому идет сканирование. - default ports - - - - - - (Сканирование только определенных портов) - - - - - - С помощью этой опции вы можете определить, какие порты вы хотите просканировать и переопределить - установки по умолчанию. Указание отдельных номеров портов допустимо, как и задание диапазонов портов - разделенных дефисом (напр. 1-1023). Начальные и/или кончные значения - диапазонов могут быть опущены, что заставит Nmap использовать 1 и 65535 соответственно. Поэтому вы можете - задать опцию , чтобы просканировать все порты от 1 до 65535. Сканирование нулевого - порта допустимо, если вы укажене его явно - port zero. - Для сканирования по IP протоколу (), эта опция определяет номера протоколов, которые - вы хотите просканировать для диапазона (0-255). - - Когда сканируете и TCP и UDP порты, вы можете задать определенный протокол указав перед номерами - портов T: - или U:. Определитель будет действовать до того момента, пока вы не - зададите другой. Например, при задании аргумента будут просканированы UDP - порты 53,111, и 137, а также все перечисленные TCP порты. Имейте в виду, что для сканирования и UDP и - TCP портов, вы должны указать опцию и, по крайне мере, один из типов сканирования TCP - (таких как , или ). Если определитель прокотола - не указан, то перечисленные порты будут добавлены ко всем протоколам. - - - port specificationwildcards in - Порты также могут быть заданы именами, которые указаны в - nmap-services. Вы даже можете использовать символы ? и * с именами. - Например, чтобы просканировать FTP и все порты, чьи имена начинаются с http, используйте - . Будьте осторожны при вводе этой команды и лучше заключите аргумент - в кавычки. - - Диапазоны портов могут быть заключены в квадратные скобки, чтобы определить порты внутри этого - диапазона, которые упомянуты в nmap-services. - Например, с помощью следующей команды будут просканированы все порты из - nmap-services равные или меньшие 1024: - . Будьте осторожны при вводе этой команды и лучше заключите аргумент - в кавычки. - - - - - - (Быстрое (ограниченные порты) сканирование) - - - - Указывает, что вы хотите произвести сканирование только портов, указанных в - nmap-services, который поставляется вместе с Nmap (или в файле - протоколов для ). Это намного быстрее, чем сканировать все 65535 портов целевой машины. - Т.к. этот список содержит много TCP портов (больше 1200), разница в скорости в отличии от TCP сканирования - по умолчанию (около 1650 портов) несущественна. Разница может быть огромна, если вы определите свой - небольшой nmap-services файл используя - - или опции. - - - - - - - (Не использовать случайный порядок портов) - - randomization of ports - - - По умолчанию, Nmap использует произвольный порядок сканирования портов (исключение составляют лишь - наиболее часто употребляемые порты, которые расположены в начале списка сканирования по причинам - эффективности). Обычно эта случайность нужна, но вы можете задать опцию , чтобы - использовать прямой порядок сканирования. - - - - - - - - - --port-ratio - Сканирует все порты из nmap-services, чей рейтинг больше числа, - указанного как аргумент (только для нового формата nmap-services). - - - - - - - - - --top-ports - Сканирует N портов с наибольшими рейтингами, расположенными в - nmap-services файле (только для нового формата - nmap-services). - - - - - - - - - - Обнаружение служб и их версий - version detection - - - При сканировании удаленной машины Nmap может выдать, что порты - 25/tcp, 80/tcp, и - 53/udp открыты. Используя свою базу данных - nmap-servicesnmap-services, - состоящюю из около 2200 известных служб, - well-known ports - Nmap сообщит, что эти порты вероятно соответстуют почтовому серверу (SMTP), веб серверу (HTTP), - и серверу доменных имен (DNS) соответственно. Эта информация обычно верна, т.к. подавляющее большинство служб, - использующих 25 TCP порт, фактически, почтовые сервера. Тем не менее, вам не следует полностью полагаться на эту - информацию! Люди могут и запускают службы с использованием нестандартных портов. - non-standard ports - - - Даже если Nmap права, и на какой-либо гипотетической машине упомянутой выше запушены SMTP, HTTP и DNS - сервера, это не так уж и много информации. Когда производится сканирование с целью обнаружения уязвимостей - (или же просто определение структуры сети) компьютеров ваших компаний или клиентов, вам хочется знать, какие точно - почтовые и DNS сервера и какие версии используются. Знание точной версии очень помогает в определении, к каким - эксплоитам сервер наиболее уязвим. Эту информацию вы можете получить с помощью задания опции определения версии. - - - После того как какие-либо TCP и/или UDP были обнаружены, Nmap начинает "опрашивать" эти порты, чтобы - определить, какие же приложения (службы) их действительно используют. База данных - nmap-service-probesnmap-service-probes - содержит запросы для обращения к различным службам и соответствующие выражения для распознавания и анализа ответов. - Nmap пытается определить протоколо службы (напр. FTP, SSH, Telnet, HTTP), имя приложения (e.g. ISC - BIND, Apache httpd, Solaris telnetd), номер версии, имя хоста, тип устройства (напр. принтер, роутер), - семейство ОС (напр. Windows, Linux) и иногда различные детали типа возможно ли соединится с X сервером, - версию протокола SSH, или имя пользователя KaZaA. Конечно же, большинство служб не предоставляют такую информацию. - Если Nmap была скомпилирована с поддержкой OpenSSL, Она соединится с сервером SSL, чтобы попытаться определить - запущенные службы, работающие за зашифрованным слоем. - SSLin version detection - Когда обнаружены службы RPC, удет автоматически задействована опция Nmap - RPC grinder () - - для определения программы RPC и ее версии. После сканирования портов UDP некоторые из них характеризуются как - открыт|фильтруется, если сканирование не может определить открыт порт или - фильтруется. С заданной опцией определения версии Nmap попытается получить ответ от таких портов (точно так же как - она поступает с открытыми портами), и, в случае успеха, поменяет состояние этого порта на открыт - открытые|фильтруемые TCP порты обрабатываются так же. Имейте в виду, что - опция Nmap помимо других команд активирует также и обнаружение версии. - - Бумажная документация по работе, использованию и настройке опции обнаружения версии доступна на - . - - - Опция обнаружения версии подробнее рассматривается в . - - - - Когда Nmap получает ответы от службы, но не может сопоставить их с какой-либо записью в своей базе данных, - она выводит на экран специальную информацию и URL, по которому вы можете опубликовать эту информацию, если вы точно - уверены, что за служба запущена на исследуемом вами порте. Пожалуйста, потратьте пару минут на публикацию этой - информации, т.к. ваша находка поможет остальным. Благодаря таким публикациям, Nmap содержит в своей базе данных - около 3000 записей для более чем 350 протоколов, таких как SMTP, FTP, HTTP и т.д. - submission of service fingerprints - - - Функция определения версии включается и управляется с помощью следующих опций: - - - - - - - (Определение версии) - - - - - Включает функцию определения версии, работа которой описана выше. Вы также можете использовать - опцию , которая помимо других функций включает определение версии. - - - - - - - (Не исключать порты из проверки определения версии) - - - - - По умолчанию, функция определения версии пропускает TCP порт 9100, - потому что некоторые принтеры просто распечатывают все, что приходить на этот порт, что ведет к - дюжинам страниц HTTP GET запросов, бинарных запросов SSL сессий т.д. Это может быть изменено путем - модифицирования или удаления директивы Exclude - в nmap-service-probes, или вы можете задать опцию - , сканированить все порты не обращая внимания на всякие - Exclude директивы. - Exclude directive (nmap-service-probes) - - - - - - - (Устанавливает интенсивность - работы функции) - - - - - - Когда производится сканирование с заданной опцией определения версии - (), Nmap посылает серию запросов, каждому из которых присваивается значение в диапазоне - от 1 до 9. Запросы с низкими значениями эффективны для большинства типичных служб, в то время как запросы - с более высокими значениями редко применяются на практике. Уровень интенсивности определяет, какие запросы - должны использоваться во время сканирования. Чем выше значение запроса, тем больше вероятность корректного - определения службы. Тем не менее, сканирование с высокой интенсивностью займет много времени. Уровень - интенсивности должна быть задана числом от 0 до 9. - version detectionintensity - По умолчанию уровень интенсивности равен 7. - version detectiondefault intensity - Когда запрос привязан к целевому порту посредством директивы - nmap-service-probes ports, - этот запрос будет производиться вне зависимости от уровня интенсивности. Это гарантирует, что DNS - запросы всегда будут производится с использование порта 53, SSL запросы - 443 и т.д. - - - - - - - (Включить облегченный режим) - - - - - Это не что иное как псевдоним для . Этот режим существенно - уменьшает время сканирования, но вероятность определения служб сокращается. - - - - - - (Использовать каждый единичный запрос) - - - - - Псевдоним для , гарантирующий что каждый единичный запрос - будет направлен на каждый порт. - - - - - - (Отслеживание процесса сканирования) - - - - Указывает Nmap выводить подробную отладочную информацию о процессе сканирования. Это часть той - информации, которую вы можете получить с помощью опции . - - - - - - (RPC сканирование) - - RPC scanRPC grinder - RPC grinder - - - - Этот метод работает в связке с различными методами сканирования портов Nmap. При включении этой опции - на все обнаруженные открытые TCP/UDP порты посылатеся множество NULL команд программы SunRPC - в попытке определить, являются ли эти порты RPC портами, и если так, то какими программами (а также их версии) - они используются. Таким образом, вы можете получить ту же информацию как и в случае использования команды - rpcinfo -p, даже если целевой сервер портмаппинга (portmapper) находится - за брандмауэром (или защищен TCP фильтром). На сегодняшний момент ловушки со сканированием RPC не работают - decoyswhich scans use - Эта опция автоматически активируется как часть сканирования с функцией определения версии - (). Т.к. это включено в функцию определения версии и более детально проработано, - то опция нужна очень редко. - - - - - - - - - - Определение ОС - OS detection - - Одна из наиболее известных функциональных возможностей Nmap это удаленное определение ОС на основе - анализа работы стека TCP/IP. Nmap посылает серию TCP и UDP пакетов на удаленный хост и изучает практически - каждый бит в ответах. После проведения дюжины тестов таких как TCP ISN выборки, поддержки опций TCP, IP ID - выборки, и анализа продолжительности процедуры инициализации, Nmap сравнивает результаты со своей - nmap-os-dbnmap-os-db базой данных, состоящей из более чем тысячи известных наборов - типичных результатов для различных ОС и, при нахождении соответствий, выводит информацию об ОС. Каждый набор - содержит свободное текстовое описание ОС и классификацию, в которой указаны название производителя (напр. Sun), - название ОС (напр. Solaris), поколение ОС (напр. 10), и тип устройства (). - OS, and a classification which provides the vendor name - (e.g. Sun), underlying OS (e.g. Solaris), OS generation (e.g. 10), - and device type (для общих целей, роутер, коммутатор (switch), игровая консоль и т.д.). - - Если Nmap не может определить ОС, но для этого есть хорошие предпосылки (наприме, по крайней мере, - найдены один открытый и один закрытый порты), то Nmap предоставит URL, по которому, если вы точно знаете, - какая ОС используется, вы сможете предоставить набор ее характеристик. Тем самым вы внесете свой вклад в дополнение - базы данных известных ОС Nmap, и она будет более полезна для всех остальных. - - Опция определения ОС также активирует проведение некоторых других тестов, которые позволяют воспользоваться - собираемой в процессе работы информацией. Один из них Классификация Предсказуемости Последовательности TCP - (TCP Sequence Predictability Classification). Это позволяет приблизительно определить, насколько сложно установить - ложное TCP соединение с удаленным хостом. Это может быть полезно для взлома и эксплуатации программ, базирующихся - на доверительных отношениях (rlogin, фильтры брандмауэров и т.д.) или для сокрытия источника атаки. Этот тип - спуфинга (spoofing) теперь редко используется, но многие машины все еще уязвимы к такого рода атакам. Число, - характеризующее сложность, базируется на статистической выборке и может колебаться. Обычно лучше испльзовать - классификацию с испльзованием английских фраз типа - worthy challenge(достойное испытание) или trivial joke(шуточное дело). Эта - информация будет выведена только при включенном вербальном режиме (). Когда вербальный режим - активирован вместе с опцией , то выводится также информация о генарции IP ID последовательности. - Большинство машин находятся в классе incremental(возрастающий), что означает, что они увеличивают - поле ID в IP заголовке для каждого посланого пакета. Это делает их уязвимыми к спуфинг(spoofing) атакам и атакам - с целью сбора расширенной информации. - - uptime guess - - Также во время определения ОС делается попытка узнать время работы целевой машины. С помощью временных меток - (timestamp) TCP (RFC 1323) Nmap - пробует угадать, когда машина была перезагружена в последний раз. Информация может быть не точна, т.к. счетчик - временной метки не был обнулен или был переполнен, или каким-то образом скрыт. Информация выводится только в - вербальном режиме. - - - - Бумажная документация по работе, использованию и настройки опции определения ОС находится на - . - - - Опция определения ОС рассмотрена в . - - - - Функция определения ОС включается и управляется с помощью следующих опций: - - - - - (Включить определение ОС) - - - - - - Включает фукнцию определения ОС, работа которой описана выше. Вы также можете использовать - опцию , которая помимо других функций включает определение ОС. - - - - - - - (Использовать функцию определения ОС только для "перспективных" хостов) - - - - - Функция определения ОС намного более эффективна, если обнаружены, по крайней мере, один открытый и один - закрытый TCP порты. Задайте эту опцию, и Nmap не будет даже пытаться определить ОС хостов, не удовлетворяющих - этому критерию. Это поможет сэкономить массу времени, особенно при сканирование многих - хостов. Эта опция будет действовать только при включении функции ОС путем задания опций - или . - - - - - - ; (Угадать результаты определения ОС) - - - - - - Когда Nmap не в состоянии определеить точное совпадение, она иногда предоставляет наиболее близкие - к результатам сканирования совпадения. Чтобы Nmap сделала это по умолчанию, совпадения должны быть очень - близки. Любая их этих (равных) опций побуждает Nmap к более агрессивному анализу результатов. Nmap - по-прежнему будет сообщать, когда будет найдено не идеальное совпадение, а также отображать стпень - соответствия (в процентах) для каждого набора характеристик. - - - - - - (Устанавливает максимальное количество попыток определения ОС) - - - - - - Когда Nmap пытается определить ОС на целевом хосте и не может найти идеального соответствия результатов, - то она обычно повторяет попытку. По умолчанию, Nmap совершает пять попыток при условии, что существуют - благоприятные условия для определения ОС, и дважды - в противном случае. Задание более низкого значения - (напр. 1) увеличивает скорость работы Nmap, однако вы пропускаете некоторые - записи, с помощью которых, возможно, можно было бы определить ОС. Большое значение может быть задано для - разрешения большего количества попыток при благоприятных условиях. Это делается редко, за исключением тех - случаев, когда необходимо сгенерировать более детальный набор характеристик ОС для занесения в базу данных - Nmap. - - - - - - - - - Скриптовый движок Nmap(NSE - Nmap Scripting Engine) - Nmap Scripting Engine (NSE) - - Скриптовый движок Nmap (NSE) это одна из наиболее мощных и гибких возможностей Nmap. Он позволяет - пользователям писать (и делиться ими) простые скрипты (используя - язык программирования Lua, - Lua programming language) для автоматизации - широкого круга сетевых задач. Эти скрипты выполняются со скоростью и эффективность ожидаемой вами от Nmap. - Пользователи могут использовать разнообразный и постоянно расщиряющийся набор скриптов, которые поставляются - вместе с Nmap, или написать свои скрипты под свои собственные нужды. - - Когда мы создавали эту систему, считалось, что она будет использоваться для задач исследования сети, более - изощренного варианта определения версии, исследования уязвимостей. NSE может быть исполльзован даже для - обнаружения уязвимостей. - - - Чтобы отразить все многообразие возможностей использования скриптов и при этом упростить выбор необходимого - скрипта, каждый из них содержит поле, где указано к какой категории он принадлежит. Сейчас определены следующие - категории: safe, - (intrusive), malware, - version, discovery, - vuln, auth и - default. Все они описаны - в . - в . - - - Скриптовый движок Nmap детально описан -на -в и настраивается с помощью следующих опций: - - - - - - - - - - - - Осуществляет сканирование на основе скриптов. Эквивалентно опции . - Некоторые их применяемых здесь скриптов относятся к категории intrusive (навязчивые) и не должны быть - использованы для сканирования целевой сети без разрешения. - - - - - - - -Осуществляет сканирование на основе скриптов (как ) используя разделенный запятыми список -категорий скриптов, отдельных файлов скриптов или директорий содержащих скрипты вместо стандартного набора скриптов. -Сначала Nmap пытается интерпретирует все аргументы как категории, затем (в случае неудачи) как файлы или директории. -Файл скрипта или директория скриптов могут быть определны с использованием абсолютного или относительного пути. -Абсолютные пути используются так, как вы их зададите. Относительные пути будут определяться относительно: -data filesdirectory search orderscripts, location of ---datadir/; -$NMAPDIR/;NMAPDIR environment variable -~/.nmap/ (не используется в Windows);.nmap directory -NMAPDATADIR/ илиNMAPDATADIR -./. Также все эти папки будут проверяться на наличие поддиректории -scripts/ - -Если вы определили директорию со скриптами, и она была найдена, то Nmap загружает все NSE -скрипты (все файлы с расширением .nse) из этой директории. Файлы без расширения -nse игнорируются. Nmap не производит рекурсивный поиск скриптов во всех -поддиректориях. Если вы указываете конкретный файл, то его расширение не обязательно должно быть -nse. - -По умолчанию скрипты Nmap хранятся в папке scripts - -поддиректории основного каталого Nmap. Для большей производительности, -все скрипты проиндексированы в базе даннных scripts/script.db, -script.db -где указано к какой категории или категориям принадлежит каждый скрипт. Для исполнения всех скриптов из базы данных -Nmap задайте атрибут all. - -Злонамеренные скрипты запускатся не в "песочнице" (sandbox) и поэтому могут повредить вашу систему или нарушить -вашу анонимность. Никогда не используйте скрипты от третьих лиц до тех пор, пока не будете доверять автору или -сами тщательно просмотрите скрипт. - - - - - - - - script arguments - - -Позволяет вам передавать аргументы NSE скриптам. Аргументы передаются как пары -имя=значение. Передаваемый аргумент обрабатывается и хранится в Lua таблице, -к которой имеют доступ все скрипты. Имена передаются как строки (должны быть буквенно-цифровыми значениями) и -используются в качестве ключей в argument-table. Значения могут быть также строками -или в свою очередь таблицами (заключенными в ‘{’ и -‘}’). Такие подтаблицы позволяют переопределить аргументы для конкретных скриптов -(например, если вы хотите предоставить различным скриптам различные пары login/password). Например, вы можете -определить аргументы через запятые: user=bar, -password=foo и -anonFTP={password=nobody@foobar.com}. Если вы хотите переопределить опцию для -скрипта, вы должны проиндексировать подтаблицу с помощью id скрипта, т.к. это -единственный способ указать скрипту на наличие специального аргумента. - - - - - - - - - - Эта опция делает то же самое, что и , но на один ISO уровень выше. - Если задана эта опция, то все входящие и исходящие соединения, осуществляемые скриптом, выводятся на экран. - Выводимая информация включает в себя используемый коммуникационный протокол, источник, цель и переданные - данные. Если более 5% переданных данных невозможно вывести на экран, то вывод будет представлять собой - шестнадцатеричный (hex) дамп. - - - - - - - - - - Этой опцией обновляется база скриптов scripts/script.db, - которая используется Nmap для определения доступных скриптов по умолчанию и их категорий. Обновлять - базу необходимо, только если вы добавили или удалили NSE скрипты из директории - scripts, или поменяли категорию какого-нибудь скрипта. Эта опция - обычно используется без аргументов: nmap --script-updatedb. - - - - - - - - - - Опции управления временем и производительностью - timing - performance - Наиболее приоритетной стороной развития Nmap для меня всегда была производительность. Сканирование по - умолчанию (nmap имя_хоста) какого-либо хоста в моей - локальной сети занимает пятую долю секунды. Этого едва хватает, чтобы моргнуть, но становится существенным, когда - вы сканируете сотни или тысячи хостов. Более того, некоторые типы сканирования, как например, UDP или - сканирование с целью определения версии могут в значительной степени увеличить время сканирования. Этому также - могут поспособствовать настройки некоторых брандмауэров, где есть ограничения на количество ответов. Хотя в Nmap - используются параллелизм и различные продвинутые алгоритмы для уменьшения времени сканирования, у пользователя - есть возможность полностью контролировать работу программы. Опытные пользователи Nmap задают команды таким образом, - чтобы получать только необходимую им информацию и в удовлетворяющие им сроки. - - Способами увеличения скорости сканирования могут быть пропуск не критичных тестов, или обновление Nmap до - последней версии (улучшения производительности выходят довольно часто). Оптимизация параметров опций управления - временем также может значительно повлиять на скрость сканирования. Эти опции описаны ниже. - -Некоторые опции могут принимать параметр время. По умолчанию он задается в -миллисекундах, но вы можете добавить ‘s’, ‘m’ или ‘h’ к значению, чтобы задать его в секундах, минутах или часах. -Поэтому для опции аргументы 900000, -900s и 15m означают одно и то же. - - - - - - ; - (Регулирует размер групп для параллельного сканирования) - - - - -В Nmap есть возможность осуществлять сканирование портов или сканирование с целью определения версии нескольких -хостов параллельно. Это происходит путем разделения целевого IP пространства на группы, а затем сканирования одной -группы за раз. В общем случае целесообразно использовать большие группы. Недостатком является то, что вы не можете -узнать информацию о каком-либо хосте, пока не закончится сканирование всей группы. Таким образом, если Nmap начнет -сканирование группы из 50-ти хостов, то пользователь не будет получать никакой информации (кроме обновлений информации -предлагаемых в вербальном режиме), пока не будет завершено сканирование всех 50-ти хостов. - -По умолчанию Nmap использует компромиссный подход к решению этой проблемы. Сначала производится сканирование -небольших групп из 5-ти хостов, поэтому первые результаты приходят быстро, затем размер группы постепенно -увеличивается до максимального - 1024. Точные значения по умолчанию зависят от заданных опций. Для большей -эффективности Nmap использует группы больших размеров для UDP сканирования и для некоторых типов TCP сканирования -портов. - -Когда максимальный размер группы задан опцией , Nmap не будет его превышать. -Минимальный размер группы задается опцией , и Nmap будет пытаться поддерживать размер -групп больше этого уровня. Возможно Nmap придется использовать группы меньше заданных размеров, когда для выполнения -условия минимальности будет не хватать целевых хостов. Эти опции могут быть использованы для удержания размера -группы внутри некоторого диапазона, хотя это редко необходимо. - -Эти опции не имеют эффекта на фазе обнаружения хостов. Там используются обычное ping сканирование -(). При сканировании с целью обнаружения хостов всегда используются большие группы для увеличения -скорости и точности. - -Основной целью использования этих опций является задание большого минимума размера группы, с тем чтобы -сканирование проходило быстрее. При сканировании сети класса C обычным выбором является 256. При сканировании -большого количества портов, превышение этого числа вряд ли поможет. При сканировании лишь нескольких портов, -наилучшим размером группы будет 2048 или больше. - - - - - - - ; - (Регулирует распараллеливание запросов) - - - - - -Эти опции регулируют общее количество запросов для группы хостов. Опции испльзуются при сканировании портов и при -обнаружени хостов. По умолчанию Nmap высчитывает степень параллельности основываясь на производительности сети. Если -пакеты отбрасываются, то Nmap использует меньшее количество запросов. Количество запросов медленно увеличивается по -мере того, как сеть продолжает нормально работать. Эти опции устанавливают минимальную и максимальную границы для этой -переменной. По умолчанию параллелизм устанавливается в 1, если сеть работает плохо, и может достигать нескольких сотен -при идеальных условиях. - -Наиболее частым вариантом применения является установка опции в значение -большее единицы, чтобы увеличить скорость сканирования плохо работающих хостов и сетей. Это очень рискованная опция, -т.к. установка большого значения может повлиять на правильность результатов сканирования. Установка этого значения -также сокращает возможности Nmap по динамическому контролю параллелизма в зависимости от условий в сети. Значение -равное 10-ти является приемлимым, хотя я прибегаю к этой опции в последнюю очередь. - -Опция иногда устанавливается для предотвращения отправки хостам более одного -запроса за раз. Это может быть полезно в комбинации с опцией (описывается далее), хотя -она и сама справляется со своими обязанностями. - - - - - - - , - , - (Регулирует время ожидания ответа на запрос) - - - - - - -В Nmap есть значение промежутка времени, в течении которого будет ожидаться ответ на запрос, перед тем как -прекратить попытки или совершить еще одну. Этот промежуток вычисляется на основе времени, в течении которого были -получены ответы на предыдущие запросы. Если в сети есть значительная и непостоянная задержка, то этот промежуток может -возрасти до нескольких секунда. Он также устанавливается на безопасном (высоком) уровне и может таким и оставаться -некоторое время, если Nmap производит сканирование не отвечающих на запросы хостов . - - -Задание значений и ниже значений по -умолчанию может существенно сократить время сканирования. Это особенно заметно при различных вариантах сканирования -с заданной опцией , а также при сканировании сильно фильтруемых сетей. Однако не торопитесь -делать этого сразу. Сканирование займет много времени, если вы укажете такое низкое значение, при котором у большинства -запросов закончиться время ожидания ответа, и они будут ретранслированы, в то время как ответы на них будут в пути. - - -Если хосты находятся в локальной сети, то 100 миллисекунда будет приемлимым значением опции -. Если при этом производится отслеживание маршурта, то для начала пропингуйте хост -в сети с помощью утилиты ICMP ping или hping2 -hping2, -у которой больше шансов обойти брандмауэр. Выясните среднее максимальное значение для, примерно, 10-ти пакетов. -Удвойте это значение для передачи опции и умножьте на три или четыре для опции -. Обычно я не устанавливаю maximum RTT ниже 100 мс, не зависимо от результатов -пингования. А также не превышаю 1000 мс. - -Опция редко используется; она может быть полезна, в случае если сеть -настолько ненадежна, что даже значения Nmap по умолчанию слишком агрессивны. Так как Nmap просто сокращает время -ожидания до минимума, в случае если сеть кажется надежной, то нужды в этой опции нет, о ней дожно быть сообщено как -о баге на nmap-dev рассылку.nmap-dev mailing list - - - - - - - - - (Задает максимальное - количество повторных передач запроса) - - - - - -Когда Nmap не получает ответа на запрос сканирования порта, это может означать, что порт фильтруется. А возможно, -запрос или ответ просто затерялись в сети. Также возможно, что у цели есть ограничение на количество ответов, что -стало причиной временной блокировки запроса. В этом случае Nmap повторную передачу исходного запроса. Если для Nmap -сеть кажется ненадежной, то она может совершить очень много попыток, перед тем как бросить это дело. Хотя это и -придает достоверность результатам сканирования, это в то же время увеличивает время сканирования. Когда -производительность критична, время сканирования может быть сокращено путем введения ограничения на максимальное -количество повторных передач запроса. Вы даже можете задать , чтобы предотвратить -все повторные попытки, хотя это не рекомендуется. - -Значением по умолчанию (без шаблона) является 10 ретрансляций. Если сеть кажется надежной, и -целевые хосты не имеют ограничений на количество ответов, то Nmap обычно делают одну повторную попытку. Поэтому -установка в низкое значение (например, 3) никак не вличет на большинство типов -сканирования. Такие значения могут значительно увеличить скорость сканирования медленных (с ограничениями на -количество ответов) хостов. Обычно вы теряете некоторую информацию, когда Nmap рано прекращает сканировать порты, -поэтому лучше дать истечь времени , и потерять всю информацию о цели. - - - - - - - (Прекращает сканирование медленных целей) - - - - - -Некоторые хосты просто требуют длительного времени сканирования. Это может быть в силу -низкой производительности или ненадежности сетевого оборудования или программного обеспечения, ограничений на -количество пакетов или ограничивающих брандмауэров. Несколько процентов наиболее медленных хостов могут занять -большую часть времени сканирования. Иногда лучшим выходом является просто пропуск таких хостов. Передайте в качестве -аргумента опции максимальное значение промежутка времени, в течении которого вы -готовы ждать. Я часто задаю 30 мин, чтобы удостовериться в том, что Nmap не потратит -более получаса на единичный хост. Имейте ввиду, что в течении этого получаса Nmap может сканировать другие хосты, так -что это не просто потеря времени. Хост, чье время истекло, пропускается. Для этого хоста не выводится ни таблица портов, -ни информации об ОС. - - - - - - - ; - (Регулирует задержку между запросами) - - - - - -Эта опция вынуждает Nmap подождать по крайней мере заданное время между каждым запросом. Это особенно полезно в -случае наличия ограничения на количество ответов у целевых хостов. Машины Solaris (как и многие другие) обычно отвечают -на запросы при UDP сканировании только одним ICMP сообщением в секунду. Посылка большего количества запросов со -стороны Nmap будет впустую. Установка значения опции в -1 сек будет поддерживать в Nmap такую медленную интенсивность. Nmap пытается -определить ограничения на количество ответов у целевых хостов и подстроить задержку между запросами соответственно, -но ничто не мешает указать вам это значение явно, если вы точно знаете, что так будет лучше. - -Когда Nmap подстраивает задержку между запросами к обнаруженному ограничению, то скорость сканироания -значительно уменьшается. Опция позволяет задать наибольшую возможную задержку. -Установка здесь маленького значения может привести к бесполезной ретрансляции пакетов или возможному пропуску портов, -если у цели есть строгий лимит на количество ответов. - -Еще одним вариантом использования опции является обход пороговых систем обнаружения -и предотвращения вторжений (IDS/IPS).intrusion detection systemsevading - - - - - - - - - (Задает минимальную интенсивность сканирования) - - - - -Функции динамического управления различными опциями времени в Nmap хорошо справляются с задачей подборки -подходящей скорости сканирования. Тем не менее, иногда вы можете заранее узнать подходящую интенсивность сканирования -сети, или можете гарантировать, что сканирование закончится к определенному времени. Когда задается опция -, Nmap будет пытаться отсылать пакеты с той же или большей, чем задано, интенсивностью. -Аргументом этой опции является положительное число, отражающее интенсивность сканирования в пакетах в секунду. Например, -задание опции означает, что Nmap будет пыпыться отсылать пакеты с интенсивностью -300 пакетов в секунду или больше. Задание низкого значения не отнимает у Nmap права работать с большей интенсивностью, -если позволяют условия. - -Существуют два варианта, при которых реальная интенсивность работы будет меньше заданного минимума. Первый, когда -заданный минимум быстрее, чем наиболее быстрый возможный уровень работы Nmap, который зависит от аппаратного -обеспечения. В этом случае Nmap будет посылать пакеты так быстро, как может; но будьте осторожны, т.к. при быстрой -скорости возможны потери точности. Второй случай, когда у Nmap больше нечего отсылать, например, в конце сканирования, -когда последние запросы уже посланы, и Nmap ожидает ответы на них. Это нормально, когда интенсивность падает в -конце сканирования или при смене групп сканирования. - -Задание минимального уровня интенсивности должно производится с осторожностью. Сканирование быстрее, чем -возможно в данной сети, может привести к потери точности. В некоторых случаях, задание выского уровня интенсивности -может привести к тому, что сканирование займет больше времени, чем с более низким уровнем. Это -может произойти в случае, если адаптивные ретрансляционные adaptive retransmissionretransmissionretransmission -алгоритмы Nmap обнаружат перегрузку сети, вызванную высоким уровнем интенсивности сканирования, и увеличат количество -ретрансляций для повышения точности сканирования. Поэтому, даже хотя пакеты отсылаются с большой интенсивностью, -еще больше пакетов отсылается впустую. Установите максимальное количество ретрансляций с помощью опции -, если вы хотите ограничить общее время сканирования. - -Опция глобальна, она оказывает влияние на все сканирование, а не на отдельные хосты. -Учитывается только при сканировании с целью обнаружения хостов и сканировании портов. Другие функции, как например -определение ОС, имеют собственные особенности управления временем. - - - - - - - - (Задает максимальную интенсивность сканирования) - - - - -Дополнительно к опции есть опция , которая ограничивает -максимальную интенсивность сканирования заданным значением. Используйте , например, -чтобы ограничиться 100 пакетами в секунду в быстрой сети. Используйте для медленного -сканирования - один пакет в десять секунд. - - также как и глобальная опция, оказывающая влияние -на все сканирование. Учитывается только при сканировании с целью обнаружения хостов и сканировании портов. - -Иногда уровень интенсивности может превышать максимальное заданное значение для больры с непредвиденными -задержками, но в среднем он будет находится на максимальном уровне или ниже. Nmap будет работать с меньшей -интенсивностью, если того требуют условия. Чтобы удерживать интенсивность сканирования внутри определенного -промежутка, используйте опции и вместе. - - - - - - - - - -Многие хосты имеют давно использующие ограничения rate limiting -на количество ICMP сообщений об ошибке (как ошибки о недостижимости порта). Многие системы сейчас используют похожие -ограничения на количество пакетов RST (сброс), генерируемых ими. Это может сильно замедлить сканирование, т.к. Nmap -подстраивается под эти ограничения. Вы можете указать Nmap игнорировать такие ограничения (для сканирования портов типа -SYN, при котором не отвечающие порты не считаются открытыми) -путем задания опции . - -Использование этой опции может привести к потери точности сканирования, т.к. Nmap могла не подождать неоходимое -время ответа RST (на которые у целевой машины есть ограничения). При сканировании типа SYN не отвечающие порты -помечаются как фильтруемые, а не закрытые, как в -случае принятия ответа RST. Это опция полезна, только когда вам важны открытые порты, а различать -закрытые и фильтруемые порты нет необходимости. - - - - - - - - (Устанавливает шаблон настроек управления временем) - - timing templatesparanoid, sneaky, polite, normal, aggressive, and insane - - -paranoid timing template -sneaky timing template -polite timing template -normal timing template -aggressive timing template -insane timing template - - -Хотя описанные выше опции управления временем мощны и эффективны, многих людей они сбивают с толку. Более того, -выбор подходящих значений может иногда занимать больше времени, чем само сканирование. Поэтому Nmap предлагает более -легкий подход, заключайющийся в применении шести шаблонов настроек. Вы можете задавать их с помощью опции - и номера шаблона (0–5) или его имени. Имена шаблонов следующие: - (), - (), - (), - (), - () -и  (). -Первые два предназначены для обхода IDS. Вежливый (polite) режим снижает интенсивность сканирования с целью меньшего -потребления пропускной способности и машинных ресурсов. Обычнй (normal) режим устанавливается по умолчанию, поэтому -опция ничего не делает. Агрессивный (aggressive) режим повышает интенсивность сканирования, -предполагая, что вы используете довольно быструю и надежную сеть. Наконец, безумный (insane) режим -insane () timing template -предполагает, что вы используете чрезвычайно быструю сеть и готовы пожертвовать точностью ради скорости. - -Эти опции позволяет определять пользователям, насколько агрессивными они хотят быть, оставляя за Nmap право -выбирать подходящие значения опций управления временем. Также шаблоны позволяют производить некоторые незначительные -корректировки скорости, для которых пока нет отдельных опций. Например, aggressive () timing template -запрещает установку динамической задержки во время сканирования выше 10 мс для TCP порт, а - выше -5 мс. Шаблоны могут использоваться в комбинации с описанными выше опциями; в этом случает будут использоваться в -качестве значений аргументы этих опций, а не значения по умолчанию, заданные в шаблонах. Я рекомендую задавать - при сканировании довольно современных и надежных сетей. Задавайте эту опцию, даже если вы -используете описанные выше опции управления временем, и вы сможете получить выгоду от этих незначительных -оптимизаций, которые включаются этой опцией. - -Если у вас приличная широкополосная связь или ethernet соединение, то я бы порекомендовал вам всегда использовать -. Некоторым людям нравится , хотя она чересчур агрессивна на мой взгляд. Иногда -люди используют , потому что думают, что так у них мешьнше шансов пропустить какие-либо хосты или -потому, что считают себя вежливыми по жизни. Они часто не осознают, насколько опция polite () timing template -медленна. Время их сканирования может занять в десять раз больше обычного. Проблемы с хостами и пропускной -способностью редки при использовании опции (), поэтому я рекомендую ее для осторожного сканирования. -Отключение функции определения версии намного более эффективно для сокращения таких проблем, чем попытка настройки -всех опций управления временем. - -Хотя опции paranoid () timing templatesneaky () timing template -могут быть полезны для обхода IDS, они отнимут очень много времени при сканировании тысяч хостов или портов. Для -такого сканирования, предпочтительнее будет задать свои точные значения, чем полагаться на опции . - -При использовании опции в любой момент времени производится сканирование только одного порта, -и перед отправкой каждого запроса проходит пять минут. и практически одинаковы, -только между запросами проходит 15 секунд и 0.4 секунды соответственно. Опция является опцией -Nmap по умолчанию, она включает распараллеливание.normal () timing template - эквивалента опциям и устанавливает максимальную задержку при TCP сканировании 10 -миллисекунд. эквивалента опциям - и устанавливает максимальную задержку при TCP сканировании 5 миллисекунд. - - - - - - - - - - Обход Брандмауэров/IDS - firewallsbypassing - intrusion detection systemsevading - -Многие пионеры Интернета представляли его в своем воображении как открутую глобальную сеть с универсальным -пространством IP адресов, позволяющую создавать виртуальные соединения между любыми двумя точками. Это позволило бы -хостам общаться на равных, обмениваясь информацией между собой. Люди могли бы получить доступ к своим домашним -системам с работы, изменяя настройки климат-контроля или открывая двери ранним гостям. Этому видению глобальной -соединенности не суждено было сбыться по причинам нехватки адресного пространства и проблемам безопасности. В ранние -1990-е организации стали использовать брадмауэры с целью сокращения возможностей соединения. Огромные сети были -отрезаны от Интернета различными программными прокси, серверами преобразования имен и пакетными фильтрами. -Неограниченный поток информации сократился до строго регламентированных каналов связи и содержимому передающемуся по -ним. - -Сетевые барьеры, такие как брандмауэры, могут сделать процесс исследования сети чрезвычайно сложным. Никаких -послаблений не намечается, т.к. предотвращение инвентаризации сети часто является ключевой целью введения таких -устройств. Тем не менее, Nmap предоставляет множество функций для облегчения понимания структуры таких сложных сетей -и для проверки того факта, что сетевые фильтры работают как предполагалось. Поддерживаются даже механизмы обхода -плохо организованных вариантов защит. Один из лучших методов проверки вашей системы безопасности - это попытка ее -обойти. Поставьте себя на место атакующего и примените описанные ниже методы к вашей сети. Запустите FTP bounce -сканирование, idle сканирование, атаку с фрагментацией пакетов или попробуйте пробиться через один из ваших -прокси-серверов. - - -В дополнении к ограничению сетевой активности, компании все больше и больше используют мониторинг траффика с -помощью систем обнаружения вторжений (intrusion detection systems - IDS). Все эти системы используют правила, -составленные для обнаружения различного рода сканирований с помощью Nmap, т.к. сканирование часто оказывается -предвестником атак. Многие из этих систем недавно были преобразованы в системы -предотвращения вторжений (intrusion prevention systems - IPS), -intrusion prevention systems -intrusion detection systems -которые блокирую трафик, расцениваемый как злонамеренный. К сожалению для сетевых администраторов и продавцов IDS, -обнаружение вторжений с большой долей вероятности путем анализа паетов данных является сложной задачей. Атакующие с -помощью терпения, навыков и с помощью некоторых опций Nmap обычно могут незамеченными обойти системы IDS. Между тем, -администраторам приходится иметь дело с большим количеством ложных положительных результатов, когда такие системы -ошибаются и блокируют безвредную сетевую активность. - -Время от времени некоторые высказывают предположения, что Nmap не следует предоставлять фукнции для обхода IDS. -Они аргументируют свою позицию тем, что эти функции могут быть с равным успехом использованы атакующими, так же как они -используются администраторами для улучшения систем защиты. Проблема в таких рассуждениях заключается в том, что -такие методы будут по-прежнему использоваться атакующими, которые просто найдут другие утилиты или самостоятель -добавят такие функции в Nmap. Тем временем администраторам будет намного сложнее выполнять свою работу. Использование -только современных FTP серверов намного более мощное средство защиты, чем попытки предотвратить распространение -утилит позволяющих реализовать FTP bounce атаки. - - -Не существует такой магической опции, которая позволяла бы обнаруживать и обходить брандмауэры и IDS. Для этого -необходимы навыки и опыт. Подробное описание таких методов выходит за рамки данного справочного руководства, где -содержаться только важные опции с описанием их возможностей. - - - - - (фрагментировать пакеты); - (используя заданное значение MTU) - - - - - - При задании опции все типы сканирования (включая различные типы пингования) будут - использовать маленькие фрагментированные IP пакеты. Идея состоит в том, чтобы разбить TCP заголовок на - части и посылать их в различных пакетах для того, чтобы не дать определить пакетным фильтрам и системам - обнаружения вторжения, что вы делаете. Будьте осторожны с этой опцией! Некоторые программы имеют проблемы с - обработкой таких маленьких пакетов. Один старый сниффер Sniffit аварийно завершал работу после принятия - первого фрагмента. Задайте эту опцию один раз, и Nmap будет разбивать пакеты на части по 8 байт или меньше - после IP заголовка. Таким образовм, 20-ти байтный TCP заголовок будет разбит на 3 пакета. Два из них будут - содержать по 8 байт этого заголовка, а третий - последние 4. Конечно же, каждый фрагмент также имеет IP - заголовок. Задайте опцию снова, чтобы использовать фрагменты по 16 байт - (тем самым сократится число фрагментов). - giving twice - Или вы можете задать свой собственный размер фрагмента с помощью опции . Не используйте - опцию вместе с . Размер должен быть кратным 8. В то время как - фрагментированные пакеты не смогут пройти через пакетные фильтры и брандмауэры, которые ставят в очередь - все IP фрагменты, например, с помощью опции CONFIG_IP_ALWAYS_DEFRAGв ядре Linux, некоторые - сети не могут позволить себе связанное с этим падение производительности и поэтому не используют такую - возможность. Другие могут использовать ее, потому что фрагменты в таких сетях могут идти по разным маршрутам. - Некоторые системы фрагментируют исходящие пакеты прямо в ядре. Linux с включенным модулем отслеживания - соединения iptables iptables тому пример. - Произведите сканирование с включенным сниффером Wireshark - - Wireshark, - чтобы убедиться, что пакеты фрагментируются. Если в вашей ОС возникают проблемы, попробуйте задать опцию - - , чтобы обойти IP слой и отсылать сырые ethernet фрэймы. - - - - - - - (Маскировка сканирования с помощью фиктивных хостов) - - decoys - - - Производится сканирование с использованием фиктивных хостов; в этом случае цель сканирования считает, - что заданные вами фиктивные хосты также производят ее сканирование. Хотя IDS цели может сообщить о том, что - было произведено 5-10 сканирований портов с каждого IP адреса, система не сможет узнать, с какого из этих - IP адресов действительно производилось сканирование, а какие были лишь безвредными ловушками. Хотя этот тип - сканирования может быть распознан путем отслеживания маршрута, сбрасыванием ответа или другими активными - методами, в большинстве случае он является эффективным способом сокрытия вашего IP адреса. - - При задании фиктивных хостов, разделяйте их запятыми; вы также можете указать - ME - ME (decoy address) - как один из фиктивных хостов для задания позиции в списке вашего реального IP адреса. Если вы задаете - ME в шестой позиции или дальше, некоторые обычные системы обнаружения - сканирования портов (например, Solar Designer's - Solar Designer excellent Scanlogd) - Scanlogd - вряд ли вообще отобразят ваш IP адрес. Если вы не задаете флаг ME, Nmap - поставит его в произвольную позицию. Вы также можете использовать - RNDRND (decoy address) - для генерации произвольного, незарезервированного IP адреса, или - RND:чило для генерации определенного - числа адресов. - Имейте ввиду, что хосты, указанные вами в качестве фиктивных, должны работать, иначе вы просто - зафлудите целевые хосты с помощью запросов на подключение. Также легко будет определить, какой хост - действительно производит сканирование, если только он будет работать. Возможно вы захотите использовать IP - адреса вместо имен (в этом случае сети, в которых находятся фиктивные хосты, не видят вас в своих логах). - - - Фиктивные хосты используются и во время фазы обнаружения хостов (используя ICMP, SYN, ACK и что там - еще), и во время сканирования портов. Также они используются во время удаленного определения ОС - (). Эта техника не работает при сканировании с целью определения версии или с целью - обнаружения возможности установления TCP соединения. Во время сканирования задержки принудительно - устанавливаются между каждой группой обманных запросов. Т.к. ловушки посылаются одной группой сразу, то это - может временно нарушить работу системы контроля ограничений нагрузок. - - Использование большого количества фиктивных хостов может снизить скорость вашего сканирование и даже - сделать его менее точным. Также, некоторые ISP будут отфильтровывать ваши обманные пакеты, в то время как - некоторые вообще никак не ограничивают такого рода IP пакеты. - - - - - - (Изменить исходный адрес) - - spoofing source address - - - - В некоторых обстоятельствах Nmap может не определить ваш адрес (в этом случае Nmap сообщит вам об этом). - В этом случае используйте опцию , передав ей в качестве параметра IP адрес, чтобы указать - интерфейс, который вы хотите использовать для отправки пакетов. - - Также эта опция может быть использована для того, чтобы заставить "думать" цель сканирования, что ее - сканирует кто-то другой. Представьте компанию, которая частенько подвергается - сканированию портов со стороны конкурента! Как правило, в этом случае необходимо использовать также опции - и . Имейте ввиду, что вы не будете получать в ответ никаких пакетов - (они будут отправлены на указанный вами IP адрес), поэтому Nmap не будет выводить какой-либо полезной - информации. - - - - - - - (Использовать конкретный интерфейс) - - interface - - - - Указывает Nmap, какой интерфейс использовать для отправки и приема пакетов. Nmap в состоянии - определить его автоматически, но сообщит вам, если не сможет. - - - - - - - (Задать свой номер порта) - - - source port number - - - -Одной из удивительно часто встречаюшиься ошибок при конфигурировании системы безопасности является тенденция -доверять траффику основываясь только на номере исходного порта. Легко понять как это происходит. Администратор -устанавливает новенький брандмауэр, и его заваливают жалобы от неблагодарных пользователей, чьи приложения перестали -работать. В частности, может не работать DNS, т.к. UDP DNS ответы от внешних серверов больше не могут войти в сеть. Еще -одним распространенным примером ялвяется FTP. При активной FTP передаче, удаленный сервер пытается установить -соединение с клиентом, чтобы послать запрашиваемый файл. - -Существуют безопасные методы решения этих проблем, часто в виде прокси на уровне приложений или надстроек к -брандмауэрам. Но, к сожалению, существуют и более легкие, небезопасные методы. Принимая во внимание то, что DNS ответы -приходят с порта 53 а FTP с порта 20, многие администраторы поддаются искушению и просто разрешают весь входящий -трафик с этих портов. Они также часто полагают, что атакующие не заметят и не будут использовать такие дыры в -брандмауэрах. В других случаях, администраторы считают, что это всего лишь временные меры, до тех пор пока они не -придумают более безопасные способы решения проблем. Потом они забывают об этом. - -Перегруженные работой сетевые администраторы не единственные, кто попадается в такую ловушку. Многочисленные -продукты просто кишат такими небезопасными правилами. Даже Microsoft заслуживает порицания. Фильтры IPsec, которые -были установлены в Windows 2000 и Windows XP содержат внутренне правило, разрешающее весь TCP или UDP траффик с порта -88 (Kerberos). Еще один известный случай: версии брандмауэра Zone Alarm до 2.1.25 разрешали все входящие UDP пакеты с -порта 53 (DNS) или 67 (DHCP). - -Nmap предоставляет опции и (они эквиваленты) для того, чтобы -воспользоваться такими ошибками. Просто задайте номер порта, и Nmap будет использовать его для отправки пакетов. Nmap -должна использовать различные номера портов, чтобы точно определить ОС; также DNS запросы игнорируют опцию -, т.к. для их осуществления Nmap использует системные библиотеки. Большинство TCP -вариантов сканирований, включая SYN сканирование, полностью поддерживают эту опцию, как и UDP сканирование. - - - - - - - (Добавить произвольные данные к посылаемым - пакетам) - - - - В обычных условиях Nmap посылает минимальные пакеты, содержащие только заголовок. Так TCP пакеты - составляют 40 байтов, а запросы на ICMP эхо ответ всего 28. Эта опция указывет Nmap добавлять заданное число - произвольных байтов к посылаемым пакетам. Эта опция не влияет на пакеты, используемые для определения ОС - () - no effect in OS detection, - поскольку в этом случае необходимо тщательное соответствие запросов, но большинство пакетов, используемых для - различных видов пингования и сканирования портов поддерживают ее. Это немного замедляет сканирование, зато - делает его более незаметным. - - - - - - - (Посылать пакет с заданным ip - опциями) - - IP options - - - Протокол IP предоставляет - несколько опций, которые могут быть заданы в заголовке пакета. В отлиии от повсеместно используемых TCP опций, - опций IP редко видны из соображений практичности и безопасности. Фактически, большинство роутеров Интернета - блокируют наиболее опасные опации, как, например, отслеживание источника. И все же опции могут быть полезны для - определения и манипулирования сетевым маршрутом к целевым машинам. Например, возможно вы сможете воспользоваться - опцией для определния маршрута до цели, когда более традиционные методы в стиле tracerout будут бесполезны. Или - если ваши пакеты блокируются каким-либо брандмауэром, вы можете попробовать задать маршрут с менее строгим - сетевым экраном. - - Наиболее действенным способом задания IP опций является передача их значений в качестве аргументов опции - . Каждое шестнадцатиричное значение задается с помощью - \x, после которого следуют два цифры. Вы можете повторять символы, поставив - после них звездочку и указав количество повторений. Например, - \x01\x07\x04\x00*36\x01 это шестнадцатиричная строка, содержащая 36 NUL байтов. - - - Nmap также предоставляет механизм сокращений для задания таких опций. Просто передайте в качестве - аргумента букву R, T или - U для задания опции записи маршрута, - record route IP option записи временной метки - record timestamp IP option или обеих - соответственно. Ослабление или ужесточение отслеживания источника - source routing - может быть задано с помощью L или S, - затем пробела, а затем разделенный пробелами список IP адресов. - - Если вы хотите заданные опции в передаваемых и получаемых пакетах, задайте опцию - . Для большей информации и примеров использования IP опций с Nmap, смотрите - . - - - - - - - - (Установить IP поле time-to-live (время жизни) - - time to live (TTL) - - - - Устанавливает IPv4 поле time-to-live в посылаемых пакетах в соответствии с заданным значением. - - - - - - (Использовать произвольный порядок целей сканирования) - - randomization of hosts - - - - Указывает Nmap перемешать каждую группу, содержащую до 16384 хостов, перед началом сканирования. Это - может сделать сканирование менее заметным для различного рода систем сетевого мониторинга, особенно если вы - используете низкие значения таймингов. Если вы хотите перемешивать большие по размеру группы, то увеличьте - значение - PING_GROUP_SZ - PING_GROUP_SZ - в nmap.hnmap.h - и перекомпилируйте программу. Альтернативным решением является генерация списка целевых IP адресов - (), обработка его с помощью Perl скрипта и - затем передача его Nmap в качестве параметра опции - .randomizing hosts with - - - - - - - - (Задать собственный MAC адрес) - - spoofing MAC address - - - - Указывает Nmap использовать заданный MAC адрес - MAC address - для всех отсылаемых сырых ethernet фреймов. Эта опция подразумевает использование, - implied by - чтобы быть уверенным, что Nmap действительно использует пакеты уровня ethernet. MAC адрес может быть задан в - нескольких форматах. Если это просто число 0, то Nmap выбирает польностью - произвольный MAC адрес для сессии. Если задается строка в виде простого набора шестнадцатиричных цифр (можно - разделять пары двоеточиями), то Nmap будет использовать эту строку в качестве MAC адреса. Если задано менее 12-ти - шестнадцатиричных цифр, то Nmap заполняет остаток из 6 байтов произвольными значениями. Если в качестве аргумента - не передается ни 0, ни шестнадцатиричная строка, то Nmap просматривает - nmap-mac-prefixes в поисках названия производителя, содержащего данную строку - (нечувствительна к регистру). Если найдено совпадение, то Nmap использует OUI производителя (3-байтный префикс), - organizationally unique identifier (OUI)nmap-mac-prefixes - а оставшиеся 3 байта заполняет произвольно. Примеры аргументов опции : - Apple, 0, - 01:02:03:04:05:06, deadbeefcafe, - 0020F2 и Cisco. Эта опция оказывает влияние - только на сканирования с использованием сырых пакетов, такие как SYN сканирование или определение ОС, а также - не ориентированные на соединение функции, такие как определение версии или Nmap Scripting Engine (NSE). - - - - - - - (Посылать пакеты с фиктивными TCP/UDP контрольными суммами) - - TCP checksum - checksums - - - - - Указывает Nmap использовать неправильные TCP или UDP контрольные суммы для пакетов, отправляемых на - целевой хост. Т.к. практически все реализации стека IP просто не обрабатывают такие пакеты, то любые ответы - скорее всего приходят от брандмауэров или IDS, которые не обременяеют себя проверкой контрольной суммы. Более - детальное описание этой техники смотрите на - - - - - - - - - - - Вывод результатов - output formats - - Любая утилита безопасности полезна ровно настолько, насколько полезны выдаваемые ею результаты. Различные - сложные тесты и алгоритмы имеют мало пользы, если они не представлены в хорошо организованной и удобной для - понимания форме. Предоставляя разлиные способы вывода результатов Nmap используется людьми и программным - обеспечением, т.к. нет такого формата, который подходил бы всем. Поэтому Nmap предлагает несколько форматов, - включая интерактивный режим для чтения людьми и XML для удобного анализа программным обеспечением. - -В дополнении к предоставлению различных форматов вывода, Nmap предлагает опции для упрваления уровнем вербальности -выходных данных и отладочных сообщений. Результаты могут быть направлены на стандартный вывод или в файлы, причем Nmap -может как добавлять в конец файлов, так и создавать новые. Выходные файлы также могут быть использованы для -продолжения остановленного сканирования. - -Nmap предоставляет пять различных выходных форматов. Формат по умолчанию называется -интерактивный вывод,interactive output, результаты передаются на стандартный вывод (stdout).stdoutstandard output -Есть также -нормальный вывод,normal output, -который подобен интерактивному, за исключением того, что в процессе работы выводится меньше информации и предупреждений, -т.к. предполагатеся, что эти результаты будут анализироваться после завершения сканирования, а не интерактивно. - -XML выводXML output -это один из наиболее важных выходных форматов, т.к. он может быть конвертирован в HTML, лего анализируется программами -типа графического пользовательского интерфейса Nmap или может быть экспортирован в базу данных. - -Оставшимися двумя форматами являются -grepable форматgrepable output, -который содержит большую часть о целевом хосте в одной строке, и -sCRiPt KiDDi3 0utPUtscR1pT kIddI3 вывод -для пользователей, которые считают себя |<-r4d. - -В то время как интерактивный вывод устанавливается по умолчанию и не имеет связанных с ним опций командой строки, -опции остальных четырех форматов вывода имеют похожий синтаксис. В качестве аргумента они принимают имя файла, где -должны храниться результаты. Возможно испльзование нескольких форматов, но каждый из них должен быть задан только один -раз. Например, вы хотите сохранить результаты предоставляемые форматом нормального вывода для себя, и в то же время -сохранить в формате XML результаты того же сканирования для анализа программами. Вы можете сделать это с помощью опции -. Для краткости здесь используются простые имена типа - myscan.xml, но рекомендуется использовать более описательные имена. Каждый - выбирает имена по своему; я обычно использую длинные имена, содержащие дату сканирования и пару слов описания, и - помещаю эти файлы в директории с именем компании, которую я сканирую. - -Хотя с помощью этих опций информация сохраняется в файлы, Nmap по-прежнему выводит интерактивную информацию на -стандартный вывод. Например, с помощью опции nmap -oX myscan.xml target XML -сохраняется в файл myscan.xml, а стандартный вывод заполняется информацией, как -если бы опция вообще не была задана. Вы можете изменить это поведение передав в качестве -аргумента к одному из форматов вывода символ дефиса. Это деактивирует интерактивный вывод, а на стандартный вывод -будет пересылаться информация в заданном вами формате. Поэтому с помощью команды -nmap -oX - target на стандартный вывод будет пересылаться только XML.outputto stdout with - -Серьезный ошибки могут выводиться в стандартный поток ошибок, stderr.standard errorstderr - - -В отличии от некоторых аргументов Nmap, пробел между флагом формата файла (например, ) и -именем файла или дефисом здесь обязателен. Если вы опустите флаги и зададите аргументы типа или -, из-за функции обратной совместимости Nmap будут созданы файлы -нормального формата с именами G- и -Xscan.xml соответственно. - -Все эти аргументы поддерживают strftimestrftime conversions in the filename -перобразования в именах файлов. %H, %M, -%S, %m, %d, -%y и %Y это то же самое что и в -strftime. %T то же самое что и -%H%M%S, %R то же самое что и -%H%M и %D то же самое что и -%m%d%y. Знак %, после которого следует любой -символ просто даст этот символ (%% даст вам символ процента). Поэтому опция - будет использовать XML файл в формате -scan-144840-121307.xml. - -Nmap также предоставляет опции для управления вербальностью сканирования, а также для добавления в конец файлов -вместо их перезаписи. Все эти опции описаны ниже. - -Форматы вывода Nmap - - - (Нормальный вывод) - - normal output - - - Перенаправляет нормальный вывод в заданный файл. Как отмечалось выше, - немного отличается от интерактивного вывода. - - - - - - (XML вывод) - - XML output - - - - Перенаправляет XML вывод в заданный файл. Nmap включает определение - типа документа (DTD), что позволяет XML парсерам использовать XML вывод Nmap. Изначально это предназначалось - для программного использования, хотя это также позволяет людям интерпретировать XML вывод Nmap. DTD - определяет возможные элементы, а также перечисляет атрибуты и значения, которые они могут принимать. Последняя - версия всегда доступна на . - - XML предоставляет формат, который легко обрабатывается программным обеспечением. Бесплатные XML парсеры, - доступны для всех основных языков программирования, включая C/C++, Perl, Python и Java. Люди даже написали - привязки для большинства из этих языков для обработки выходных данных Nmap. - Примерами являются Nmap::Scanner - Nmap::Scanner - и Nmap::Parser - Nmap::Parser - на Perl CPAN. В большинстве случаев взаимодействия какого-либо приложения и Nmap, XML является - предпочитаемым форматом. - - XML вывод связывается с XSL таблицей стилей, которая используется для форматирования результатов как - HTML. Самым легким способом использования этой возможности является загрузка XML вывода в браузер типа - Firefox или IE. По умолчанию это будет работать только на машине, на которой установлена Nmap (или - настроенной аналогично) из-за жесткой привязки полного пути файла - nmap.xsl. Используйте опции или - для создания XML файлов отображаемых как HTML только на подключенной к - интернету машине. - - - - - - - (ScRipT KIdd|3 oUTpuT) - - scR1pT kIddI3 output - - - Script kiddie формат практически такой же как и интерактивный, за тем исключением, что после окончания - сканирования он перерабатывается, чтобы больше подходит l33t HaXXorZ, который смотрит свысока на Nmap из-за - постоянного использования заглавных букв и правовисания. Лишенные чувства юмора люди должны иметь ввиду, что эта - опция высмеивает script kiddies, перед тем как ругать меня за то, что я якобы помогаю им. - - - - - - (grepable вывод) - - grepable output - - - -Это формат обсуждается последним, т.к. он нежелетален для использования. Формат вывода XML намного мощенее, а -также особенно удобен для опытных пользователей. XML это стандарт, для которого доступны дюжины отличных парсеров, в -то время как grepable вывод всего лишь мое простое изобретение. XML достаточно гибок для поодержания новых функций Nmap -по мере их выхода, тогда как мне частенько приходится опускать некоторые возможности grepable вывода из-за недостатка -места. - -Тем не менее, этот формат вывода все еще довольно популярен. Это простой формат, который просто описывает -каждый хост в одну строку и может быть легко обработан стандартными Unix утилитами как grep, awk, cut, sed, diff и Perl. -Даже я иногда использую этот формат вывода. Поиск хостов, на которых открыт SSH порт или работает Solaris сводится -к простой передаче результатов утилите grep, а затем утилитам типа awk или cut для вывода желаемой информации. - -Grepable вывод состоит из комментариев (линий начинающихся с #)grepable outputcomments in и строк описывающих цели. Каждая строка включает -комбинацию из 6 помеченных полей, разделенных знаками табуляции и оканчивающихся двоеточием. -Поля следующие: Хост, Порты, -Протоколы, Ignored State, -ОС, Seq Index, -IP ID и Статус. - -Наиболее важным из этих полей обычно является Порты, где дается описание -каждого интересного порта. Это поле представляет собой разделенный запятыми список портов. Каждый элемент этого списка -описывает один интересный порт и состоит из семи подполей, разделенных знаком косой черты (/). Подполя следующие: -Номер порта, Состояние, Протокол, Владелец, Служба, SunRPC информация и Информация о версии. - -Как и в случае с XML выводом, это руководство не позволяет полностью описать формат. Более подробное описание -этого формата доступно с . -на . - - - - - - - (Использовать все форматы вывода) - - - - Для удобства вы можете задать опцию , - чтобы сохранить результаты сканирования в обычном, XML и grepable форматах сразу. Они будут содержаться - в файлах - базовове_имя_файла.nmap, - базовове_имя_файла.xml и - базовове_имя_файла.gnmap соответственно. Как - и с большинством программ вы можете предварять имя файла путем к директории, например, - ~/nmaplogs/foocorp/ для Unix или - c:\hacking\sco для Windows. - - - - - - Опции управления вербальностью и отладкой - - - (Увеличить уровень вербальности) - - verbosity - - - - Увеличение уровня вербальности влечет за собой вывод большего количества информации во время - сканирования. Когда Nmap предполагает, что сканирование займет больше нескольких минут, будет выводиться - приблизительное время завершения работы и открытые порты по мере их обнаружения. Задайте эту опцию дважды - или более для увеличения количества выводимой информации. - giving more than once - - - Большинство изменений касаются только интерактивного режима; некоторые также нормального и - script kiddie режимов. Остальные форматы вывода предназначены для обработки машинами, поэтому вся - необходимая информация выдается Nmap по умолчанию. Тем не менее существуют несколько изменений в других - режимах, когда размер выходной информации может быть существенно сокращен путем отбрасывания некоторых - деталей. Например, линия комментариев в grepable формате, предоставляющая список всех просканированных портов, - выводится только в вербальном режиме, т.к. список может быть довольно длинный. - - - - - - - (Увеличить или установить уровень отладки) - - debugging - - - - -Когда даже вербальный режим не предоставляет вам достаточную информацию, вы можете использовать отладку! Отладка -активируется опцией командной строки (), и уровень отладочной информации может быть увеличен путем -задания этой опции несколько раз.giving more than once -В качестве альтернативы, вы можете передать уровень отладки как аргумент опции . Например, опцией - устанавливается девятый уровень. Это наивысший уровень, который будет предоставлять тысячи -строк, до тех пор пока вы не запустите очень простое сканирование небольшого количества целей. - -Отладка полезна, если вы предполагаете, что в Nmap есть баг, или если вы просто озадачены тем, что делает Nmap и -почему. Т.к. эта функция по большому счету предназначена для разработчиков, то выходная информация не всегда понятна. -Вы можете получить что-то типа: Timeout -vals: srtt: -1 rttvar: -1 to: 1000000 delta 14987 ==> srtt: 14987 -rttvar: 14987 to: 100000. Если вы не понимаете, что это означает, вы можете проигнорировать эту -информацию, посмотреть в исходному коде или попросить помощи у разработчиков (nmap-dev).nmap-dev mailing list -Некоторые линии довольно понятны, но сообщения становятся более неясными с увеличением уровня отладки. - - - - - - - (Отслеживание принятых и переданных пакетов и данных) - - - - - Указывает Nmap выводить краткую информацию о каждом принятом и отправленном пакете. Обычно используется - для отладки, но также может быть полезна новичкам для понимания того, что же действительно делает Nmap. Чтобы - избежать вывода тысяч строк, вы можете ограничить количество портов для сканирования, например опцией - . Если вас интересует только то, что происходит при процессе определения версии, то - вместо этой опции используйте . - - - - - - (Показывать только открытые (или возможно открытые) порты) - - - - - - -Иногда вас интересуют только порты, к которым вы фактически можете подключиться -(а именно открытые), и вам не нужны результаты о -закрытых, фильтруемых и -закрытых|фильтруемых портах. Обработка выходной информации может быть легко -произведена с помощью таких утилит как -grep, awk и -Perl, но по многочисленным просьбам эта функция была добавлена в Nmap. -Задайте опцию , чтобы видеть информацию только об -открытых, открытых|фильтруемых и -не фильтруемых портах. Эти три типа портов расцениваются как обычно, что означает, -что открытые|фильтруемые и нефильтруемые порты -могут быть приняты во внимание, если их набралось большое количество. - - - - - - - - (Вывести список интерфейсов и роутеров) - - - Выводит список интерфейсов и системных роутеров, обнаруженных Nmap. Это полезно для отладки проблем с - роутерами и неправильного описания устройств (когда, например, Nmap рассматривает PPP соединение как ethernet). - - - - - (Записывать ошибки/предупреждения в выходной файл нормального режима) - - - - - Обычно предупреждения и ошибки выводятся Nmap только на экран (интерактивный вывод), и не сохраняются - в файлах нормального режима вывода (заданных опцией ). Если вы хотите записывать эти - сообщения в заданные вами файлы, то используйте эту. Это может быть полезно, если вы не просматриваете - интерактивный вывод или хотите сохранить все ошибки во время отладки какой-либо проблемы. Сообщения об - ошибках и предупреждениях по-прежнему будут выводится в интерактивном режиме. Это не будет работать для - большинства ошибок, вызванных неправильным заданием аргументов командой строки, т.к. Nmap может не успеть - проинициализировать выходные файлы этих команд. В дополнении ко всему, некоторые предупреждения и ошибки - Nmap используют другую систему, которая еще не поддерживает данную опцию. - - Альтернативой опции может служить перенаправление интерактивного вывода - (включая стандартный поток ошибок) в файл. Большинство командных оболочек Unix легко справится с этим, но - это может быть проблематично на Windows. - - - - - - - Различные опции вывода - - - - (Добавлять в конец, а не перезаписывать выходные файлы) - - - - - Когда вы передаете в качестве аргумента какому-либо флагу формата вывода (например, - или ) имя файла, то по умолчанию этот файл перезаписывается. Если вы - хотите оставить текущее содержание файла, а новые результаты добавлять в конец, используйте опцию - . В результате все указанные файлы вывода не будут перезаписываться, а - новое содержимое будем добавляться в конец. Существуют некоторые сложности с XML выводом - (), т.к. результирующий файл в этом случае обычно не сможет быть правильно - проанализирован программами, пока не вы подправите его вручную. - - - - - - (Продолжить прерванное сканирование) - - resuming scans - - - - - Некоторые всесторонние варианты сканирования Nmap могут занимать очень продолжительное время - порядка - нескольких дней. И они не всегда работают до завершения. Различные ограничения могут не позволить Nmap - сканировать в течении рабочих часов, сеть может перестать работать, машина, на которой запущена Nmap может - быть перезагружена, или сама Nmap может вылететь. Администратор, использующий Nmap, может отменить - сканирование по каким-то другим причинам, просто нажав ctrl-C. Запуск целого - сканирования с самого начала может быть нежелателен. К счастью, если были сохранены логи нормального - () или grepable формата (), пользователь может продолжить - сканирование с того места, на котором оно было остановлено. Просто задайте опцию - и передайте в качестве аргумента имя выходного файла обычного или grepable формата. - Никакие другие опции использовать не разрешается, т.к. Nmap будет продолжать сканирование с заданными ранее - опциями. Просто запустите Nmap командой - nmap --resumeимя_лог_файла. Nmap будет - добавлять новые результаты к выходным файлам, определенным при предыдущем запуске. Выходные файлы формата - XML не поддерживаются функцией возобновления работы, т.к. комбинирование результатов двух сканирований в один - правильный XML файл является сложной задачей. - - - - - - (Устанавливает XSL таблицу стилей для - преобразования XML вывода) - - - - - Nmap использует XSL - XSL - таблицу стилей - stylesheet - nmap.xsl - nmap.xsl - для просмотра или перевода XML вывода в HTML. - HTML from XML output - XML вывод включает директиву xml-stylesheet, - которая указывает на файл nmap.xml, - туда, где он был размещен Nmap при установке (или на текущую рабочую директорию в Windows). Просто - загрузите XML вывод Nmap в любой современный веб браузер, и он самостоятельно найдет файл - nmap.xsl для отображения результатов. Если вы хотите использовать - другой файл таблицы стилей, то передайте имя этого файла в качестве аргумента опции - . Вы должны использовать полный путь к файлу или URL. Один из примеров: - . Эта опция указывает браузеру загружать - последнюю версию таблицы стилей с Nmap.Org. Опция делает то же самое, но без - лишнего набора на клавиатуре и запоминания. Загрузка XSL с Nmap.Org облегчает просмотр результатов на машине, - на которой не установленна Nmap (и поэтому нет файла nmap.xsl). Поэтому - URL часто бывает более полезен, но локальный файл nmap.xsl используется - по умолчанию из соображений приватности. - - - - - - (Загружает таблицу стилей с Nmap.Org) - - - - - Эта опция является просто псевдонимом - . - - - - - - (Убрать объявление XSL таблицы стилей из XML) - - - - - Задайте эту опцию, чтобы не ассоциировать какую-либо XSL таблицу стилей с XML выводом. В этом случае - директива xml-stylesheet опускается. - - - - - - - - - - - Различные опции - В этой секции описываются некоторые важные (и не очень важные) опции, которые не подходят к другим - категориям. - - - - - (Включает IPv6 сканирование) - - IPv6 - - - - Начиная с 2002 года Nmap имеет поддержку протокола IPv6 для своих наиболее используемых функций. - В частности, пинг сканирование (только TCP), выявление возможности установки соединения и определение - версии имеют поддержку протокола IPv6. Синтаксис команд такой же как и обычный за исключением того, что - вы добавляете опцию . Конечно же, вы должны использовать синтаксис IPv6, если вы - указываете адрес, а не имя хоста. Адрес может выглядеть как - 3ffe:7501:4819:2000:210:f3ff:fe03:14d0, поэтому лучше использовать - имена хостов. Вывод выглядит так же как и обычный, только на линии интересных портов будет - IPv6 адрес. - - Хотя протокол IPv6 еще не завоевал весь мир, в некоторых (обычно Азиатских) странах он используется - интенсивно, и большинство современных операционных систем поддерживают его. Чтобы использовать Nmap с - протоколом IPv6, и источник и цель сканирования должны быть настроены на работу с ним. Если ваш ISP - (как большинство из них) не предоставляет вам IPv6 адрес, вы можете использовать широко распространенный - и работающий с Nmap сервис Tunnel Brokers. Я использую бесплатный сервис - IPv6 tunnel broker - на . Другие подобные сервисы - перечислены на Wikipedia. - - - - - - - (Опции агрессивного сканирования) - - - - - Этой опцией активируется набор агрессивных опций сканирования. Я еще не решил до конца, какие же - опции будут использоваться. Сейчас этот набор включает определение ОС (), - сканирование с целью определения версии (), сканирование с использованием скриптов - () и трассировку (). - features enabled by - Возможно в будущем будут добавлены другие функции. Целью является создание всестороннего набора опций - сканирования, чтобы людям не надо было запоминать большое количество флагов. Тем не менее, т.к. сканирование - с использованием скриптов с настройками по умолчанию расценивается как "назойливое", вам не следует - использовать опцию для сканирования целевых сетей без разрешения. Эта опция активирует - только возможности, но не устанавливает опции времени (timing) (такие как ) или опции - вербального вывода (), которые вы, возможно, хотели бы использовать. - - - - - - (Определяет место расположения файлов - Nmap) - - - - - Во время работы Nmap получает некоторые данные из файлов - nmap-service-probes, - nmap-services, - nmap-protocols, - nmap-rpc, - nmap-mac-prefixes и - nmap-os-db. Если место расположение какого-либо из этих файлов было - задано конкретно (используя опции или ), то оно - используется для этого файла. Далее Nmap ищет эти файлы в директории, заданной опцией - (если задана). Если файлы не были найдены там, то Nmap ищет их в директории, - определенной переменной окружения NMAPDIR NMAPDIR environment variable. - Далее идут - ~/.nmap.nmap directory - для реальных и действующих в данный момент UIDs (только POSIX системы) или расположение исполняемого файла - Nmpa (только Win32), и далее /usr/local/share/nmap или - /usr/share/nmap. В последнюю очередь Nmap будет искать эти файлы в - текущей директории. - - - - - - (Задает определенный файл служб) - - - - - Указывает Nmap использовать заданный файл служб вместо файла - nmap-services, который поставляется вместе с Nmap. Использование этой - опции также подразумевает использование опции быстрого сканирования (). Смотрите описание - для более подробной информации о файлах данных Nmap. - - - - - - - (Задает определенный файл запросов для служб) - - - - - Указывает Nmap использовать заданный файл запросов для служб вместо файла - nmap-service-probes, который поставляется вместе с Nmap. Смотрите описание - для более подробной информации о файлах данных Nmap. - - - - - - (Использовать сырой уровень ethernet) - - - - - Указывает Nmap посылать пакеты с использование более низкого сырого уровня ethernet, а не с - использованием более высокого уровня IP (сетевого). По умолчанию Nmap выбирает тот способ, который - больше подоходит для используемой платформы. Сырые сокеты (уровень IP) - raw sockets в общем случае более эффективны - для Unix машин, в то время как использование ethernet фреймов необходимо для операционных систем Windows, т.к. - Microsoft отключила в них поддержку сырых сокетов. Nmap по-прежнему использует сырые IP пакеты на Unix не - смотря на эту опцию, когда нет другого выбора (как в случае с не-ethernet соединениями). - - - - - - - (Использовать сырой уровень IP) - - - - - Указывает Nmap посылать пакеты с использование сырых IP сокетов, а не с использованием более низкого - уровня ethernet фреймов. Это дополнение к опции описанной выше. - - - - - - (Подразумевать, что у пользователя есть все привилегии) - - - - - Указывает Nmap, что у нее есть необходимые привилегии для использования сырых сокетов, - пакетного сниффинга и сходных операций, которые обычно требуют привилегий пользователя root на Unix системах. - privileged users - - authorized usersprivileged users По умолчанию Nmap завершает - работу, если были запрошены такие опреации, но geteuid не нуль. - Опцию хорошо использовать на системах с возможностями ядра Linux или подобных, - которые могут быть сконфигурированы так, что непривилегированные пользовтели смогут осуществлять сканирование - с использованием сырых сокетов. Удостоверьтесь, что эта опция указана перед любымими опциями требующими - привилегий (сканирование SYN, определение ОС и т.д.). Переменная окурежния - NMAP_PRIVILEGED - NMAP_PRIVILEGED environment variable - может быть установлена как равнозначная альтернатива опции . - - - - - - (Подразумевать, что у пользователя нет привилегий для использования сырых - сокетов) - - unprivileged users - - - - - Эта опция противоположна . Указывает Nmap, что у пользователя нет - привилегий для использования сырых сокетов и сниффинга. Полезна для тестирования, отладки или когда по - какой-то причине на вашей системе не работае механизм сырых сокетов. Переменная окружения - NMAP_UNPRIVILEGEDNMAP_UNPRIVILEGED environment variable - может быть установлена как равнозначная альтернатива опции . - - - - - - - - (Освободить память перед завершением работы) - - - - - Эта опция полезна только во время отладки утечки памяти. Заставляет Nmap освободить занянутю память - перед завершением работы, что облегчает задачу обнаружения действительной утечки памяти. В обычном режиме - работы Nmap пропускает этот шаг, так ОС делает это самостоятельно при закрытии процесса. - - - - - - - ; (Вывести номер версии) - - - - - Выводит номер версии Nmap и завершает работу. - - - - - - ; (Вывести страницу помощи) - - - - - Выводит небольшую страницу помощи с наиболее часто используемыми командами и опциями. Запуск Nmap без - аргументов приводит к такому же результату. - - - - - - - - Взаимодействие во время выполнения<indexterm significance="normal"><primary>runtime interaction</primary></indexterm> - - Во время работы Nmap, все нажатые клавиши фиксируются. Это позволяет вам взаимодействовать с программой - не прерывая и не перезапуская ее. С помощью некоторых клавиш можно изменить опции сканирования, при - использовании же других будут выведены сообщения о текущем статусе сканирования. Существует договоренность, что - строчные буквы увеличивают количество выводимой информации, а - прописные буквы уменьшают. Для справки можно нажать ‘?’. - - - - / - - - Увеличить / уменьшить уровень вербальности - - - - - / - - - Увеличить / уменьшить отладочный уровень - - - - - / - - - Включить / выключить отслеживание пакетов - - - - - - - - Вывести справку о взаимодействии во время выполнения - - - - - Что-либо другое - - - Выведет сообщение типа: - Stats: 0:00:08 elapsed; 111 hosts completed (5 up), - 5 undergoing Service Scan - Service scan Timing: About 28.00% done; ETC: 16:18 - (0:00:15 remaining) - - - - - - - Примеры - Здесь приведены несколько примеров использования Nmap, от самых простых до более изощренных. Некоторые - реально существующие IP адреса и доменные имена использованны для того, чтобы сделать примеры более конкретными. - На их место вы должны подставить адреса/имена из вашей собственной сети.. В то время как - сканирование портов некоторой сети не является незаконным, некоторым администраторам сетей может не понравиться - своевольное сканирование их сетей и они могут пожаловаться. Для начала постарайтесь получить разрешение. - - В целях тестирования у вас есть разрешение сканировать scanme.nmap.org. - Вы можете использовать сканирование с помощью Nmap, но не тестировать эксплоиты или производить атаки отказа в - обслуживании. Для того чтобы не перегружать канал, пожалуйста, не производите более дюжины сканирований этого - хоста в день. В случае злоупотребления этим свободным для сканирования хостом, он будет отключен и Nmap выдаст - Failed to resolve given hostname/IP: - scanme.nmap.org (не могу разрешить данное имя/IP: scanme.nmap.org). Все выше сказанное также - относится и к хостам scanme2.nmap.org, - scanme3.nmap.org, и так далее, несмотря на то, что эти хосты еще не - существуют. - - - example of - nmap -v scanme.nmap.org - - Этой командой будут просканированы все TCP порты машины - scanme.nmap.org . Опция - активирует вербальный режим. - - example of - example of - nmap -sS -O scanme.nmap.org/24 - - Этой командой будет произведено скрытное SYN сканирование всех 255 машин сети класса C, в - которой расположена машина Scanme. Также будет произведена попытка определения операционной системы на каждом - работающем хосте. Из-за SYN сканирования и опции определения ОС данная команда требует привилегий - суперпользователя (root). - - example of - nmap -sV -p 22,53,110,143,4564 - 198.116.0-255.1-127 - - - Запускает перебор хостов и TCP сканирование первой половины всех (из доступных 255) 8 битных подсетей - адресного пространства 198.116 класса B. Также проверяет запущены ли SSH, DNS, POP3 или IMAP с использованием их - стандартных портов, а также использует ли какое-нибудь приложение порт 4564. Если какой-нибудь из этих портов - открыт, то будет произведена попытка определения работающего с этим портом приложения. - - - example of - example of - nmap -v -iR 100000 -PN -p 80 - - - Указывает Nmap выбрать случайным образом 100,000 хостов и просканировать их на наличие запущенных на них - веб-серверов (порт 80). Перебор хостов отключен опцией , т.к. посылка пары предварительных - запросов с целью определения доступности хоста является нецелесообразной, когда вас интересует всего один порт на - каждом хосте. - - - example of - example of - nmap -PN -p80 -oX logs/pb-port80scan.xml -oG - logs/pb-port80scan.gnmap 216.163.128.20/20 - - Этой командой будут просканированы 4096 IP адресов (без предварительного пингования), а выходные данные - будут сохранены в фомате XML и формате, удобном для просмотра утилитой grep (grepable формат). - - - - - Ошибки - bugs, reporting - - Как и ее автор, Nmap не идеальна. Но вы можете сделать ее лучше посылая нам отчеты об ошибках или даже - написав патч. Если Nmap ведет себя не так, как вы ожидаете, то для начала обновитесь до последней версии с - . Если проблема останется, то выясните, не была ли эта проблема уже обнаружена кем-то. - Попробуйте поискать сообщения об ошибках на нашей странице поиска - или в Google. Также попробуйте просмотреть nmap-dev архивы на .nmap-dev mailing list - Также прочитайте полностью страницу руководства. Если ничего не помогло, отправьте сообщение об ошибке на - dev@nmap.org. Пожалуйста, включите всю известную вам информацию об ошибке, какую версию - Nmap вы используете, и на какой операционной системы вы запускаете Nmap. Сообщения о проблемах и вопросы по - использованию Nmap отправленные на dev@nmap.org имеют больше шансов на ответ, чем если бы - вы послали их непосредственно Fyodor'у. Если вы подпишитесь на рассылку nmap-dev перед отправкой сообщения, - то ваше сообщение будет обработано быстрее. Подпишитесь на рассылку на . - - Патчи для исправления ошибок даже лучше просто сообщений об ошибках. Базовые инструкции по созданию патчей - доступны по адресу . Созданные вами патчи можно отправить на - nmap-dev (рекомендуется) или непосредственно Fyodor'у. - - - - Автор - Fyodor - fyodor@nmap.org - () - - - На протяжении многих лет сотни людей внесли ценный вклад в разработку Nmap. Все изменения и улучшения - подробно описаны в файле - CHANGELOGchangelog, который распространяется вместе с Nmap, а также доступен на - . - - - - - Юридические уведомления - - - Unofficial Translation Disclaimer / Отречение неофициального перевода - - This is an unnofficial translation of the Nmap - license details into Russian. It was not written by Insecure.Com LLC, and does not legally state the - distribution terms for Nmap -- only the original English text does that. However, we hope that this translation - helps Russian speakers understand the Nmap license better. - - Это неофициальный перевод лицензии Nmap на - русский язык. Он не был осуществлен Insecure.Com LLC, и не определяет с юридической точки зрения условия - распространения Nmap -- это делает только оригинальный английский вариант. Тем не менее, мы надеемся, что этот - перевод поможет русскоязычным пользователям лучше понять лицензию Nmap. - - - - - Авторское право и лицензия Nmap - copyright - GNU General Public License - -Nmap Security Scanner (C) 1996-2008 Insecure.Com LLC. Nmap также является зарегистрированным товарным знаком -Insecure.Com LLC. Эта программа является свободным программным обеспечением; вы можете распространять и / или -модифицировать его в соответствии с условиями GNU General Public License, опубликованной Free Software Foundation; -Версия 2 с уточнениями и исключениями, описанными ниже. Лицензия гарантирует ваше право использовать, модифицировать и -распространять данное программное обеспечение на определенных условиях. Если вы хотите встроить Nmap технологии в -собственное программное обеспечение, мы продаем альтернативные лицензии (обращаться sales@insecure.com). -Десятки поставщиков программного обеспечения, уже имеют лицензии на использование Nmap технологий, таких, как -обнаружение хостов, сканирование портов, определение OS и определение версии. - - -Имейте ввиду, что GPL накладывает важные ограничения на производные приложения, хотя и не дает -четкого определения этого термина. Чтобы избежать недоразумений, мы считаем, что приложение является -производным, если в нем реализованы любые из следующих пунктов: - - -Используется исходный код Nmap -Используются авторские файлы данных Nmap, такие, как - nmap-os-db или - nmap-service-probes. -Запускается Nmap, и анализируются результаты работы (в противовес обычным командным оболочкам, которые -просто отображают необработанные выходные данные Nmap и поэтому не являются производными приложениями.) -Nmap интегрируется/включается/агрегируется в собственный исполняемый инсталлятор, как предоставляемые, -например, с помощью InstallShield. -Используется ссылка на библиотеку или запускается программа, в которой реализованы любые из -перечисленных пунктов. - - -В термин Nmap следует также включать любые части Nmap или производные от нее приложения. Это -список не является полным, мы просто хотим сделать ясным наше понимание производных приложений с помощью некоторых -общих примеров. Эти ограничения имеют силу, только когда вы действительно распростаняете Nmap. Например, ничего -не мешает вам написать и продавать свой собственный пользовательский интерфейс для Nmap. Распространяйте его -самостоятельно, а для скачивания Nmap направляйте людей на . - -Мы не считаем, что данные ограничения должны быть добавлены к лицензии GPL, мы просто приводим наше понимание -производных приложений по отношению к нашему продукту с GPL лицензией. Это похоже на то, как Линус -Торвальдс (Linus Torvalds) опубликовал свое понимание производных приложений применимо к модулям ядра -Linux. Наше трактовка относится только к Nmap, мы не говорим ни о каких других GPL продуктах. - -Если у вас есть какие-либо вопросы о GPL ограничениях по использованию Nmap в не-GPL продуктах, мы с радостью -вам поможем. Как уже упоминалось выше, мы предоставляем альтернативную лицензию для интегрирования Nmap в собственные -программные продукты. Эти контракты были проданы многим производителям программного обеспечения и обычно они включают: -бессрочную лицензию, предоставление приоритетной поддержки и обновлений, а также содействие спонсированию -продолжающейся разработки Nmap технологии. Для дальнейшей информации пишите на sales@insecure.com. - -В качестве исключения из GPL соглашений, Insecure.Com LLC предоставляет право связывать исходный код этой -программы с любой версией OpenSSL библиотеки, которая распространяется по лицензии приведенной в файле -COPYING.OpenSSL, а также распространять эту комбинацию.OpenSSLlinking exception -Вы должны удовлетворять условиям лицензии GNU GPL во всем, что касается кода не использующего OpenSSL. Если вы -модифицируете этот файл, вы можете расширить это исключение на вашу версию файла, но вы не обязаны это делать. - -Если вы получаете эти файлы в лицензионным соглашением или контрактом, где указаны отличные от этих условий, то -альтернативные условия лицензионного соглашения имеют преимущество над этими комментариями. - - - - Creative Commons License для этого справочного руководства Nmap - Справочно Руководство Nmap это (C) 2005-2008 Insecure.Com LLC. Оно распространяется - под лицензией Creative Commons - Attribution License версии 2.5. Это позволяет вам распространять и модифицировать его по вашему усмотрению, - до тех пор пока вы считаетесь с исходным источником. В качестве альтернативы вы можете считать, что этот документ - распространяется по той же лицензии, что и сама Nmap (описывается выше). - - - - Доступность исходного кода и общественные вклады - -Мы предоставляем исходный код, потому что верим, что пользователи должны иметь право знать, что именно программа -будет делать до того, как запустят ее. Это также позволяет вам проверять программное обеспечение на наличие дыр в -безопасности (пока не было найдено ни одной). - -Исходный код также позволяет вам портировать Nmap на новые платформы, исправлять баги и добавлять новые -возможности. Всячески поощряется посылка своих изменений на fyodor@nmap.org для возможного -их включения в основной дистрибутив. Отправляют эти изменения Fyodor'у или разработчикам на Insecure.Org, -пердполагается, что вы предоставляете Fyodor'у и Insecure.Com LLC безграничное, не эксклюзивное право на повторное -использование, модификацию и изменение лицензии кода. Nmap всегда будет доступна как -Open Source продукт,open source -это важно, т.к. невозможность изменения лицензии на кода уже повлекла за собой большие проблемы для других -Free Software проектов (как, например, KDE и NASM). Вы также порой позволяем третьим сторонам изменять лицензию, как -описывалось выше. Если вы хотите использовать собственные лицензионные условия для ваших изменений, сообщите об этом, -когда будете их отсылать. - - -Отсутствие гарантии<indexterm significance="normal"><primary>warranty (lack of)</primary></indexterm> - -Эта программа распространяется в надежде на то, что она будет полезна, но БЕЗ КАКИХ-ЛИБО ГАРАНТИЙ; даже без -какой-либо подразумеваемой ТОВАРНОЙ ПРИГОДНОСТИ или ПРИГОДНОСТИ ДЛЯ КАКОЙ-ЛИБО ОПРЕДЕЛЕННОЙ ЗАДАЧИ. Смотрите GNU -General Public License v2.0 для подробностей , или в файле -COPYING, который распространяется с Nmap. - -Также следует принять во внимание, что время от времени Nmap вызывает крах плохо написанных приложений, TCP/IP -стеков и даже операционных систем.crashing targets -Хотя такие случаи и чрезвычайно редки, не следует о них забывать. Nmap никогда не следует использовать для -сканирования критичных систем, пока вы не готовы мириться в временем простоя. Мы признаем, что Nmap может -вызвать крах ваших систем или сетей, и отрицаем всякую ответственность за проблемы или ущерб, нанесенные Nmap. - - -Несоответствующее использование -Из-за возможного риска краха и из-за того, что некоторые личности используют Nmap для предварительного -исследования систем перед их атакой, некоторые администраторы могут быть недовольны тем, что их система была -просканирована. Поэтому, перед тем как сканировать сеть, разумно получить на это разрешение. - -Nmap не следует устанавливать с особыми привилегиями (например, suid root) из соображений безопасности.setuid, why Nmap shouldn't be - - - -Стороннее программное обеспечение - -Этот продукт содержит программное обеспечение разработанное -Apache Software Foundation. Модифицированная версия библиотеки -Libpcap portable packet capture librarylibpcap -распространяется вместе с Nmap. Windows версия Nmap использует вместо Libpcap производную от нее библиотеку -WinPcap libraryWinPcap. -Поддержка регулярных выражений предоставляется библиотекой -PCRE library,Perl Compatible Regular Expressions (PCRE), -которая является программным обеспечением с открытым исходным кодом, написана Филипом Хазелом (Philip Hazel).Hazel, Philip -Некоторые функции по работе с сырыми сокетами используют сетевую библиотеку -Libdnetlibdnet, написанную Дагом Сонгом (Dug Song).Song, Dug -Модифицированная версия распространяется вместе с Nmap. Nmap может быть связана с -OpenSSL -cryptography toolkitOpenSSL -поддержки SSL определения версии. Скриптовый движок Nmap (Nmap Scripting Engine) использует встроенную версию -языка программирования Lua.Lua programming language -Все описанное здесь стороннее проограммное обеспечение бесплатно распространяется на основе лицензии в стиле BSD. - - - -Классификация по контролю экспорта Соединенных Штатов<indexterm significance="normal"><primary>export control</primary></indexterm> - -U.S. Export Control: Insecure.Com LLC указывает, что Nmap попадает под U.S. ECCN (число в классификации по -контролю экспорта) 5D992. Эта категория называется Программное обеспечение информационной безопасности не -контролируемое 5D002. Единственным ограничем в этой категории является AT (анти-терроризм), под который -попадают почти все товары, что запрещает экспорт в горстку не стран типа Ирана и Северной Кореи. Поэтому экспорт Nmap -не требует какой-либо специальной лицензии, разрешения или других санкций со стороны государства. - - - - - - -
+ + +
+ + Справочное руководство Nmap (Man Page) + +man pagereference guide +reference guide (man page) + + + nmap + 1 + + + nmap + Утилита для исследования сети и сканер портов + + + + + nmap + + Тип сканирования + + + Опции + + + цель сканирования + + + + + Описание + Nmapdescription of + + + Этот документ описывает версию Nmap 4.22SOC8. Последняя документация + доступна на английском языке по ссылке + . + + Nmap (Network Mapper) - это утилита с открытым исходным кодом для исследования сети и + проверки безопасности. Она была разработана для быстрого сканирования больших сетей, хотя прекрасно справляется + и с единичными целями. Nmap использует "сырые" IP пакеты оригинальным способом, чтобы определить какие хосты + доступны в сети, какие службы (название приложения и версию) они предлагают, какие операционные системы (и версии + ОС) они используют, какие типы пакетных фильтров/брандмауэров используются и еще множество других характеристик. + В то время, как Nmap обычно используется для проверки безопасности, многие системные администраторы находят ее + полезной для обычных задач, таких как контролирование структуры сети, управление расписаниями запуска + служб и учет времени работы хоста или службы. + + Выходные данные Nmap это список просканированных целей с дополнительной информацией по каждой из них в зависимости + от заданных опций. Ключевой информацией является таблица важных портов.ports“interesting” + Эта таблица содержит номер порта, протокол, имя службы и состояние. Состояние может иметь значение + open (открыт), filtered (фильтруется), + closed (закрыт) или unfiltered (не + фильтруется). + Открытopen port state + означает, что приложение на целевой машине готово для установки соединения/принятия пакетов на этот порт. + Фильтруетсяfiltered port state + означает, что брандмауэр, сетевой фильтр, или какая-то другая помеха в сети блокирует порт, и Nmap не может установить + открыт этот порт или закрыт. + Закрытыеclosed port state + порты не связаны ни с каким приложением, но могут быть открыты в любой момент. Порты расцениваются как + не фильтрованныеunfiltered port state, когда они отвечают на запросы Nmap, но Nmap не может определить открыты они или закрыты. Nmap выдает комбинации + открыт|фильтруетсяopen|filtered port state + и закрыт|фильтруетсяclosd|filtered port state, когда не может определить, какое из этих двух + состояний описывает порт. Эта таблица также может предоставлять детали о версии программного обеспечения, если это + было запрошено. Когда осуществляется сканирование по IP протоколу (), Nmap предоставляет + информацию о поддерживаемых протоколах, а не об открытых портах. + + В дополнение к таблице важных портов Nmap может предоставлять дальнейшую информацию о целях: преобразованные + DNS имена, предположение об используемой операционной системе, типы устройств и MAC адреса. + + Типичное сканирование с использованием Nmap показано в . Единственные аргументы, использованные в этом примере - это , для определения версии ОС, + сканирования с использованием скриптов и трассировки; для более быстрого выполнения; затем + два целевых хоста. + +Типичный пример сканирования с помощью Nmap +example of + +# nmap -A -T4 scanme.nmap.org playground + +Starting Nmap ( https://nmap.org ) +Interesting ports on scanme.nmap.org (64.13.134.52): +(The 1663 ports scanned but not shown below are in state: filtered) +PORT STATE SERVICE VERSION +22/tcp open ssh OpenSSH 3.9p1 (protocol 1.99) +53/tcp open domain +70/tcp closed gopher +80/tcp open http Apache httpd 2.0.52 ((Fedora)) +113/tcp closed auth +Device type: general purpose +Running: Linux 2.4.X|2.5.X|2.6.X +OS details: Linux 2.4.7 - 2.6.11, Linux 2.6.0 - 2.6.11 + +Interesting ports on playground.nmap.org (192.168.0.40): +(The 1659 ports scanned but not shown below are in state: closed) +PORT STATE SERVICE VERSION +135/tcp open msrpc Microsoft Windows RPC +139/tcp open netbios-ssn +389/tcp open ldap? +445/tcp open microsoft-ds Microsoft Windows XP microsoft-ds +1002/tcp open windows-icfw? +1025/tcp open msrpc Microsoft Windows RPC +1720/tcp open H.323/Q.931 CompTek AquaGateKeeper +5800/tcp open vnc-http RealVNC 4.0 (Resolution 400x250; VNC port: 5900) +5900/tcp open vnc VNC (protocol 3.8) +MAC Address: 00:A0:CC:63:85:4B (Lite-on Communications) +Device type: general purpose +Running: Microsoft Windows NT/2K/XP +OS details: Microsoft Windows XP Pro RC1+ through final release +Service Info: OSs: Windows, Windows XP + +Nmap finished: 2 IP addresses (2 hosts up) scanned in 88.392 seconds + + + +Самую новую версию Nmap можно скачать с . Самая новая версия страницы справки Nmap + (man page) расположена по адресу . + + + + + + Замечания о переводе + + Гуз Александр (Guz Alexander) kalimatas@gmail.com + + Этот русский вариант Справочного Руководства Nmap является переводом версии 6184 оригинальной английской версии. Хотя я надеюсь, что данный перевод + сделает Nmap более доступным для русскоязычных пользователей, я не могу гарантировать, что он является полным или + является переводом последней официальной английской версии. Эту работу можно модифицировать и(или) распространять + на основе лицензии Creative + Commons Attribution License. + + Марк Бруцкий (Mark Brutsky) hackcat.dev@gmail.com + + Этот русский вариант Справочного Руководства Nmap является переводом версии 6184 оригинальной английской версии. Хотя я надеюсь, что данный перевод + сделает Nmap более доступным для русскоязычных пользователей, я не могу гарантировать, что он является полным или + является переводом последней официальной английской версии. Эту работу можно модифицировать и(или) распространять + на основе лицензии Creative + Commons Attribution License. + + + + + + Сводка опций + +Эта сводка опций выводится на экран, когда Nmap запускается без каких-либо опций; последняя версия всегда доступна +здесь . +Эта сводка помогает людям запомнить наиболее употребляемые опции, но она не может быть заменой документации, +предоставленной в данном руководстве. Некоторые опции не включены в этот список. + + + +summary of options +command-line optionsof Nmap + + +Nmap 4.76 ( https://nmap.org ) +Использование: 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: Сканирование с целью составления списка - просто составить список целей для сканирования + -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: Выводить причину, почему Nmap установил порт в определенном состоянии +ОПРЕДЕЛЕНИЕ ПОРТОВ И ПОРЯДКА СКАНИРОВАНИЯ: + -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=<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 -v -A scanme.nmap.org + nmap -v -sP 192.168.0.0/16 10.0.0.0/8 + nmap -v -iR 10000 -PN -p 80 +ДЛЯ СПРАВКИ ПО ДРУГИМ ОПЦИЯМ, ОПИСАНИЙ И ПРИМЕРОВ СМОТРИТЕ MAN СТРАНИЦУ + + + + + + + + + + + Определение цели сканирования + target specification + +В командной строке Nmap все, что не является опцией (или аргументом опции), рассматривается как цель +сканирования. В простейшем случае для сканирования используется IP адрес или сетевое имя целевой машины. + +Иногда необходимо просканировать целую сеть. Для этого Nmap поддерживает CIDR адресацию. CIDR (Classless Inter-Domain Routing) +Вы можете добавить +/кол-во бит к 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 адрес, т.к. все адресные биты заблокированы. + +address ranges +CIDR нотация коротка, однако не всегда достаточно гибка. Например, вы хотите просканировать +192.168.0.0/16, но пропустить все IP-адреса, оканчивающиеся на .0 или .255, т.к. обычно это широковещательные адреса. +Nmap может осуществить такое сканирование путем задания диапазонов в октетах. Вместо определния обычного IP адреса, вы +можете определить для каждого октета либо разделенный запятыми список чисел, либо диапазон. Например, +192.168.0-255.1-254 пропустит все адреса в диапазоне оканчивающиеся на .0 и .255. Диапазоны не обязательно задавать +только в последних октетах: при записи 0-255.0-255.13.37 будет произведено сканирование всех адресов в Интернете +оканчивающихся на 13.37. Такой тип сканирования может быть полезен для исселедования просторов Интернета. + +IPv6 адреса могут быть определны только в форме, полностью соответствующей правильной форме записи IPv6 адресов. +CIDR и использование диапазонов в октетах не применимо к IPv6 адресам, т.к. они редко используются. + +Вы можете передавать в командной строке Nmap различные варианты определения целей, не обязательно одного типа. +Команда nmap +scanme.nmap.org 192.168.0.0/16 10.0.0,1,3-7.0-255 сделает то, что вы ожидаете. + +Цели сканирования обычно задаются в командной строке, и существуют различные опции контроля выбора целей: + + + + + (Ввод из списка) + + target specificationfrom list + + + Считывает цели из имя_файла. Хотя передача большого списка хостов для + сканирования является обычным явлением, это не удобно. Например, ваш DHCP сервер передают вам список из + 10,000 используемых им на данный момент адресов, и вы хотите его просканировать. Или, возможно, вы хотите + просканировать все IP адреса, кроме переданных им, чтобы выявить несанкционированное + использование статических IP адресов. Просто сгенерируйте список хостов для сканирования и передайте + имя файла в Nmap как аргумент для опции. Записи в файле могут находиться в любой + приемлимой для Nmap форме (IP адреса, сетевые имена, CIDR, IPv6, или диапазоны в октетах). Каждая запись + должна быть отделена пробелом или несколькими, символами табуляции либо символами перехода на новую строку. + Вы можете передать в качестве аргумента дефис(-) как имя файла, если + хотите, чтобы Nmap считывал список хостов из стандартного ввода, а не из файла. + + + + + + (Выбирает произвольные цели) + + random targets + target specificationat random + + + Для сканирования в пределах всего Интернета или каких-либо исследований, вам, возможно, понадобится + выбрать цели произвольно. Аргумент кол-во хостов определяет сколько необходимо + сгенерировать IP адресов. Неподходящие IP адреса, такие как частные, широковещательные или нелокализованные + диапазоны адресов автоматически пропускаются. Аргумент 0 может быть + передан для бесконечного сканирования. Имейте в виду, что некоторым системным администраторам может не + понравиться неразрешенное сканирование их сетей и они могут пожаловаться. Используйте эту опцию на свой страх + и риск! Если в дождливый денек вам будет скучно, попробуйте команду + nmap -sS -PS80 -iR 0 -p 80 + example of + example of + example of + для сканирования произвольных веб-серверов. + + + + + + (Исключить хосты/сети) + + excluding targets + + + Определяет разделенный запятыми список целей, которые необходимо исключить из сканирования, даже если + они являются частью заданного вами диапазона сканирования. Передаваемый список использует стандартный + синтаксис Nmap, поэтому может содержать сетевые имена, CIDR адресацию, диапазоны в октетах и т.д. Эта + опция может быть полезна, если сеть, которую вы хотите просканировать, содержит сервера или системы, + негативно реагирующие на сканирование портов, или подсети, администрируемые другими людьми. + + + + + + (Исключить список из файла) + + + + Эта опция делает то же самое, что и , за исключением того, что цели для + исключения находятся в разделенном пробелами, символами табуляции или символами перехода на новую строку + файле, а не в командной строке. + + + + + + + Обнаружение хостов + host discovery + + Одна из первейших задач при исследовании любой сети это сократить (иногда довольно большой) набор IP диапазонов + до списка активных или интересных хостов. Сканирование каждого порта каждого IP адреса медленно и необязательно. + Конечно же то, что делает хост интересным для исселедования во многом определяется целями сканирования. Сетевые + администраторы возможно будут заинтересованы только в хостах, на которых запущена определенная служба, в то время + как тем, кого интересует безопасность, будут интересны все устройства с IP адресами. Задачи администраторов по + обнаружению работающих хостов в сети могут быть удовлетворены обычным ICMP пингом, людям же, которые тестируют + способность сети противостоять атакам из вне, необходимо использовать разнообразные наборы запросов с целью обхода + брандмауэра. + + Посколько задачи, требующие обнаружения хостов столь различны, Nmap предоставляет большое разнообразие опций + для различных методов. Задачу обнаружения хостов иногда называют пинг сканированием (ping scan), однако она намного + превосходит использование обычных ICMP запросов ассоциирующихся с вездесущими + ping утилитами. Пользователи могут полностью пропустить шаг пинг + сканирования с помощью опции сканирования с целью составления списка () или просто отключив его + (), или сканировать сеть с помощью произвольных комбинаций мультипортовых TCP SYN/ACK, UDP и + ICMP запросов. Целью всех этих запросов является получение ответов, указывающих, что IP адрес в настоящее время + активен (используется хостом или сетевым устройством). В большинстве сетей лишь небольшой процент IP адресов + активен постоянно. Это особенно характерно для адресных пространств вида 10.0.0.0/8. Такие сети + имеют 16 млн. IP адресов, но я видел, как они используются компаниями, в которых не более тысячи машин. Функция + обнаружения хостов может найти эти машины в этом необъятном море IP адресов. + + Если не задано никаких опций обнаружения хостов, то Nmap посылает TCP ACK пакет на порт 80 и запрос на ICMP + эхо ответ кажодй целевой машине. Исключение составляет ARP сканировании всех целей в сети. Для непривилегированных + пользователей Unix оболочки, вместо ACK пакета посылается SYN используя системный вызов + connectunprivileged userslimitations of + Эти умолчания равнозначны опциям . Такое сканирование достаточно для локальных сетей, + но для исследования безопасности необходимо использовать более сложные наборы запросов. + + + Опции (определяющие тип пинг сканирования) могут комбинироваться. Вы можете увеличить + шансы обхода строго брандмауэра посылая множество запросов различных типов, используя различные TCP порты/флаги и + ICMP коды. Также имейте в виду, что даже если вы определите различные опции, по умолчанию + применительно к целям локальной сети будет производиться и ARP сканирование + (), т.к. + оно почти всегда быстрее и более эффективно. + + По умолчанию после обнаружения хостов Nmap начинает сканирование портов каждой активной машины. Так будет, + даже если вы укажите на использование нестандартных методов обнаружения хостов, например, с использованием + UDP запросов (). Прочтите об опции , чтобы узнать, как выполнить только + обнаружение хостов, или используйте опцию , чтобы пропустить обнаружение хостов и осуществить + сканирование портов всех целевых машин. С помощью следующих опций можно настраивать функцию обнаружения хостов: + + + + + + + (Сканирование с целью составления списка) + + list scan + + + Это тип сканирования является "упрощенной" версией функции обнаружения хостов, при помощи которого + просто будет создан список хостов заданной сети без посылки каких-либо пакетов целевым машинам. По умолчанию + Nmap все же будет осуществлять обратное разрешение DNS с целью узнавания имен хостов. Часто бывает + удивительно, как много полезной информации могут содержать обычные имена хостов. Например, + fw.chi это имя брандмауэра одной Чикагской компании. + DNSrecords as source of information + В конце Nmap также сообщает общее количество IP адресов. Этот тип сканирования также является хорошим способом + проверить, что вы действительно знаете IP адреса необходимых вам целей. Если имена хостов содержат неизвестные + вам доменные имена, то стоит провести дальнейшее исследование, чтобы избежать сканирования сети не той + компании, которая вам нужна. + + Т.к. целью является просто составление списка целевых хостов, то опции с большим уровнем + функциональности, такие как сканирование портов, определение ОС или пинг сканирование не могут сочетаться с + рассматриваемой опцией. Если вы хотите отключить пинг сканирование, но хотите использовать опции с таким + высоким уровнем функциональности, то почитайте об опции . + + + + + + (Пинг сканирование) + + ping scan + + + Эта опция указывает Nmap произвести пинг сканирование (определение хостов), а затем вывести список + доступных хостов, т.е. тех, которые ответили на запросы. Определение маршрутов и NSE скрипты также + используются, если необходимо, однако дальнейшее тестирование (как сканирование портов или определение ОС) + не производится. По умолчанию эта опция считается как бы на один шаг более тщательной, чем сканирование + с целью составления простого списка хостов, и может быть использована в этих же целях. Она позволяет + произвести исследование целевой сети без привлечения внимания. Знание, какие хосты в сети в данный момент + работают, для атакующих ценне, чем просто список IP адресов и сетевых имен, предоставляемых + опцией -sL. + + Эта опция также полезна системным администраторам. Она может быть использована для подсчета + количества работающих в сети машин или мониторинга доступности сервера. Это часто называют "пинг чисткой" + (ping sweep) и результаты, предоставляемые этой опцией, заслуживают больше доверия, чем обычное пингование + широковещательных адресов, т.к. большинство хостов не отвечают на подобные запросы. + + По умолчанию опцией посылаются запрос на ICMP это ответ и TCP ACK пакет на порт + 80. Когда используется непривилегированным пользователем, посылается только SYN пакет + (используя системные вызов connect) на порт 80 целевой машины. + Когда привилегированный пользователь производит сканирование целей локальной сети, то используются ARP + запросы до тех пор, пока не будет задано . Для большей гибкости опция + может быть скомбинирована с любой из опций (за исключением + ). Если используется какой-либо из этих типов запросов и опции для задания номеров + портов, то запросы по умолчанию (ACK и это ответы) опускаются. Когда между машиной с Nmap и целевой сетью + расположен строгий брандмауэр, то рекомедуется использование таких расширенных методов сканирования. + Иначе некоторые из хостов могут быть не определены, т.к. брандмауэр заблокировал запрос или ответ. + + + + + + + + (Не использовать пинг сканирование) + + host discoverydisabling + + + Указывает Nmap полностью пропустить этап обнаружения хостов. Обычно, Nmap использует этот этап для + обнаружения активных машин, к которым можно применить более углубленное сканирование. По умолчанию Nmap + производит углубленное сканирование, такое как сканирование портов, определение версии или определение ОС + только обнаруженных работающих хостов. После отключения этапа обнаружения хостов опцией , + Nmap будет производить сканирование каждого заданого целевого IP адреса. + Так что, если для сканирования будет определена сеть с адресным пространством класса B (/16), то будет + произведено сканирование всех 65,536 IP адресов. Т.к. этап обнаружения хостов и составления списка целей + сканирования пропущен, то Nmap будет исполнять запрошенные функции, как если бы каждый IP адрес был активен. + Для машин локальной сети будет произведено ARP сканирование (пока не зададите ), + т.к. Nmap необходимы MAC адреса для дальнейшего сканирования целевых хостов. Раньше эта опция задавалась + флагом (используется нуль), но была переименова, чтобы избежать путаницы с + пингованием с использованием IP протокола (используется буква O). + + + + + + (TCP SYN пингование) + + SYN ping + + + + Эта опция посылает пустой TCP пакет с установленным SYN флагом. Порт по умолчанию - 80 (можно задать + во время компилирования изменяя DEFAULT_TCP_PROBE_PORT_SPEC + DEFAULT_TCP_PROBE_PORT_SPEC + в nmap.h). + nmap.h + Альтернативные порты задаются в качестве параметров. Синтаксис такой же как и для опции + за исключением того, что спецификаторы типа T: недопустимы. Примеры: + и . Имейте в виду, что между списком + портов и не должно быть пробела. Если заданы несколько запросов, то они будут посланы + параллельно. + + Установленные флаг SYN указывает удаленной системе, что вы пытаетесь установить соединение. Если порт + назначения закрыт, то в ответ посылается RST (сброс) пакет. Если порт открыт, то удаленная система + предпримет второй шаг в 3-ех этапной последовательности установки TCP соединения путем ответа + three-way handshake + SYN/ACK TCP пакетом. Система, на которой работает Nmap, сбрасывает почти установленное соединение отвечая RST + пакетом вместо ACK, что привело бы к установке полного соединения. RST пакет посылается ядром системы, на + которой работает Nmap, в ответ на непредвиденный SYN/ACK пакет, а не самой Nmap. + + Nmap не важно открыт порт или закрыт. Ответы пакетами RST или SYN/ACK описанными выше, указывают + Nmap на то, что хост доступен и может отвечать на запросы. + + На Unix машинах, только пользователь с правами + rootprivileged users, как правило, может посылать и принимать сырые TCP пакеты.raw packets + Для непривилегированного пользователя + unprivileged userslimitations of для каждого целевого + порта инициируется системный вызов connect. Поэтому при попытке + установить соединение на целевой хост посылается SYN пакет. Если на вызов + connect приходит быстрый ответ или отказ типа ECONNREFUSED, значит + TCP стек получил SYN/ACK или RST пакет, и хост помечается как доступный. Если соединение не устанавливается + по причине истечения времени (timeout), то хост помечается как не работающий. Этот механизм также + используется для соединений с использованием протокола IPv6, т.к. построение сырых пакетов IPv6 еще не + реализовано в Nmap.IPv6limitations of + + + + + + + + (TCP ACK пингование) + + ACK ping + + + Этот тип пингования очень похож на описанный выше. Разница состоит в том, как вы могли догадаться, что + вместо установки SYN флага устанавливается TCP ACK флаг. Такой ACK пакет имеет своей целью распознавание + данных во время установленного TCP соединения, но такого соединения не существует, поэтому удаленные хосты + всегда будут отвечат на такой запрос RST пакетом, тем самым выдавая свое существование. + + Опция использует тот же порт по умолчанию, что и SYN запросы (80), и так же может + принимать в качестве параметра список портов в том же формате. Если эту опцию пытается использовать + непривилегированный пользователь или задана цель в формате IPv6, то используется механизм с использованием + вызова connect описанный выше. Этот механизм несовершенен, т.к. при + использовании вызова connect вместо ACK пакета посылается SYN. + + Причина, по которой Nmap предоставляет оба типа пингования (SYN и ACK), состоит в повышении шансов + обхода брандмауэров. Многие администраторы конфигурируют роутеры или другие простые брандмауэры на блокировку + входящих SYN пакетов за исключением тех, что предназначены для публичных служб, таких как веб сайт или + почтовый сервер. Тем самым предотвращаются все остальные соединения, и в то же время пользователи могут + беспрепятственно выходить в Интернет. Такой подход не требует много ресурсов от брандмауэров/роутеров и + широко поддерживается различными аппаратными и программными фильтрами. iptables + для реализации такого подхода имеет опцию . Когда брандмауэр использует такие правила, + то запросы с установленным флагом SYN (), посланные на закрытые порты, с большой + вероятностью будут заблокированы. В таких случаях более выгодно использовать запросы с флагом ACK, т.к. + они не попадают под эти правила. + + Другим популярным типом сетевого экрана является брандмауэр блокирующий все непредвиденные пакеты. + Изначально эта функция поддерживалась только в наиболее продвинутых брандмауэрах, хотя с годами она становится + все популярнее. Использующийся в Linux сетевой экран Netfilter/iptables реализует этот механизм с помощью + опции , которая категоризирует пакеты в зависимости от состояния соединения. Против + таких систем лучше использовать пакеты SYN, т.к. непредвиденные пакеты ACK с большой вероятностью будут + распознаны как фиктивные и заблокированы. Решение такого затруднительного положение состоит в том, чтобы + посылать и SYN и ACK запросы путем задания опций и . + + + + + + (UDP пингование) + + UDP ping + + + + Еще одной функцией используемой для обнаружения хостов является UDP пингование, которая посылает пустой + (пока не задана опция ) UDP пакет на данные порты. Список портов задается в том + же формает, что и для описанных выше опций и . Если порты не заданы, + то по умолчанию используется 31338. Порт по умолчанию может быть задан во время компиляции путем изменения + DEFAULT_UDP_PROBE_PORT_SPEC + DEFAULT_UDP_PROBE_PORT_SPEC + в nmap.h. + nmap.h + По умолчанию выбран не распростаненный порт, т.к. отправка запросов на открытые порты нежелательна для + этого типа сканирования. + + Целью запроса UDP является получение в ответ ICMP пакета с ошибкой "порт недостижим". Это указывает + Nmap на то, что машина работает и доступна. Другие типы ICMP ошибок, такие как хост/сеть недоступна или + превышение TTL указывают на то, что машина выключена или недоступна. Отсутствие ответа интерпретируется + этим же путем. Если такой запрос посылается на открытый порт, то большинство служб просто игнорируют пустой + пакет и не посылают никакого ответа. Поэтому портом по умолчанию является 31338, т.к. он вряд ли будет + использоваться какой-либо службой. Лишь некоторые службы, такие как Character Generator (chargen) protocol, + ответят на пустой UDP пакет, и это также укажет Nmap на то, что машина доступна. + + Основным преимуществом такого типа сканирования является то, что он позволяет обходить брандмауэры, + фильтрующие только TCP запросы. Например, однажды у меня был беспроводной широкополосный роутер + Linksys BEFW11S4. Внутренний интерфейс этого устройства фильтровал по умолчанию все TCP порты, в то время + как в ответ на UDP запросы посылалось сообщение об ошибке "порт недостижим", что делало его работу + бесполезной. + + + + + + + ; + ; + (Типы пинг пакетов ICMP) + + + + ICMP ping + + + + В дополнении к нестандратным методам обнаружения хостов с помощью TCP и UDP запросов, Nmap может + посылать и стандартные пакеты, используемые вездесущей программой + ping. Nmap посылает ICMP пакет типа 8 (эхо запрос) на целевой + IP адрес, ожидая в ответ от доступного хоста пакет типа 0 (эхо ответ). + ICMP echo К сожалению для сетевых исследователей, многие хосты и брандмауэры + теперь блокируют такие пакеты вместо того, чтобы ответить на них, как это требуется в + RFC 1122. По этой причине + сканеры использующе только ICMP запросы редко бывают полезны при сканировании неизвестных целей в Интернете. + Но они могут быть полезны системным администраторам, занимающимся мониторингом внутренней сети. Используйте + опцию , чтобы активировать такой тип сканирования. + + Но Nmap использует не только стандратный эхо запрос. В стандарте ICMP + (RFC 792) также определены + запросы временной метки, информационные запросы и запросы адресной маски с кодами 13, 15 и 17 соответственно. + Хотя они служат для того, чтобы узнать какую-либо информацию, такую как адресную маску или текущее время, они + могут быть легко применены для обнаружения целей. Система, которая отвечает на них, работает и доступна. В + настоящее время Nmap не использует информационные запросы, т.к. они не получиил широкого распространения. + Стандарт RFC 1122 наставивает на том, что хост НЕ ДОЛЖЕН посылать такие сообщения. Запросы + временной метки или адресной маски могут быть посланы путем задания опций и + соответственно. Ответ на запрос временной метки (ICMP код 14) или на запрос адресной + маски (код 18) указывают на то, что хост доступен. Эти запросы могут быть полезны, когда администраторы + блокируют пакеты эхо запросов, но забывают о том, что другие типы ICMP запросов могут быть использованы в + тех же целях. + + + + + + + (пингование с использованием IP протокола) + + IP protocol ping + + + + Новейшей опцией для обнаружения хостов является пингование с использованием IP протокола, которая + посылает IP пакеты с номером протокола, указанным в заголовке пакета. Список протоколов задается в том же + формате, что и список портов в описанных выше опциях обнаружения хостов с помощью протоколов TCP и UDP. Если + не указан ни один протокол, то по умолчанию будут использованы IP пакеты ICMP (протокол 1), + IGMP (протокол 2) и IP-in-IP (протокол 4). Протоколы по умолчанию могут быть заданы во время компиляции + путем изменения + DEFAULT_PROTO_PROBE_PORT_SPEC + DEFAULT_PROTO_PROBE_PORT_SPEC + в nmap.h. + nmap.h + Имейте в виду, что для ICMP, IGMP, TCP (протокол 6) и UDP (протокол 17), пакеты посылаются с "правильными" + заголовками протокола, в то время как для остальных протоколов пакеты посылаются без дополнительной + информации после IP заголовка (пока не задана опция ). + + При использовании этого метода ожидаются ответы по протоколу исходного запроса, либо ICMP сообщение + о недостижимости, что свидетельствует о том, что данный протокол не поддерживается удаленным хостом. Оба + варианта ответа означают, что целевой хост доступен. + + + + + + (ARP пингование) + + ARP ping + + + + Одной из наиболее популярных сфер применения Nmap является сканирование локальных сетей (LAN). В + большинстве локальных сетей, особенно тех, которые используют диапазоны частных адресов определенные в + RFC 1918, большое количество + IP адересов не используется в любой момент времени. Когда Nmap пытается послать сырой IP пакет, такой как + ICMP эхо запрос, операционная система должна определить MAC-адрес (ARP) соответствующий целевому IP, + чтобы правильно адресовать фрейм. Это часто бывает медленно и проблематично, т.к. операционные системы + не были написаны с учетом того, что им придется посылать миллионы ARP запросов недоступным хостам в + короткий промежуток времени. + + ARP сканирование позволяет Nmap вместо ARP запросов использовать свои собственные оптимизированные + алгоритмы. И если Nmap получает ответ, то ей даже нет необходимости беспокоиться о других типах обнаружения + хостов, основанных на IP пакетах. Этот делает ARP сканирование более быстрым и надежным. Поэтому оно + применяется по умолчанию для сканирования локальных сетей. Даже если указаны другие типы сканирования + (как или ), Nmap все равно использует ARP сканирование для + машин локальной сети. Если вы абсолютно не хотите использовать такой тип сканирования, то задайте опцию + . + + + + + + + (Отслеживать путь к хосту) + + traceroute + + + + +Отслеживание осуществляется после сканирования, используя результаты этого сканирования для определения порта и +протокола, с помощью которых можно будет достичь цели. Процедура работает со всеми типами сканирования кроме +сканирования с использованием системного вызова connect () и "ленивого" (idle) сканирования +(). Все отслеживания используют динамическую модель таймингов Nmap и осуществляются параллельно. + + + +Процедура отслеживания маршрута работает путем посылки пакетов с низким TTL (time-to-live (временем-жизни) в попытке +получить в ответ ICMP сообщение Time Exceeded (Превышение Времени Жизни) от промежуточных узлов между сканером и +целевым хостом. Стандартные реализации процедуры отслеживания маршрута начинают с TTL равным 1, а затем увеличивают +его до тех пор, пока не будет достигнут целевой хост. В реализации же этой процедуры в Nmap сначала устанавливается +высокий TTL, а затем TTL уменьшается, пока не станет равным 0. Это позволяет Nmap использовать "умные" алгоритмы +кэширования с целью увеличения скорости отслеживания маршрута. В среднем Nmap посылает 5-10 пакетов на хост, в +зависимости от условий в сети. В случае сканирования единственной подсети (напр. 192.168.0.0/24), возможно будет +необходимо послать только один пакет на каждый хост. + + + + + + (Показать причины состояний портов и хостов) + + + + + +Показывает информацию о причинах, по которым каждый порт установлен в какое-либо состояние, и по которым каждый хост +работает или нет. Эта опция выводит тип пакета, по которому было определено состояние порта или хоста. Например, +RST пакет от закрытого порта или эхо ответ от работающего хоста. Информация, которую +может предоставить Nmap, определяется типом сканирования или пингования. SYN сканирование и SYN пингование +( и ) описываются очень детально, а информация о сканировании с использованием TCP соединений () ограничена реализацией системного вызова +connect. Эта функция автоматически активируется при использовании опции отладки +()implied by , +и результаты ее работы хранятся в XML файлах, даже если эта опция не была задана. + + + + + + (Не производить разрешение DNS имен) + + + + + Указывает Nmap никогда не производить обратное разрешение DNS + reverse DNSdisabling with + имен каждого обнаруженного активного IP адереса. Преобразование DNS может быть + медленным даже со встроенным в Nmap параллельным преобразователем IP адресов, поэтому данная опция может + сократить время сканирования. + + + + + + (Производить разрешение DNS имен для всех целей) + + + + Указыват Nmap всегда производить обратное разрешение DNS имен для каждого целевого + IP адреса. Обычно DNS преобразование применяется только к доступным хостам. + + + + + + (Использовать системный DNS преобразователь) + + + + + По умолчанию Nmap преобразует IP адреса путем посылки запросов непосредственно серверам имен, указанным + в вашей системе, и последующим анализом ответов. Многие запросы (часто десятки) исполняются параллельно для + увеличения производительности. Задайте эту опцию, чтобы использовать ваш системный преобразователь IP адресов + (один IP адрес за один системный вызов getnameinfo). Это медленно и + редко бывает полезно, до тех пор, пока вы не найдете ошибку в параллельном преобразователе Nmap (если найдете, + известите нас, пожалуйста). Системный преобразователь всегда используется для сканирования с использованием + протокола IPv6. + IPv6limitations of + + + + + + + (Сервера для обратного разрешения DNS) + + + + + По умолчанию Nmap определяет DNS сервера (для разрашения rDNS) из вашего resolv.conf файла (Unix) или + из реестра (Win32). Вы можете использовать эту опцию для задания альтернативных серверов. Эта опция + игнорируется, если вы используете или сканирование по протоколу IPv6. + Использование нескольких DNS серверов частно увеличивает скорость сканирования, особенно если вы выбираете + официальные сервера для IP пространства вашей цели. Эта опция также может увеличить незаметность, т.к. ваши + запросы могут быть перенаправлены любым рекурсивным DNS сервером в Интернете. + + Эта опция также бывает полезна при сканировании частных сетей. Иногда лишь некоторые сервера имен + предоставляют правильную rDNS информацию, и вы можете даже не знать, где они. Вы можете просканировать сеть + на наличие открытого порта 53 (возможно с помощью фукнкции определения версии), затем попробовать составить + список () указывая по очереди все сервера имен в опции + до тех пор, пока не найдете тот, который работает. + + + + + + + + + + Основы сканирования портов + + Хотя Nmap постоянно наращивала функциональность, + изначально утилита разрабатывалась как эффективный сканер портов, + и она по-прежнему сохраняет свои основные функции. Простой командой nmap + цель сканирования будет произведено сканирование более чем + 1660 TCP портов на целевой машине. В то время как многие сканеры портов + традиционно разделяют все порты на закрытые и открытые, Nmap имеет более подробную шкалу деления. + Она подразделяет порты на шесть состояний: открыт, + закрыт, фильтруется, + не фильтурется, + открыт|фильтруется или + закрыт|фильтруется. + +Эти состояния не являются собственно характеристиками самих портов, а лишь описывают, как Nmap видит их. +Например, сканирование из той же сети, что и цель, может показать, что порт +135/tcp открыт, в то время как сканирование из Интернета в то же время и с теми же +опциями может показать, что порт фильтруется. + +Шесть состояний портов распознаваемых Nmap + + + open port state + открыт (open) + Приложение принимает запросы на TCP соединение или UDP пакеты на этот порт. + Обнаружение этого состояния обычно является основной целью сканирования. Люди разбирающиеся в безопасности знают, + что каждый открытый порт это прямой путь к осуществлению атаки. Атакующие хотят использовать открытые порты, а + администраторы пытаются закрыть их или защитить с помощью брадмауэров так, чтобы не мешать работе обычных + пользователей. Октрытые порты также интересны с точки зрения сканирования, не связанного с безопасностью, т.к. они + позволяют определить службы доступные в сети. + + + + closed port state + закрыт (closed) + + Закрытый порт доступен (он принимает и отвечает на запросы Nmap), но не используется каким-либо + приложением. Они могут быть полезны для установления, что по заданному IP адресу есть работающий хост (определение + хостов, ping сканирование), или для определения ОС. Т.к. эти порты достижимы, может быть полезным произвести + сканирование позже, т.к. некоторые из них могут открыться. Администраторы могут заблокировать такие порты с + помощью брандмауэров. Тогда их состояние будет определено как фильтруется, что обсуждается далее. + + + + filtered port state + фильтруется (filtered) + + Nmap не может определить, открыт ли порт, т.к. фильтрация пакетов не позволяет достичь запросам + Nmap этого порта. Фильтрация может осуществляться выделенным брадмауэром, правилами роутера или брандмауэром на + целевой машине. Эти порты бесполезны для атакующих, т.к. предоставляют очень мало информации. Иногда они отвечают + ICMP сообщениями об ошибке, такими как тип 3 код 13 (destination unreachable: communication administratively + prohibited (цель назначения недоступна: связь запрещена администратором)), но чаще встречаются фильтры, которые + отбрасывают запросы без предоставления какой-либо информации. Это заставляет Nmap совершить еще несколько + запросов, чтобы убедиться, что запрос был отброшен фильтром, а не затором в сети. Это очень сильно замедляет + сканирование. + + + unfiltered port state + не фильтруется (unfiltered) + Это состояние означает, что порт доступен, но Nmap не может определить открыт он или закрыт. + Только ACK сканирование, используемое для определения правил брандмауэра, может охарактеризовать порт этим состоянием. + Сканирование не фильтруемых портов другими способами, такими как Window сканирование, SYN сканирование или FIN + сканирование может помочь определить, является ли порт открытым. + + + + open|filtered port state + открыт|фильтруется (open|filtered) + Nmap характеризует порт таким состоянием, когда не может определить октрыт порт или фильтруется. + Это состояние возникает при таких типах сканирования, при которых открытые порты не отвечают. Отсутствие ответа + также может означать, что пакетный фильтр не пропустил запрос или ответ не был получен. Поэтому Nmap не может + определить наверняка открыт порт или фильтруется. При сканировании UDP, по IP протоколу, FIN, NULL, а также Xmas + порт может быть охарактеризован таким состоянием. + + + closed|filtered port state + закрыт|фильтруется (closed|filtered) + Это состояние используется, когда Nmap не может определить закрыт порт или фильтруется. + Используется только при сканировании IP ID idle типа. + + + + + Различные приемы сканирования портов + +Как новичок в автомобильном деле, я могу часами биться в попытках использовать свои элементарные инструменты +(молоток, клейкая лента, гаечный ключ и т.д.) для решения какой-либо проблемы. Когда все мои попытки с крахом +проваливаются, и я буксирую свою развалюху к настоящему механику, он неизменно достает из большой коробки с интрументами +какую-нибудь штуковину, и сразу складывается впечатление, что решение проблемы не требует много усилий. Искусство +сканирования портов очень на это похоже. Эксперты понимают дюжины различных приемов сканирования портов и выбирают для конкретной задачи подходящий (или комбинацию из нескольких). Неопытные пользователи и script kiddies, +script kiddies +пытаются решить все задачи с помощью используемого по умолчанию SYN сканирования. Т.к. Nmap является бесплатной, то +единственным барьером на пути к овладению техникой сканирования портов является знание. Это все же лучше чем в мире +автомобилей, где, когда вам наконец-то удается определить, что вам необходимо какое-либо устройство, вам еще надо +будет заплатить за него тысячу долларов. + +Большинство типов сканирования доступны только привилегированным пользователям, +privileged users +потому что посылаются и принимаются сырые пакеты, +raw packets +что требует прав пользователя root на Unix системах. Под Windows рекомендуется работать с учетной записью +администратора, хотя иногда Nmap работает и с непривилегированными пользователя, когда в ОС уже загружена утилита +WinPcap. Требование root привилегий было серьезным ограничением, когда Nmap была выпущена в свет в 1997, т.к. многие +пользователи имели доступ только к разделяемым аккаунтам. Сейчас мир изменился. Компьютеры стали дешевле, многие +пользователи имеют постоянный доступ в Интернет, а Unix системы для домашних компьютеров (включая Linux и Mac OS X) +теперь широко распространены. Также теперь доступна Windows версия Nmap, что позволяет запускать ее на еще большем +количестве компьютеров. По этим причинам, пользователям нет необходимости запускать Nmap с разделяемых аккаунтов. +Это большая удача, т.к. функции требующие привилегированного доступа делают Nmap намного более мощной и гибкой. + +Когда Nmap предпринимает попытку выдать правильные результаты, надо иметь ввиду, что вся информация базируется +на пакетах, возвращенных целевыми машинами (или брандмауэром перед ними). Такие хосты могут быть ненадежными и +посылать ответы с целью ввести Nmap в забдуждение. Намного более распространным случаем являются не совместимые с +RFC хосты, которые отвечают на запросы Nmap не так, как должны. Сканирования типа FIN, NULL и Xmas наиболее +восприимчивы к такого рода проблемам. Такие сложности специфичны только для определенных типов сканирования, и поэтому +обсуждаются в посвященных им разделах. + +В этом разделе описываются около дюжины способов сканирования портов поддерживаемых Nmap. В любой момент времени +вы можете использовать только один метод; исключение составляет UDP сканирование (), которое может +быть скомбинировано с любым типом TCP сканирования. В качестве памятки имейте ввиду, что различные опции сканирования +портов задаются в форме , где C это символ +из названия какого-либо типа сканирования, обычно первый. Единственное исключение это FTP bounce сканирование +(). По умолчанию Nmap осуществляет SYN сканирование; этот тип сканирования заменяет сканирование с +использованием соединения для пользователей не имеющих достаточных привилегий для отправки сырых пакетов (требует +root доступа в Unix), или если были заданы цели в формате IPv6. Среди описанных ниже типов сканирования, +непривилегированные пользователи могут осуществлять только сканирование с использованием соединения и FTP bounce +сканирование. + + + + + (TCP SYN сканирование) + + SYN scan + + + +SYN это используемый по умолчанию и наиболее популярный тип сканирования. На то есть несколько причин. Он может +быть быстро запущен, он способен сканировать тысячи портов в секунду при быстром соединении, его работе не препятствуют +ограничивающие бранмауэры. Этот тип сканирования относительно ненавящив и незаметен, т.к. при таком сканировании TCP +соединение никогда не устанавливается до конца. Он работает с любым TCP стеком, не завися от каки-либо особенностей +специфичной платформы, как это происходит при сканированиях типа FIN/NULL/Xmas, Maimon и idle сканировании. Он также +предоставляет ясную и достоверную дифференциацию между состояниями открыт, +закрыт и фильтруется. + +Эту технику часто называют сканированием с использованием полуотрытых соединений, т.к. вы не открываете +полного TCP соединения. Вы посылаете SYN пакет, как если бы вы хотели установить реальное соединение и ждете. Ответы +SYN/ACK указывают на то, что порт прослушивается (открыт), а RST (сброс) на то, что не прослушивается. Если после +нескольких запросов не приходит никакого ответа, то порт помечается как фильтруемый. Порт также помечается как +фильтруемый, если в ответ приходит ICMP сообщение об ошибке недостижимости (тип 3, код 1,2, 3, 9, 10 или 13). + + + + + + + (TCP сканирование с использованием системного вызова connect) + + connect scan + + +Это используемый по умолчанию тип TCP сканирования, когда недоступно SYN сканирование. Это происходит в случае, +когда у пользователя нет привилегий для использования сырых пакетов или при сканировании IPv6 сетей. Вместо того, +чтобы использовать сырые пакеты, как это происходит при большинстве других типов сканирования, Nmap "просит" +операционную систему установить соединение с целевой машиной по указанному порту путем системного вызова +connect. Это такой же высокоуровневый системный вызов, используемый браузерами, +P2P клиентами и другими приложениями для установки соединения. Этот вызов является частью программируемого интерфейса, +известного как Berkeley Sockets API. Вместо того, чтобы считывать ответы в форме сырых пакетов, Nmap использует этот +API для получения информации о статусе каждой попытки соединения. + +При доступности SYN сканирования, оно, безусловно, будет являться лучшм выбором. У Nmap имеется меньше +возможностей контролирования высокоуровнего вызова connect по сравнению с +сырыми пакетами, что делает его менее эффективным. Системный вызов завершает соединения по открытым портам, вместо +того, чтобы использовать полуоткрытые соединения, как в случае с SYN сканированием. Таким образом на получение +той же самой информации потребуется больше времени и пакетов, да к тому же целевые машины скорее всего запишут это +соединение в свои логи. То же самое сделает и порядочная IDS, хотя большинство машин не имеют такой системы защиты. +Многие службы на вашей Unix системе будут добавлять запись в системный лог (syslog), а также сообщение об ошибке, +когда Nmap будет устанавливать и закрывать соединение без отправления данных. Некоторые службы даже аварийно завершают +свою работу, когда это происходит, хотя это не является обычной ситуацией. Администратор, который увидит в логах +группу записей о попытке установки соединения от одной и той же системы, должен знать, что его машина подверглась +такому типу сканирования. + + + + + + + (Различные типы UDP сканирования) + +UDP scan + + + +В то время как большинство сервисов Интернета используют TCP протокол, +UDP службы также широко распространены. +Тремя наиболее популярными являются DNS, SNMP и DHCP (используют порты 53, 161/162 и 67/68). Т.к. UDP сканирование +в общем случае медленнее и сложнее TCP, то многие специалисты по безопасности игнорируют эти порты. Это является +ошибкой, т.к. существуют UDP службы, которые используются атакующими. К счастью, Nmap позволяет инвентаризировать UDP +порты. + +UDP сканирование запускается опцией . Оно может быть скомбинировано с каким-либо типом TCP +сканирования, например SYN сканирование (), чтобы использовать оба протокола за один проход. + +UDP сканирование работает путем посылки пустого (без данных) UDP заголовка на каждый целевой порт. Если в ответ +приходит ICMP ошибка о недостижимости порта (тип 3, код 3), значит порт закрыт. +Другие ICMP ошибки недостижимости (тип 3, коды 1, 2, 9, 10 или 13) указывают на то, что порт +фильтруется. Иногда, служба будет отвечать UDP пакетом, указывая на то, что порт +открыт. Если после нескольких попыток не было получено никакого ответа, то порт +классифицируется как открыт|фильтруется. Это означает, что порт может быть открыт, +или, возможно, пакетный фильтр блокирует его. Функция определения версии () может быть полезна +для дифференциации действительно открытых портов и фильтруемых. + +Большой проблемой при UDP сканировании является его медленная скорость работы. Открытые и фильтруемые порты редко +посылают какие-либо ответы, заставляя Nmap отправлять повторные запросы, на случай если пакеты были утеряны. Закрытые +порты часто оказываются еще большей проблемой. Обычно они в ответ возвращают ICMP ошибку о недостижимости порта. Но в +отличии от RST пакетов отсылаемых закрытыми TCP портами в ответ на SYN или сканирование с установкой соединения, многие +хосты ограничивают лимит rate limiting +ICMP сообщений о недостижимости порта по умолчанию. Linux и Solaris особенно строги в этом плане. Например, ядро +Linux 2.4.20 огранивает количество таких сообщений до одного в секунду (в +net/ipv4/icmp.c). + +Nmap обнаруживает такого рода ограничения и соответственно сокращает количество запросов, чтобы не забивать +сеть бесполезными пакетами, которые все равно будут отброшены целевой машиной. К сожалению, при ограничении в стиле +Linux (один пакет в секунду) сканирование 65,536 портов займет более 18 часов. К способам увеличения скорости UDP +сканирования относятся: параллельное сканирование нескольких хостов, сканирование в первую очередь только наиболее +популярных портов, сканирование из-за брандмауэра и использование дял пропуска +медленных хостов. + + + + + + + ; ; (TCP NULL, FIN и Xmas сканирования) + + + +NULL scan +FIN scan +Xmas scan + + + +Эти три типа сканирования используют (другие типы сканирования доступны с использованием опции + описанной в другой секции) +незаметную лазейку в TCP RFC, чтобы +разделять порты на открытые и закрытые. На +странице 65 RFC 793 говорится, что если порт назначения ЗАКРЫТ .... входящий сегмент не содержащий RST повлечет +за собой отправку RST в ответ. На следующей странице, где обсуждается отправка пакетов без установленных +битов SYN, RST или ACK, утверждается что: вы вряд ли с этим столкнетесь, но если столкнетесь, то сбросьте +сегменти и вернитесь к исходному состоянию. + +Когда сканируется система отвечающая требованиям RFC, любой пакет, не содержащий установленного бита SYN, RST или +ACK, повлечет за собой отправку RST в ответ в случае, если порт закрыт, или не повлечет никакого ответа, если порт +открыт. Т.к. ни один из этих битов не установлен, то любая комбинация трех оставшихся (FIN, PSH и URG) будет являться +правильной. Nmap использует это в трех типах сканирования: + + + Null сканирование () + Не устанавливаются никакие биты (Флагов в TCP заголовоке 0) + + FIN сканирование () + Устанавливается только TCP FIN бит. + + Xmas сканирование () + Устанавливаются FIN, PSH и URG флаги. + + +Эти три типа сканирования работают по одной схеме, различия только в TCP флагах установленных в пакетах запросов. +Если в ответ приходит RST пакет, то порт считается закрытым, отсутствие ответа +означает, что порт открыт|фильтруется. Порт помечается как +фильтруется, если в ответ приходит ICMP ошибка о недостижимости (тип 3, код +1, 2, 3, 9, 10 или 13). + +Ключевой особенностью этих типов сканирования является их способность незаметно обойти некоторые не учитывающие +состояние (non-stateful) брандмауэры и роутеры с функцией пакетной фильтрации. Еще одним преимуществом является то, что +они даже чуть более незаметны, чем SYN сканирование. Все же не надо на это полагаться - большинство современных IDS +могут быть сконфигурированы на их обнаружение. Большим недостатком является то, что не все системы следуют RFC 793 +дословно. Некоторые системы посылают RST ответы на запросы не зависимо от того, открыт порт или закрыт. Это приводит +к тому, что все порты помечаются как закрытые. Основными системами ведущими себя +подобным образом являются Microsoft Windows, многие устройства Cisco, BSDI и IBM OS/400. Хотя такое сканирование +применимо к большинству систем, основанных на Unix. Еще одним недостатком этих видов сканирования является их +неспособность разделять порты на открытые и +фильтруемые, т.к. порт помечается как +открыт|фильтруется. + + + + + + + (TCP ACK сканирование) + + ACK scan + + + +Этот тип сканирования сильно отличается от всех других тем, что он не способен определить открый порт +open (или даже открытый|фильтруемый). Он +используются для выявления правил брандмауэров, определения учитывают ли он состояние или нет, а также для определения +фильтруемых ими портов. + +Пакет запроса при таком типе сканирования содержит установленным только ACK флаг (если не используется +). При сканировании нефильтруемых систем, +открытые и закрытые порты оба будут возвращать +в ответ RST пакет. Nmap помечает их как не фильтруемые, имея ввиду, что они +достижимы для ACK пакетов, но неизвестно открыты они или +закрыты. Порты, которые не отвечают или посылают в ответ ICMP сообщение об ошибке +(тип 3, код 1, 2, 3, 9, 10 или 13), помечаются как фильтруемые. + + + + + + + (TCP Window сканирование) + +window scan + + + +Этот тип сканирования практически то же самое, что и ACK сканирование, за исключением того, что он использует +особенности реализации различных систем для разделения портов на открытые и закрытые, вместо того, чтобы всегда при +получении RST пакета выводить не фильтруется. Это осуществляется путем анализа +TCP Window поля полученного в ответ RST пакета. В некоторых системах открытые порты используют положительное значение +этого поля (даже в RST пакетах), а закрытые - нулевое. Поэтому вместо того, что все время при получении RST пакета в +ответ помечать порты как не фильтруемые, при Window сканировании порты помечаются +как открытые или закрытые, если значение поля +TCP Window положительно или равно нулю соответственно. + +Этот тип сканирования основывается на особенностях реализации меньшинства систем в Интернете, поэтому вы не +можете все время доверять ему. В общем случае в системах, не имеющих таких особенностей, все порты будут помечаться +как закрытые. Конечно, это возможно, что у машины действительно нет открытых портов. +Если большинство просканированных портов закрыты, и лишь несколько распространненых +портов (таких как 22, 25, 53) фильтруются, то скорее всего результатам сканирования +можно доверять. Иногда, системы будут вести себя прямо противоположным образом. Если в результате сканирования будет +найдено 1000 открытых портов и 3 закрытых или фильтруемых, то как раз эти 3 могут оказаться действительно открытыми. + + + + + + + + (TCP сканирование Мэймона (Maimon)) + +Maimon scan + + + +Этот тип сканирования носит имя своего первооткрывателя, Уриела Мэймона (Uriel Maimon). +Maimon, Uriel +Он описал эту технику в журнале Phrack Magazine, выпуск #49 (Ноябрь 1996). +Phrack +Версия Nmap с поддержкой этого типа сканирования была выпущена через два номера. Техника практически такая же как и +при NULL, FIN и Xmas сканированиях, только в качестве запросов используются запросы FIN/ACK. Согласно +RFC 793 (TCP), в ответ на такой запрос +должен быть сгенерирован RST пакет, если порт открыт или закрыт. Тем не менее, Уриел заметил, что многие BSD системы +просто отбрасывают пакет, если порт открыт. + + + + + + + (Заказное TCP сканирование) + + + + +Действительно продвинутым пользователям Nmap не нужды ограничивать себя заранее приготовленными типами +сканирования. С помощью опции вы можете разработать свой тип сканирования путем задания +специфичных TCP флагов.TCP flags +Используйте свое воображение, обходя системы обнаружения вторжений, чьи производители просто просмотрели справочное +руководство Nmap, путем задания собственных правил!intrusion detection systemsevading + +Аргументом опции может быть числовое значение, например, 9 (PSH и FIN флаги), но +использование символьных имен намного проще. Используйте любые комбинации URG, +ACK, PSH, +RST, SYN и +FIN. Например, опцией будут установлены все флаги, хотя это и не очень полезно для сканирования. Порядок задания +флагов не имеет значения. + +В добавлении к заданию желаемых флагов, вы также можете задать тип TCP сканирования (например, + или ). Это укажет Nmap на то, как необходимо интерпретировать ответы. +Например, при SYN сканировании отсутствие ответа указывает на фильтруемый порт, +тогда как при FIN сканировании - на открытый|фильтруемый. Nmap будет осуществлять +заданный тип сканирования, но используя указанные вами TCP флаги вместо стандартных. Если вы не указываете тип +сканирования, то по умолчанию будет использоваться SYN. + + + + + + + ("ленивое" idle сканирование) + + idle scan + + + + + Этот продвинутый метод сканирования позволяет осуществить действительно незаметное TCP сканирование + портов цели (имеется ввиду, что никакие пакеты не отсылаются на целевую машину с вашего реального IP адерса). + Вместо этого, на зомби машине используется предсказуемая последовательность генерации ID IP фрагментов для + сбора информации об открытых портах цели. Системы IDS будут считать, что сканирование производится с + заданной вами зомби машины (которая должна работать и удовлетворять определенным критериям). + Этот тип сканирования слишком сложен для описания в этом справочном руководстве, поэтому я написал и выложил + подробное описание на . + + Подробное описание этого типа сканирования смотрите на . + + + + Помимо его незаметности (в силу своей природы), этот тип сканирования также позволяет определять + основанные на IP доверительные отношения между машинами. Список открытых портов показывает открытые порты + с точки зрения зомби машины. Поэтому вы можете попробовать просканировать цель + используя различные зомби машины, которым, вы считаете, возможно будут доверять + trust relationships + (посредством правил роутера/пакетного фильтра). + + + Вы можете добавить номер порта после двоеточия к зомби хосту, если хотите использовать конкретный + порт. По умолчанию будет использоваться порт 80. + + Порты также могут быть заданы именами, которым они соответствуют в файле + nmap-services. Вы даже можете использовать шаблоны * и ? в именах. + Например, чтобы просканировать ftp и все порты начинающиеся с http используйте . + В таких случаях лучше брать аргументы -p в кавычки. + + Диапазоны портов заключаются в квадратные скобки; будут просканированы порты из этого диапазона, + встречающиеся в nmap-services. + Например, с помощью следующей опции будут просканированы все порты из + nmap-services равные или меньше 1024: . + В таких случаях лучше брать аргументы -p в кавычки. + + + + + + (Сканирование IP протокола) + + IP protocol scan + + + +Сканирование такого типа позволяет определить, какие IP протоколы (TCP, ICMP, IGMP и т.д.) поддерживаются +целевыми машинами. Технически такое сканирование не является разновидностью сканирования портов, т.к. при нем +циклически перебираются номера IP протоколов вместо номеров TCP или UDP портов. Хотя здесь все же используется опция + для выбора номеров протоколов для сканирования, результаты выдаются в формате таблицы портов, и +даже используется тот же механизм сканирования, что и при различных вариантах сканирования портов. Поэтому он +достаточно близок к сканированию портов и описывается здесь. + +Помимо полезности непосредственно в своей сфере применения, этот тип сканирования также демонстрирует всю мощь +открытого программного обеспечения (open-source software). Хотя основная идея довольна проста, я никогда не думал +включить такую функцию в Nmap, и не получал запросов на это. Затем, летом 2000-го, Джерард Риджер (Gerhard Rieger) +Rieger, Gerhard +развил эту идею, написал превосходный патч воплощающий ее и отослал его на +nmap-hackers рассылку.nmap-hackers mailing list +Я включил этот патч в Nmap и на следующий день выпустил новую версию. Лишь единицы комерческого программного обеспечения +могут похвастаться пользователями, достаточно полными энтузиазма для разработки и предоставления своих улучшений! + +Способ работы этого типа сканирования очень похож на реализованный в UDP сканировании. Вместо того, чтобы +изменять в UDP пакете поле, содержащее номер порта, отсылаются заголовки IP пакета, и изменяется 8 битное поле IP +протокола. Заголовки обычно пустые, не содержащие никаких данных и даже правильного заголовка для требуемого протокола. +Исключениями явлются TCP, UDP и ICMP. Включение правильного заголовка для этих протоколов необходимо, т.к. в обратном +случае некоторые системы не будут их отсылать, да и у Nmap есть все необходимые функции для их создания. Вместо того, +чтобы ожидать в ответ ICMP сообщение о недостижимости порта, этот тип сканирования ожидает ICMP сообщение о +недостижимости протокола. Если Nmap получает любой ответ по любому протоколу, то протокол +помечается как открытый. ICMP ошибка о неостижимости протокола (тип 3, код 2) +помечает протокол как закрытый. Другие ICMP ошибки недостижимости (тип 3, код +1, 3, 9, 10 или 13) помечают протокол как фильтруемый (в то же время они показывают, +что протокол ICMP открыт). Если не приходит никакого ответа после нескольких +запросов, то протокол помечается как открыт|фильтруется. + + + + + + + + + (FTP bounce сканирование) + + FTP bounce scan + + + +Интересной возможностью FTP протокола (RFC 959) является поддержка так называемых прокси FTP соединений. Это позволяет пользователю подключиться к одному +FTP серверу, а затем попросить его передать файлы другому. Это является грубым нарушением, поэтому многие сервера +прекратили поддерживать эту функцию. Используя эту функцию, можно осуществить с помощью данного FTP сервера +сканирование портов других хостов. Просто попросите FTP сервер переслать файл на каждый интересующий вас порт целевой +машины по очереди. Сообщение об ошибке укажет: открыт порт или нет. Это хороший способ обхода брандмауэров, т.к. +организационные FTP сервера обычно имеют больше доступа к другим внутренним хостам, чем какие-либо другие машины. +В Nmap такой тип сканирования задается опцией . В качестве аргумента ей передается +имя_пользователя:пароль@сервер:порт. +Сервер - это сетевое имя или IP адрес FTP сервера. Как и в случае в обычными URL, вы можете опустить имя_пользователя:пароль, тогда будут использованы +анонимные данные (пользователь: anonymous +пароль:-wwwuser@). Номер порта (и предшествующее ему двоеточие) также можно не +указывать; тогда будет использован FTP порт по умолчанию (21) для подключения к серверу. + + +Эта уязвимость была широко распространена в 1997, когда была выпущена Nmap, но теперь почти везде исправлена. +Уязвимые сервера по-прежнему есть, так что, если ничего другое не помогает, то стоит попробовать. Если вашей целью +является обход бранмауэра, то просканируйте целевую сеть на наличие открытого порта 21 (или даже на наличие любых +FTP служб, если вы используете определение версии), а затем попробуйте данный тип сканирования с каждым из найденных. +Nmap скажет вам, уязвим хост или нет. Если вы просто пытаетесь замести следы, то вам нет необходимости (и, фактически, +не следует) ограничивать себя только хостами целевой сети. Перед тем как вы начнете сканировать произвольные Интернет +адреса на наличие уязвимого FTP сервера, имейте ввиду, что многим системным администраторам это не понравится. + + + + + + + + Определение портов и порядка сканирования + port specification + + В дополнении ко всем методам сканирования описанными ранее, Nmap предлагает опции для определения портов + для сканирования, а также порядка сканирования: произвольного или последовательного. По умолчанию, Nmap сканирует + все порты до 1024 включительно, а также все порты с большими номерами упомянутыми в файле nmap-services для протокола, по которому идет сканирование. + default ports + + + + + + (Сканирование только определенных портов) + + + + + + С помощью этой опции вы можете определить, какие порты вы хотите просканировать и переопределить + установки по умолчанию. Указание отдельных номеров портов допустимо, как и задание диапазонов портов + разделенных дефисом (напр. 1-1023). Начальные и/или кончные значения + диапазонов могут быть опущены, что заставит Nmap использовать 1 и 65535 соответственно. Поэтому вы можете + задать опцию , чтобы просканировать все порты от 1 до 65535. Сканирование нулевого + порта допустимо, если вы укажене его явно + port zero. + Для сканирования по IP протоколу (), эта опция определяет номера протоколов, которые + вы хотите просканировать для диапазона (0-255). + + Когда сканируете и TCP и UDP порты, вы можете задать определенный протокол указав перед номерами + портов T: + или U:. Определитель будет действовать до того момента, пока вы не + зададите другой. Например, при задании аргумента будут просканированы UDP + порты 53,111, и 137, а также все перечисленные TCP порты. Имейте в виду, что для сканирования и UDP и + TCP портов, вы должны указать опцию и, по крайне мере, один из типов сканирования TCP + (таких как , или ). Если определитель прокотола + не указан, то перечисленные порты будут добавлены ко всем протоколам. + + + port specificationwildcards in + Порты также могут быть заданы именами, которые указаны в + nmap-services. Вы даже можете использовать символы ? и * с именами. + Например, чтобы просканировать FTP и все порты, чьи имена начинаются с http, используйте + . Будьте осторожны при вводе этой команды и лучше заключите аргумент + в кавычки. + + Диапазоны портов могут быть заключены в квадратные скобки, чтобы определить порты внутри этого + диапазона, которые упомянуты в nmap-services. + Например, с помощью следующей команды будут просканированы все порты из + nmap-services равные или меньшие 1024: + . Будьте осторожны при вводе этой команды и лучше заключите аргумент + в кавычки. + + + + + + (Быстрое (ограниченные порты) сканирование) + + + + Указывает, что вы хотите произвести сканирование только портов, указанных в + nmap-services, который поставляется вместе с Nmap (или в файле + протоколов для ). Это намного быстрее, чем сканировать все 65535 портов целевой машины. + Т.к. этот список содержит много TCP портов (больше 1200), разница в скорости в отличии от TCP сканирования + по умолчанию (около 1650 портов) несущественна. Разница может быть огромна, если вы определите свой + небольшой nmap-services файл используя + + или опции. + + + + + + + (Не использовать случайный порядок портов) + + randomization of ports + + + По умолчанию, Nmap использует произвольный порядок сканирования портов (исключение составляют лишь + наиболее часто употребляемые порты, которые расположены в начале списка сканирования по причинам + эффективности). Обычно эта случайность нужна, но вы можете задать опцию , чтобы + использовать прямой порядок сканирования. + + + + + + + + + --port-ratio + Сканирует все порты из nmap-services, чей рейтинг больше числа, + указанного как аргумент (только для нового формата nmap-services). + + + + + + + + + --top-ports + Сканирует N портов с наибольшими рейтингами, расположенными в + nmap-services файле (только для нового формата + nmap-services). + + + + + + + + + + Обнаружение служб и их версий + version detection + + + При сканировании удаленной машины Nmap может выдать, что порты + 25/tcp, 80/tcp, и + 53/udp открыты. Используя свою базу данных + nmap-servicesnmap-services, + состоящюю из около 2200 известных служб, + well-known ports + Nmap сообщит, что эти порты вероятно соответстуют почтовому серверу (SMTP), веб серверу (HTTP), + и серверу доменных имен (DNS) соответственно. Эта информация обычно верна, т.к. подавляющее большинство служб, + использующих 25 TCP порт, фактически, почтовые сервера. Тем не менее, вам не следует полностью полагаться на эту + информацию! Люди могут и запускают службы с использованием нестандартных портов. + non-standard ports + + + Даже если Nmap права, и на какой-либо гипотетической машине упомянутой выше запушены SMTP, HTTP и DNS + сервера, это не так уж и много информации. Когда производится сканирование с целью обнаружения уязвимостей + (или же просто определение структуры сети) компьютеров ваших компаний или клиентов, вам хочется знать, какие точно + почтовые и DNS сервера и какие версии используются. Знание точной версии очень помогает в определении, к каким + эксплоитам сервер наиболее уязвим. Эту информацию вы можете получить с помощью задания опции определения версии. + + + После того как какие-либо TCP и/или UDP были обнаружены, Nmap начинает "опрашивать" эти порты, чтобы + определить, какие же приложения (службы) их действительно используют. База данных + nmap-service-probesnmap-service-probes + содержит запросы для обращения к различным службам и соответствующие выражения для распознавания и анализа ответов. + Nmap пытается определить протоколо службы (напр. FTP, SSH, Telnet, HTTP), имя приложения (e.g. ISC + BIND, Apache httpd, Solaris telnetd), номер версии, имя хоста, тип устройства (напр. принтер, роутер), + семейство ОС (напр. Windows, Linux) и иногда различные детали типа возможно ли соединится с X сервером, + версию протокола SSH, или имя пользователя KaZaA. Конечно же, большинство служб не предоставляют такую информацию. + Если Nmap была скомпилирована с поддержкой OpenSSL, Она соединится с сервером SSL, чтобы попытаться определить + запущенные службы, работающие за зашифрованным слоем. + SSLin version detection + Когда обнаружены службы RPC, удет автоматически задействована опция Nmap + RPC grinder () + + для определения программы RPC и ее версии. После сканирования портов UDP некоторые из них характеризуются как + открыт|фильтруется, если сканирование не может определить открыт порт или + фильтруется. С заданной опцией определения версии Nmap попытается получить ответ от таких портов (точно так же как + она поступает с открытыми портами), и, в случае успеха, поменяет состояние этого порта на открыт + открытые|фильтруемые TCP порты обрабатываются так же. Имейте в виду, что + опция Nmap помимо других команд активирует также и обнаружение версии. + + Бумажная документация по работе, использованию и настройке опции обнаружения версии доступна на + . + + + Опция обнаружения версии подробнее рассматривается в . + + + + Когда Nmap получает ответы от службы, но не может сопоставить их с какой-либо записью в своей базе данных, + она выводит на экран специальную информацию и URL, по которому вы можете опубликовать эту информацию, если вы точно + уверены, что за служба запущена на исследуемом вами порте. Пожалуйста, потратьте пару минут на публикацию этой + информации, т.к. ваша находка поможет остальным. Благодаря таким публикациям, Nmap содержит в своей базе данных + около 3000 записей для более чем 350 протоколов, таких как SMTP, FTP, HTTP и т.д. + submission of service fingerprints + + + Функция определения версии включается и управляется с помощью следующих опций: + + + + + + + (Определение версии) + + + + + Включает функцию определения версии, работа которой описана выше. Вы также можете использовать + опцию , которая помимо других функций включает определение версии. + + + + + + + (Не исключать порты из проверки определения версии) + + + + + По умолчанию, функция определения версии пропускает TCP порт 9100, + потому что некоторые принтеры просто распечатывают все, что приходить на этот порт, что ведет к + дюжинам страниц HTTP GET запросов, бинарных запросов SSL сессий т.д. Это может быть изменено путем + модифицирования или удаления директивы Exclude + в nmap-service-probes, или вы можете задать опцию + , сканированить все порты не обращая внимания на всякие + Exclude директивы. + Exclude directive (nmap-service-probes) + + + + + + + (Устанавливает интенсивность + работы функции) + + + + + + Когда производится сканирование с заданной опцией определения версии + (), Nmap посылает серию запросов, каждому из которых присваивается значение в диапазоне + от 1 до 9. Запросы с низкими значениями эффективны для большинства типичных служб, в то время как запросы + с более высокими значениями редко применяются на практике. Уровень интенсивности определяет, какие запросы + должны использоваться во время сканирования. Чем выше значение запроса, тем больше вероятность корректного + определения службы. Тем не менее, сканирование с высокой интенсивностью займет много времени. Уровень + интенсивности должна быть задана числом от 0 до 9. + version detectionintensity + По умолчанию уровень интенсивности равен 7. + version detectiondefault intensity + Когда запрос привязан к целевому порту посредством директивы + nmap-service-probes ports, + этот запрос будет производиться вне зависимости от уровня интенсивности. Это гарантирует, что DNS + запросы всегда будут производится с использование порта 53, SSL запросы - 443 и т.д. + + + + + + + (Включить облегченный режим) + + + + + Это не что иное как псевдоним для . Этот режим существенно + уменьшает время сканирования, но вероятность определения служб сокращается. + + + + + + (Использовать каждый единичный запрос) + + + + + Псевдоним для , гарантирующий что каждый единичный запрос + будет направлен на каждый порт. + + + + + + (Отслеживание процесса сканирования) + + + + Указывает Nmap выводить подробную отладочную информацию о процессе сканирования. Это часть той + информации, которую вы можете получить с помощью опции . + + + + + + (RPC сканирование) + + RPC scanRPC grinder + RPC grinder + + + + Этот метод работает в связке с различными методами сканирования портов Nmap. При включении этой опции + на все обнаруженные открытые TCP/UDP порты посылатеся множество NULL команд программы SunRPC + в попытке определить, являются ли эти порты RPC портами, и если так, то какими программами (а также их версии) + они используются. Таким образом, вы можете получить ту же информацию как и в случае использования команды + rpcinfo -p, даже если целевой сервер портмаппинга (portmapper) находится + за брандмауэром (или защищен TCP фильтром). На сегодняшний момент ловушки со сканированием RPC не работают + decoyswhich scans use + Эта опция автоматически активируется как часть сканирования с функцией определения версии + (). Т.к. это включено в функцию определения версии и более детально проработано, + то опция нужна очень редко. + + + + + + + + + + Определение ОС + OS detection + + Одна из наиболее известных функциональных возможностей Nmap это удаленное определение ОС на основе + анализа работы стека TCP/IP. Nmap посылает серию TCP и UDP пакетов на удаленный хост и изучает практически + каждый бит в ответах. После проведения дюжины тестов таких как TCP ISN выборки, поддержки опций TCP, IP ID + выборки, и анализа продолжительности процедуры инициализации, Nmap сравнивает результаты со своей + nmap-os-dbnmap-os-db базой данных, состоящей из более чем тысячи известных наборов + типичных результатов для различных ОС и, при нахождении соответствий, выводит информацию об ОС. Каждый набор + содержит свободное текстовое описание ОС и классификацию, в которой указаны название производителя (напр. Sun), + название ОС (напр. Solaris), поколение ОС (напр. 10), и тип устройства (). + OS, and a classification which provides the vendor name + (e.g. Sun), underlying OS (e.g. Solaris), OS generation (e.g. 10), + and device type (для общих целей, роутер, коммутатор (switch), игровая консоль и т.д.). + + Если Nmap не может определить ОС, но для этого есть хорошие предпосылки (наприме, по крайней мере, + найдены один открытый и один закрытый порты), то Nmap предоставит URL, по которому, если вы точно знаете, + какая ОС используется, вы сможете предоставить набор ее характеристик. Тем самым вы внесете свой вклад в дополнение + базы данных известных ОС Nmap, и она будет более полезна для всех остальных. + + Опция определения ОС также активирует проведение некоторых других тестов, которые позволяют воспользоваться + собираемой в процессе работы информацией. Один из них Классификация Предсказуемости Последовательности TCP + (TCP Sequence Predictability Classification). Это позволяет приблизительно определить, насколько сложно установить + ложное TCP соединение с удаленным хостом. Это может быть полезно для взлома и эксплуатации программ, базирующихся + на доверительных отношениях (rlogin, фильтры брандмауэров и т.д.) или для сокрытия источника атаки. Этот тип + спуфинга (spoofing) теперь редко используется, но многие машины все еще уязвимы к такого рода атакам. Число, + характеризующее сложность, базируется на статистической выборке и может колебаться. Обычно лучше испльзовать + классификацию с испльзованием английских фраз типа + worthy challenge(достойное испытание) или trivial joke(шуточное дело). Эта + информация будет выведена только при включенном вербальном режиме (). Когда вербальный режим + активирован вместе с опцией , то выводится также информация о генарции IP ID последовательности. + Большинство машин находятся в классе incremental(возрастающий), что означает, что они увеличивают + поле ID в IP заголовке для каждого посланого пакета. Это делает их уязвимыми к спуфинг(spoofing) атакам и атакам + с целью сбора расширенной информации. + + uptime guess + + Также во время определения ОС делается попытка узнать время работы целевой машины. С помощью временных меток + (timestamp) TCP (RFC 1323) Nmap + пробует угадать, когда машина была перезагружена в последний раз. Информация может быть не точна, т.к. счетчик + временной метки не был обнулен или был переполнен, или каким-то образом скрыт. Информация выводится только в + вербальном режиме. + + + + Бумажная документация по работе, использованию и настройки опции определения ОС находится на + . + + + Опция определения ОС рассмотрена в . + + + + Функция определения ОС включается и управляется с помощью следующих опций: + + + + + (Включить определение ОС) + + + + + + Включает фукнцию определения ОС, работа которой описана выше. Вы также можете использовать + опцию , которая помимо других функций включает определение ОС. + + + + + + + (Использовать функцию определения ОС только для "перспективных" хостов) + + + + + Функция определения ОС намного более эффективна, если обнаружены, по крайней мере, один открытый и один + закрытый TCP порты. Задайте эту опцию, и Nmap не будет даже пытаться определить ОС хостов, не удовлетворяющих + этому критерию. Это поможет сэкономить массу времени, особенно при сканирование многих + хостов. Эта опция будет действовать только при включении функции ОС путем задания опций + или . + + + + + + ; (Угадать результаты определения ОС) + + + + + + Когда Nmap не в состоянии определеить точное совпадение, она иногда предоставляет наиболее близкие + к результатам сканирования совпадения. Чтобы Nmap сделала это по умолчанию, совпадения должны быть очень + близки. Любая их этих (равных) опций побуждает Nmap к более агрессивному анализу результатов. Nmap + по-прежнему будет сообщать, когда будет найдено не идеальное совпадение, а также отображать стпень + соответствия (в процентах) для каждого набора характеристик. + + + + + + (Устанавливает максимальное количество попыток определения ОС) + + + + + + Когда Nmap пытается определить ОС на целевом хосте и не может найти идеального соответствия результатов, + то она обычно повторяет попытку. По умолчанию, Nmap совершает пять попыток при условии, что существуют + благоприятные условия для определения ОС, и дважды - в противном случае. Задание более низкого значения + (напр. 1) увеличивает скорость работы Nmap, однако вы пропускаете некоторые + записи, с помощью которых, возможно, можно было бы определить ОС. Большое значение может быть задано для + разрешения большего количества попыток при благоприятных условиях. Это делается редко, за исключением тех + случаев, когда необходимо сгенерировать более детальный набор характеристик ОС для занесения в базу данных + Nmap. + + + + + + + + + Скриптовый движок Nmap(NSE - Nmap Scripting Engine) + Nmap Scripting Engine (NSE) + + Скриптовый движок Nmap (NSE) это одна из наиболее мощных и гибких возможностей Nmap. Он позволяет + пользователям писать (и делиться ими) простые скрипты (используя + язык программирования Lua, + Lua programming language) для автоматизации + широкого круга сетевых задач. Эти скрипты выполняются со скоростью и эффективность ожидаемой вами от Nmap. + Пользователи могут использовать разнообразный и постоянно расщиряющийся набор скриптов, которые поставляются + вместе с Nmap, или написать свои скрипты под свои собственные нужды. + + Когда мы создавали эту систему, считалось, что она будет использоваться для задач исследования сети, более + изощренного варианта определения версии, исследования уязвимостей. NSE может быть исполльзован даже для + обнаружения уязвимостей. + + + Чтобы отразить все многообразие возможностей использования скриптов и при этом упростить выбор необходимого + скрипта, каждый из них содержит поле, где указано к какой категории он принадлежит. Сейчас определены следующие + категории: safe, + (intrusive), malware, + version, discovery, + vuln, auth и + default. Все они описаны + в . + в . + + + Скриптовый движок Nmap детально описан +на +в и настраивается с помощью следующих опций: + + + + + + + + + + + + Осуществляет сканирование на основе скриптов. Эквивалентно опции . + Некоторые их применяемых здесь скриптов относятся к категории intrusive (навязчивые) и не должны быть + использованы для сканирования целевой сети без разрешения. + + + + + + + +Осуществляет сканирование на основе скриптов (как ) используя разделенный запятыми список +категорий скриптов, отдельных файлов скриптов или директорий содержащих скрипты вместо стандартного набора скриптов. +Сначала Nmap пытается интерпретирует все аргументы как категории, затем (в случае неудачи) как файлы или директории. +Файл скрипта или директория скриптов могут быть определны с использованием абсолютного или относительного пути. +Абсолютные пути используются так, как вы их зададите. Относительные пути будут определяться относительно: +data filesdirectory search orderscripts, location of +--datadir/; +$NMAPDIR/;NMAPDIR environment variable +~/.nmap/ (не используется в Windows);.nmap directory +NMAPDATADIR/ илиNMAPDATADIR +./. Также все эти папки будут проверяться на наличие поддиректории +scripts/ + +Если вы определили директорию со скриптами, и она была найдена, то Nmap загружает все NSE +скрипты (все файлы с расширением .nse) из этой директории. Файлы без расширения +nse игнорируются. Nmap не производит рекурсивный поиск скриптов во всех +поддиректориях. Если вы указываете конкретный файл, то его расширение не обязательно должно быть +nse. + +По умолчанию скрипты Nmap хранятся в папке scripts - +поддиректории основного каталого Nmap. Для большей производительности, +все скрипты проиндексированы в базе даннных scripts/script.db, +script.db +где указано к какой категории или категориям принадлежит каждый скрипт. Для исполнения всех скриптов из базы данных +Nmap задайте атрибут all. + +Злонамеренные скрипты запускатся не в "песочнице" (sandbox) и поэтому могут повредить вашу систему или нарушить +вашу анонимность. Никогда не используйте скрипты от третьих лиц до тех пор, пока не будете доверять автору или +сами тщательно просмотрите скрипт. + + + + + + + + script arguments + + +Позволяет вам передавать аргументы NSE скриптам. Аргументы передаются как пары +имя=значение. Передаваемый аргумент обрабатывается и хранится в Lua таблице, +к которой имеют доступ все скрипты. Имена передаются как строки (должны быть буквенно-цифровыми значениями) и +используются в качестве ключей в argument-table. Значения могут быть также строками +или в свою очередь таблицами (заключенными в ‘{’ и +‘}’). Такие подтаблицы позволяют переопределить аргументы для конкретных скриптов +(например, если вы хотите предоставить различным скриптам различные пары login/password). Например, вы можете +определить аргументы через запятые: user=bar, +password=foo и +anonFTP={password=nobody@foobar.com}. Если вы хотите переопределить опцию для +скрипта, вы должны проиндексировать подтаблицу с помощью id скрипта, т.к. это +единственный способ указать скрипту на наличие специального аргумента. + + + + + + + + + + Эта опция делает то же самое, что и , но на один ISO уровень выше. + Если задана эта опция, то все входящие и исходящие соединения, осуществляемые скриптом, выводятся на экран. + Выводимая информация включает в себя используемый коммуникационный протокол, источник, цель и переданные + данные. Если более 5% переданных данных невозможно вывести на экран, то вывод будет представлять собой + шестнадцатеричный (hex) дамп. + + + + + + + + + + Этой опцией обновляется база скриптов scripts/script.db, + которая используется Nmap для определения доступных скриптов по умолчанию и их категорий. Обновлять + базу необходимо, только если вы добавили или удалили NSE скрипты из директории + scripts, или поменяли категорию какого-нибудь скрипта. Эта опция + обычно используется без аргументов: nmap --script-updatedb. + + + + + + + + + + Опции управления временем и производительностью + timing + performance + Наиболее приоритетной стороной развития Nmap для меня всегда была производительность. Сканирование по + умолчанию (nmap имя_хоста) какого-либо хоста в моей + локальной сети занимает пятую долю секунды. Этого едва хватает, чтобы моргнуть, но становится существенным, когда + вы сканируете сотни или тысячи хостов. Более того, некоторые типы сканирования, как например, UDP или + сканирование с целью определения версии могут в значительной степени увеличить время сканирования. Этому также + могут поспособствовать настройки некоторых брандмауэров, где есть ограничения на количество ответов. Хотя в Nmap + используются параллелизм и различные продвинутые алгоритмы для уменьшения времени сканирования, у пользователя + есть возможность полностью контролировать работу программы. Опытные пользователи Nmap задают команды таким образом, + чтобы получать только необходимую им информацию и в удовлетворяющие им сроки. + + Способами увеличения скорости сканирования могут быть пропуск не критичных тестов, или обновление Nmap до + последней версии (улучшения производительности выходят довольно часто). Оптимизация параметров опций управления + временем также может значительно повлиять на скрость сканирования. Эти опции описаны ниже. + +Некоторые опции могут принимать параметр время. По умолчанию он задается в +миллисекундах, но вы можете добавить ‘s’, ‘m’ или ‘h’ к значению, чтобы задать его в секундах, минутах или часах. +Поэтому для опции аргументы 900000, +900s и 15m означают одно и то же. + + + + + + ; + (Регулирует размер групп для параллельного сканирования) + + + + +В Nmap есть возможность осуществлять сканирование портов или сканирование с целью определения версии нескольких +хостов параллельно. Это происходит путем разделения целевого IP пространства на группы, а затем сканирования одной +группы за раз. В общем случае целесообразно использовать большие группы. Недостатком является то, что вы не можете +узнать информацию о каком-либо хосте, пока не закончится сканирование всей группы. Таким образом, если Nmap начнет +сканирование группы из 50-ти хостов, то пользователь не будет получать никакой информации (кроме обновлений информации +предлагаемых в вербальном режиме), пока не будет завершено сканирование всех 50-ти хостов. + +По умолчанию Nmap использует компромиссный подход к решению этой проблемы. Сначала производится сканирование +небольших групп из 5-ти хостов, поэтому первые результаты приходят быстро, затем размер группы постепенно +увеличивается до максимального - 1024. Точные значения по умолчанию зависят от заданных опций. Для большей +эффективности Nmap использует группы больших размеров для UDP сканирования и для некоторых типов TCP сканирования +портов. + +Когда максимальный размер группы задан опцией , Nmap не будет его превышать. +Минимальный размер группы задается опцией , и Nmap будет пытаться поддерживать размер +групп больше этого уровня. Возможно Nmap придется использовать группы меньше заданных размеров, когда для выполнения +условия минимальности будет не хватать целевых хостов. Эти опции могут быть использованы для удержания размера +группы внутри некоторого диапазона, хотя это редко необходимо. + +Эти опции не имеют эффекта на фазе обнаружения хостов. Там используются обычное ping сканирование +(). При сканировании с целью обнаружения хостов всегда используются большие группы для увеличения +скорости и точности. + +Основной целью использования этих опций является задание большого минимума размера группы, с тем чтобы +сканирование проходило быстрее. При сканировании сети класса C обычным выбором является 256. При сканировании +большого количества портов, превышение этого числа вряд ли поможет. При сканировании лишь нескольких портов, +наилучшим размером группы будет 2048 или больше. + + + + + + + ; + (Регулирует распараллеливание запросов) + + + + + +Эти опции регулируют общее количество запросов для группы хостов. Опции испльзуются при сканировании портов и при +обнаружени хостов. По умолчанию Nmap высчитывает степень параллельности основываясь на производительности сети. Если +пакеты отбрасываются, то Nmap использует меньшее количество запросов. Количество запросов медленно увеличивается по +мере того, как сеть продолжает нормально работать. Эти опции устанавливают минимальную и максимальную границы для этой +переменной. По умолчанию параллелизм устанавливается в 1, если сеть работает плохо, и может достигать нескольких сотен +при идеальных условиях. + +Наиболее частым вариантом применения является установка опции в значение +большее единицы, чтобы увеличить скорость сканирования плохо работающих хостов и сетей. Это очень рискованная опция, +т.к. установка большого значения может повлиять на правильность результатов сканирования. Установка этого значения +также сокращает возможности Nmap по динамическому контролю параллелизма в зависимости от условий в сети. Значение +равное 10-ти является приемлимым, хотя я прибегаю к этой опции в последнюю очередь. + +Опция иногда устанавливается для предотвращения отправки хостам более одного +запроса за раз. Это может быть полезно в комбинации с опцией (описывается далее), хотя +она и сама справляется со своими обязанностями. + + + + + + + , + , + (Регулирует время ожидания ответа на запрос) + + + + + + +В Nmap есть значение промежутка времени, в течении которого будет ожидаться ответ на запрос, перед тем как +прекратить попытки или совершить еще одну. Этот промежуток вычисляется на основе времени, в течении которого были +получены ответы на предыдущие запросы. Если в сети есть значительная и непостоянная задержка, то этот промежуток может +возрасти до нескольких секунда. Он также устанавливается на безопасном (высоком) уровне и может таким и оставаться +некоторое время, если Nmap производит сканирование не отвечающих на запросы хостов . + + +Задание значений и ниже значений по +умолчанию может существенно сократить время сканирования. Это особенно заметно при различных вариантах сканирования +с заданной опцией , а также при сканировании сильно фильтруемых сетей. Однако не торопитесь +делать этого сразу. Сканирование займет много времени, если вы укажете такое низкое значение, при котором у большинства +запросов закончиться время ожидания ответа, и они будут ретранслированы, в то время как ответы на них будут в пути. + + +Если хосты находятся в локальной сети, то 100 миллисекунда будет приемлимым значением опции +. Если при этом производится отслеживание маршурта, то для начала пропингуйте хост +в сети с помощью утилиты ICMP ping или hping2 +hping2, +у которой больше шансов обойти брандмауэр. Выясните среднее максимальное значение для, примерно, 10-ти пакетов. +Удвойте это значение для передачи опции и умножьте на три или четыре для опции +. Обычно я не устанавливаю maximum RTT ниже 100 мс, не зависимо от результатов +пингования. А также не превышаю 1000 мс. + +Опция редко используется; она может быть полезна, в случае если сеть +настолько ненадежна, что даже значения Nmap по умолчанию слишком агрессивны. Так как Nmap просто сокращает время +ожидания до минимума, в случае если сеть кажется надежной, то нужды в этой опции нет, о ней дожно быть сообщено как +о баге на nmap-dev рассылку.nmap-dev mailing list + + + + + + + + + (Задает максимальное + количество повторных передач запроса) + + + + + +Когда Nmap не получает ответа на запрос сканирования порта, это может означать, что порт фильтруется. А возможно, +запрос или ответ просто затерялись в сети. Также возможно, что у цели есть ограничение на количество ответов, что +стало причиной временной блокировки запроса. В этом случае Nmap повторную передачу исходного запроса. Если для Nmap +сеть кажется ненадежной, то она может совершить очень много попыток, перед тем как бросить это дело. Хотя это и +придает достоверность результатам сканирования, это в то же время увеличивает время сканирования. Когда +производительность критична, время сканирования может быть сокращено путем введения ограничения на максимальное +количество повторных передач запроса. Вы даже можете задать , чтобы предотвратить +все повторные попытки, хотя это не рекомендуется. + +Значением по умолчанию (без шаблона) является 10 ретрансляций. Если сеть кажется надежной, и +целевые хосты не имеют ограничений на количество ответов, то Nmap обычно делают одну повторную попытку. Поэтому +установка в низкое значение (например, 3) никак не вличет на большинство типов +сканирования. Такие значения могут значительно увеличить скорость сканирования медленных (с ограничениями на +количество ответов) хостов. Обычно вы теряете некоторую информацию, когда Nmap рано прекращает сканировать порты, +поэтому лучше дать истечь времени , и потерять всю информацию о цели. + + + + + + + (Прекращает сканирование медленных целей) + + + + + +Некоторые хосты просто требуют длительного времени сканирования. Это может быть в силу +низкой производительности или ненадежности сетевого оборудования или программного обеспечения, ограничений на +количество пакетов или ограничивающих брандмауэров. Несколько процентов наиболее медленных хостов могут занять +большую часть времени сканирования. Иногда лучшим выходом является просто пропуск таких хостов. Передайте в качестве +аргумента опции максимальное значение промежутка времени, в течении которого вы +готовы ждать. Я часто задаю 30 мин, чтобы удостовериться в том, что Nmap не потратит +более получаса на единичный хост. Имейте ввиду, что в течении этого получаса Nmap может сканировать другие хосты, так +что это не просто потеря времени. Хост, чье время истекло, пропускается. Для этого хоста не выводится ни таблица портов, +ни информации об ОС. + + + + + + + ; + (Регулирует задержку между запросами) + + + + + +Эта опция вынуждает Nmap подождать по крайней мере заданное время между каждым запросом. Это особенно полезно в +случае наличия ограничения на количество ответов у целевых хостов. Машины Solaris (как и многие другие) обычно отвечают +на запросы при UDP сканировании только одним ICMP сообщением в секунду. Посылка большего количества запросов со +стороны Nmap будет впустую. Установка значения опции в +1 сек будет поддерживать в Nmap такую медленную интенсивность. Nmap пытается +определить ограничения на количество ответов у целевых хостов и подстроить задержку между запросами соответственно, +но ничто не мешает указать вам это значение явно, если вы точно знаете, что так будет лучше. + +Когда Nmap подстраивает задержку между запросами к обнаруженному ограничению, то скорость сканироания +значительно уменьшается. Опция позволяет задать наибольшую возможную задержку. +Установка здесь маленького значения может привести к бесполезной ретрансляции пакетов или возможному пропуску портов, +если у цели есть строгий лимит на количество ответов. + +Еще одним вариантом использования опции является обход пороговых систем обнаружения +и предотвращения вторжений (IDS/IPS).intrusion detection systemsevading + + + + + + + + + (Задает минимальную интенсивность сканирования) + + + + +Функции динамического управления различными опциями времени в Nmap хорошо справляются с задачей подборки +подходящей скорости сканирования. Тем не менее, иногда вы можете заранее узнать подходящую интенсивность сканирования +сети, или можете гарантировать, что сканирование закончится к определенному времени. Когда задается опция +, Nmap будет пытаться отсылать пакеты с той же или большей, чем задано, интенсивностью. +Аргументом этой опции является положительное число, отражающее интенсивность сканирования в пакетах в секунду. Например, +задание опции означает, что Nmap будет пыпыться отсылать пакеты с интенсивностью +300 пакетов в секунду или больше. Задание низкого значения не отнимает у Nmap права работать с большей интенсивностью, +если позволяют условия. + +Существуют два варианта, при которых реальная интенсивность работы будет меньше заданного минимума. Первый, когда +заданный минимум быстрее, чем наиболее быстрый возможный уровень работы Nmap, который зависит от аппаратного +обеспечения. В этом случае Nmap будет посылать пакеты так быстро, как может; но будьте осторожны, т.к. при быстрой +скорости возможны потери точности. Второй случай, когда у Nmap больше нечего отсылать, например, в конце сканирования, +когда последние запросы уже посланы, и Nmap ожидает ответы на них. Это нормально, когда интенсивность падает в +конце сканирования или при смене групп сканирования. + +Задание минимального уровня интенсивности должно производится с осторожностью. Сканирование быстрее, чем +возможно в данной сети, может привести к потери точности. В некоторых случаях, задание выского уровня интенсивности +может привести к тому, что сканирование займет больше времени, чем с более низким уровнем. Это +может произойти в случае, если адаптивные ретрансляционные adaptive retransmissionretransmissionretransmission +алгоритмы Nmap обнаружат перегрузку сети, вызванную высоким уровнем интенсивности сканирования, и увеличат количество +ретрансляций для повышения точности сканирования. Поэтому, даже хотя пакеты отсылаются с большой интенсивностью, +еще больше пакетов отсылается впустую. Установите максимальное количество ретрансляций с помощью опции +, если вы хотите ограничить общее время сканирования. + +Опция глобальна, она оказывает влияние на все сканирование, а не на отдельные хосты. +Учитывается только при сканировании с целью обнаружения хостов и сканировании портов. Другие функции, как например +определение ОС, имеют собственные особенности управления временем. + + + + + + + + (Задает максимальную интенсивность сканирования) + + + + +Дополнительно к опции есть опция , которая ограничивает +максимальную интенсивность сканирования заданным значением. Используйте , например, +чтобы ограничиться 100 пакетами в секунду в быстрой сети. Используйте для медленного +сканирования - один пакет в десять секунд. + + также как и глобальная опция, оказывающая влияние +на все сканирование. Учитывается только при сканировании с целью обнаружения хостов и сканировании портов. + +Иногда уровень интенсивности может превышать максимальное заданное значение для больры с непредвиденными +задержками, но в среднем он будет находится на максимальном уровне или ниже. Nmap будет работать с меньшей +интенсивностью, если того требуют условия. Чтобы удерживать интенсивность сканирования внутри определенного +промежутка, используйте опции и вместе. + + + + + + + + + +Многие хосты имеют давно использующие ограничения rate limiting +на количество ICMP сообщений об ошибке (как ошибки о недостижимости порта). Многие системы сейчас используют похожие +ограничения на количество пакетов RST (сброс), генерируемых ими. Это может сильно замедлить сканирование, т.к. Nmap +подстраивается под эти ограничения. Вы можете указать Nmap игнорировать такие ограничения (для сканирования портов типа +SYN, при котором не отвечающие порты не считаются открытыми) +путем задания опции . + +Использование этой опции может привести к потери точности сканирования, т.к. Nmap могла не подождать неоходимое +время ответа RST (на которые у целевой машины есть ограничения). При сканировании типа SYN не отвечающие порты +помечаются как фильтруемые, а не закрытые, как в +случае принятия ответа RST. Это опция полезна, только когда вам важны открытые порты, а различать +закрытые и фильтруемые порты нет необходимости. + + + + + + + + (Устанавливает шаблон настроек управления временем) + + timing templatesparanoid, sneaky, polite, normal, aggressive, and insane + + +paranoid timing template +sneaky timing template +polite timing template +normal timing template +aggressive timing template +insane timing template + + +Хотя описанные выше опции управления временем мощны и эффективны, многих людей они сбивают с толку. Более того, +выбор подходящих значений может иногда занимать больше времени, чем само сканирование. Поэтому Nmap предлагает более +легкий подход, заключайющийся в применении шести шаблонов настроек. Вы можете задавать их с помощью опции + и номера шаблона (0–5) или его имени. Имена шаблонов следующие: + (), + (), + (), + (), + () +и  (). +Первые два предназначены для обхода IDS. Вежливый (polite) режим снижает интенсивность сканирования с целью меньшего +потребления пропускной способности и машинных ресурсов. Обычнй (normal) режим устанавливается по умолчанию, поэтому +опция ничего не делает. Агрессивный (aggressive) режим повышает интенсивность сканирования, +предполагая, что вы используете довольно быструю и надежную сеть. Наконец, безумный (insane) режим +insane () timing template +предполагает, что вы используете чрезвычайно быструю сеть и готовы пожертвовать точностью ради скорости. + +Эти опции позволяет определять пользователям, насколько агрессивными они хотят быть, оставляя за Nmap право +выбирать подходящие значения опций управления временем. Также шаблоны позволяют производить некоторые незначительные +корректировки скорости, для которых пока нет отдельных опций. Например, aggressive () timing template +запрещает установку динамической задержки во время сканирования выше 10 мс для TCP порт, а - выше +5 мс. Шаблоны могут использоваться в комбинации с описанными выше опциями; в этом случает будут использоваться в +качестве значений аргументы этих опций, а не значения по умолчанию, заданные в шаблонах. Я рекомендую задавать + при сканировании довольно современных и надежных сетей. Задавайте эту опцию, даже если вы +используете описанные выше опции управления временем, и вы сможете получить выгоду от этих незначительных +оптимизаций, которые включаются этой опцией. + +Если у вас приличная широкополосная связь или ethernet соединение, то я бы порекомендовал вам всегда использовать +. Некоторым людям нравится , хотя она чересчур агрессивна на мой взгляд. Иногда +люди используют , потому что думают, что так у них мешьнше шансов пропустить какие-либо хосты или +потому, что считают себя вежливыми по жизни. Они часто не осознают, насколько опция polite () timing template +медленна. Время их сканирования может занять в десять раз больше обычного. Проблемы с хостами и пропускной +способностью редки при использовании опции (), поэтому я рекомендую ее для осторожного сканирования. +Отключение функции определения версии намного более эффективно для сокращения таких проблем, чем попытка настройки +всех опций управления временем. + +Хотя опции paranoid () timing templatesneaky () timing template +могут быть полезны для обхода IDS, они отнимут очень много времени при сканировании тысяч хостов или портов. Для +такого сканирования, предпочтительнее будет задать свои точные значения, чем полагаться на опции . + +При использовании опции в любой момент времени производится сканирование только одного порта, +и перед отправкой каждого запроса проходит пять минут. и практически одинаковы, +только между запросами проходит 15 секунд и 0.4 секунды соответственно. Опция является опцией +Nmap по умолчанию, она включает распараллеливание.normal () timing template + эквивалента опциям и устанавливает максимальную задержку при TCP сканировании 10 +миллисекунд. эквивалента опциям + и устанавливает максимальную задержку при TCP сканировании 5 миллисекунд. + + + + + + + + + + Обход Брандмауэров/IDS + firewallsbypassing + intrusion detection systemsevading + +Многие пионеры Интернета представляли его в своем воображении как открутую глобальную сеть с универсальным +пространством IP адресов, позволяющую создавать виртуальные соединения между любыми двумя точками. Это позволило бы +хостам общаться на равных, обмениваясь информацией между собой. Люди могли бы получить доступ к своим домашним +системам с работы, изменяя настройки климат-контроля или открывая двери ранним гостям. Этому видению глобальной +соединенности не суждено было сбыться по причинам нехватки адресного пространства и проблемам безопасности. В ранние +1990-е организации стали использовать брадмауэры с целью сокращения возможностей соединения. Огромные сети были +отрезаны от Интернета различными программными прокси, серверами преобразования имен и пакетными фильтрами. +Неограниченный поток информации сократился до строго регламентированных каналов связи и содержимому передающемуся по +ним. + +Сетевые барьеры, такие как брандмауэры, могут сделать процесс исследования сети чрезвычайно сложным. Никаких +послаблений не намечается, т.к. предотвращение инвентаризации сети часто является ключевой целью введения таких +устройств. Тем не менее, Nmap предоставляет множество функций для облегчения понимания структуры таких сложных сетей +и для проверки того факта, что сетевые фильтры работают как предполагалось. Поддерживаются даже механизмы обхода +плохо организованных вариантов защит. Один из лучших методов проверки вашей системы безопасности - это попытка ее +обойти. Поставьте себя на место атакующего и примените описанные ниже методы к вашей сети. Запустите FTP bounce +сканирование, idle сканирование, атаку с фрагментацией пакетов или попробуйте пробиться через один из ваших +прокси-серверов. + + +В дополнении к ограничению сетевой активности, компании все больше и больше используют мониторинг траффика с +помощью систем обнаружения вторжений (intrusion detection systems - IDS). Все эти системы используют правила, +составленные для обнаружения различного рода сканирований с помощью Nmap, т.к. сканирование часто оказывается +предвестником атак. Многие из этих систем недавно были преобразованы в системы +предотвращения вторжений (intrusion prevention systems - IPS), +intrusion prevention systems +intrusion detection systems +которые блокирую трафик, расцениваемый как злонамеренный. К сожалению для сетевых администраторов и продавцов IDS, +обнаружение вторжений с большой долей вероятности путем анализа паетов данных является сложной задачей. Атакующие с +помощью терпения, навыков и с помощью некоторых опций Nmap обычно могут незамеченными обойти системы IDS. Между тем, +администраторам приходится иметь дело с большим количеством ложных положительных результатов, когда такие системы +ошибаются и блокируют безвредную сетевую активность. + +Время от времени некоторые высказывают предположения, что Nmap не следует предоставлять фукнции для обхода IDS. +Они аргументируют свою позицию тем, что эти функции могут быть с равным успехом использованы атакующими, так же как они +используются администраторами для улучшения систем защиты. Проблема в таких рассуждениях заключается в том, что +такие методы будут по-прежнему использоваться атакующими, которые просто найдут другие утилиты или самостоятель +добавят такие функции в Nmap. Тем временем администраторам будет намного сложнее выполнять свою работу. Использование +только современных FTP серверов намного более мощное средство защиты, чем попытки предотвратить распространение +утилит позволяющих реализовать FTP bounce атаки. + + +Не существует такой магической опции, которая позволяла бы обнаруживать и обходить брандмауэры и IDS. Для этого +необходимы навыки и опыт. Подробное описание таких методов выходит за рамки данного справочного руководства, где +содержаться только важные опции с описанием их возможностей. + + + + + (фрагментировать пакеты); + (используя заданное значение MTU) + + + + + + При задании опции все типы сканирования (включая различные типы пингования) будут + использовать маленькие фрагментированные IP пакеты. Идея состоит в том, чтобы разбить TCP заголовок на + части и посылать их в различных пакетах для того, чтобы не дать определить пакетным фильтрам и системам + обнаружения вторжения, что вы делаете. Будьте осторожны с этой опцией! Некоторые программы имеют проблемы с + обработкой таких маленьких пакетов. Один старый сниффер Sniffit аварийно завершал работу после принятия + первого фрагмента. Задайте эту опцию один раз, и Nmap будет разбивать пакеты на части по 8 байт или меньше + после IP заголовка. Таким образовм, 20-ти байтный TCP заголовок будет разбит на 3 пакета. Два из них будут + содержать по 8 байт этого заголовка, а третий - последние 4. Конечно же, каждый фрагмент также имеет IP + заголовок. Задайте опцию снова, чтобы использовать фрагменты по 16 байт + (тем самым сократится число фрагментов). + giving twice + Или вы можете задать свой собственный размер фрагмента с помощью опции . Не используйте + опцию вместе с . Размер должен быть кратным 8. В то время как + фрагментированные пакеты не смогут пройти через пакетные фильтры и брандмауэры, которые ставят в очередь + все IP фрагменты, например, с помощью опции CONFIG_IP_ALWAYS_DEFRAGв ядре Linux, некоторые + сети не могут позволить себе связанное с этим падение производительности и поэтому не используют такую + возможность. Другие могут использовать ее, потому что фрагменты в таких сетях могут идти по разным маршрутам. + Некоторые системы фрагментируют исходящие пакеты прямо в ядре. Linux с включенным модулем отслеживания + соединения iptables iptables тому пример. + Произведите сканирование с включенным сниффером Wireshark + + Wireshark, + чтобы убедиться, что пакеты фрагментируются. Если в вашей ОС возникают проблемы, попробуйте задать опцию + + , чтобы обойти IP слой и отсылать сырые ethernet фрэймы. + + + + + + + (Маскировка сканирования с помощью фиктивных хостов) + + decoys + + + Производится сканирование с использованием фиктивных хостов; в этом случае цель сканирования считает, + что заданные вами фиктивные хосты также производят ее сканирование. Хотя IDS цели может сообщить о том, что + было произведено 5-10 сканирований портов с каждого IP адреса, система не сможет узнать, с какого из этих + IP адресов действительно производилось сканирование, а какие были лишь безвредными ловушками. Хотя этот тип + сканирования может быть распознан путем отслеживания маршрута, сбрасыванием ответа или другими активными + методами, в большинстве случае он является эффективным способом сокрытия вашего IP адреса. + + При задании фиктивных хостов, разделяйте их запятыми; вы также можете указать + ME + ME (decoy address) + как один из фиктивных хостов для задания позиции в списке вашего реального IP адреса. Если вы задаете + ME в шестой позиции или дальше, некоторые обычные системы обнаружения + сканирования портов (например, Solar Designer's + Solar Designer excellent Scanlogd) + Scanlogd + вряд ли вообще отобразят ваш IP адрес. Если вы не задаете флаг ME, Nmap + поставит его в произвольную позицию. Вы также можете использовать + RNDRND (decoy address) + для генерации произвольного, незарезервированного IP адреса, или + RND:чило для генерации определенного + числа адресов. + Имейте ввиду, что хосты, указанные вами в качестве фиктивных, должны работать, иначе вы просто + зафлудите целевые хосты с помощью запросов на подключение. Также легко будет определить, какой хост + действительно производит сканирование, если только он будет работать. Возможно вы захотите использовать IP + адреса вместо имен (в этом случае сети, в которых находятся фиктивные хосты, не видят вас в своих логах). + + + Фиктивные хосты используются и во время фазы обнаружения хостов (используя ICMP, SYN, ACK и что там + еще), и во время сканирования портов. Также они используются во время удаленного определения ОС + (). Эта техника не работает при сканировании с целью определения версии или с целью + обнаружения возможности установления TCP соединения. Во время сканирования задержки принудительно + устанавливаются между каждой группой обманных запросов. Т.к. ловушки посылаются одной группой сразу, то это + может временно нарушить работу системы контроля ограничений нагрузок. + + Использование большого количества фиктивных хостов может снизить скорость вашего сканирование и даже + сделать его менее точным. Также, некоторые ISP будут отфильтровывать ваши обманные пакеты, в то время как + некоторые вообще никак не ограничивают такого рода IP пакеты. + + + + + + (Изменить исходный адрес) + + spoofing source address + + + + В некоторых обстоятельствах Nmap может не определить ваш адрес (в этом случае Nmap сообщит вам об этом). + В этом случае используйте опцию , передав ей в качестве параметра IP адрес, чтобы указать + интерфейс, который вы хотите использовать для отправки пакетов. + + Также эта опция может быть использована для того, чтобы заставить "думать" цель сканирования, что ее + сканирует кто-то другой. Представьте компанию, которая частенько подвергается + сканированию портов со стороны конкурента! Как правило, в этом случае необходимо использовать также опции + и . Имейте ввиду, что вы не будете получать в ответ никаких пакетов + (они будут отправлены на указанный вами IP адрес), поэтому Nmap не будет выводить какой-либо полезной + информации. + + + + + + + (Использовать конкретный интерфейс) + + interface + + + + Указывает Nmap, какой интерфейс использовать для отправки и приема пакетов. Nmap в состоянии + определить его автоматически, но сообщит вам, если не сможет. + + + + + + + (Задать свой номер порта) + + + source port number + + + +Одной из удивительно часто встречаюшиься ошибок при конфигурировании системы безопасности является тенденция +доверять траффику основываясь только на номере исходного порта. Легко понять как это происходит. Администратор +устанавливает новенький брандмауэр, и его заваливают жалобы от неблагодарных пользователей, чьи приложения перестали +работать. В частности, может не работать DNS, т.к. UDP DNS ответы от внешних серверов больше не могут войти в сеть. Еще +одним распространенным примером ялвяется FTP. При активной FTP передаче, удаленный сервер пытается установить +соединение с клиентом, чтобы послать запрашиваемый файл. + +Существуют безопасные методы решения этих проблем, часто в виде прокси на уровне приложений или надстроек к +брандмауэрам. Но, к сожалению, существуют и более легкие, небезопасные методы. Принимая во внимание то, что DNS ответы +приходят с порта 53 а FTP с порта 20, многие администраторы поддаются искушению и просто разрешают весь входящий +трафик с этих портов. Они также часто полагают, что атакующие не заметят и не будут использовать такие дыры в +брандмауэрах. В других случаях, администраторы считают, что это всего лишь временные меры, до тех пор пока они не +придумают более безопасные способы решения проблем. Потом они забывают об этом. + +Перегруженные работой сетевые администраторы не единственные, кто попадается в такую ловушку. Многочисленные +продукты просто кишат такими небезопасными правилами. Даже Microsoft заслуживает порицания. Фильтры IPsec, которые +были установлены в Windows 2000 и Windows XP содержат внутренне правило, разрешающее весь TCP или UDP траффик с порта +88 (Kerberos). Еще один известный случай: версии брандмауэра Zone Alarm до 2.1.25 разрешали все входящие UDP пакеты с +порта 53 (DNS) или 67 (DHCP). + +Nmap предоставляет опции и (они эквиваленты) для того, чтобы +воспользоваться такими ошибками. Просто задайте номер порта, и Nmap будет использовать его для отправки пакетов. Nmap +должна использовать различные номера портов, чтобы точно определить ОС; также DNS запросы игнорируют опцию +, т.к. для их осуществления Nmap использует системные библиотеки. Большинство TCP +вариантов сканирований, включая SYN сканирование, полностью поддерживают эту опцию, как и UDP сканирование. + + + + + + + (Добавить произвольные данные к посылаемым + пакетам) + + + + В обычных условиях Nmap посылает минимальные пакеты, содержащие только заголовок. Так TCP пакеты + составляют 40 байтов, а запросы на ICMP эхо ответ всего 28. Эта опция указывет Nmap добавлять заданное число + произвольных байтов к посылаемым пакетам. Эта опция не влияет на пакеты, используемые для определения ОС + () + no effect in OS detection, + поскольку в этом случае необходимо тщательное соответствие запросов, но большинство пакетов, используемых для + различных видов пингования и сканирования портов поддерживают ее. Это немного замедляет сканирование, зато + делает его более незаметным. + + + + + + + (Посылать пакет с заданным ip + опциями) + + IP options + + + Протокол IP предоставляет + несколько опций, которые могут быть заданы в заголовке пакета. В отлиии от повсеместно используемых TCP опций, + опций IP редко видны из соображений практичности и безопасности. Фактически, большинство роутеров Интернета + блокируют наиболее опасные опации, как, например, отслеживание источника. И все же опции могут быть полезны для + определения и манипулирования сетевым маршрутом к целевым машинам. Например, возможно вы сможете воспользоваться + опцией для определния маршрута до цели, когда более традиционные методы в стиле tracerout будут бесполезны. Или + если ваши пакеты блокируются каким-либо брандмауэром, вы можете попробовать задать маршрут с менее строгим + сетевым экраном. + + Наиболее действенным способом задания IP опций является передача их значений в качестве аргументов опции + . Каждое шестнадцатиричное значение задается с помощью + \x, после которого следуют два цифры. Вы можете повторять символы, поставив + после них звездочку и указав количество повторений. Например, + \x01\x07\x04\x00*36\x01 это шестнадцатиричная строка, содержащая 36 NUL байтов. + + + Nmap также предоставляет механизм сокращений для задания таких опций. Просто передайте в качестве + аргумента букву R, T или + U для задания опции записи маршрута, + record route IP option записи временной метки + record timestamp IP option или обеих + соответственно. Ослабление или ужесточение отслеживания источника + source routing + может быть задано с помощью L или S, + затем пробела, а затем разделенный пробелами список IP адресов. + + Если вы хотите заданные опции в передаваемых и получаемых пакетах, задайте опцию + . Для большей информации и примеров использования IP опций с Nmap, смотрите + . + + + + + + + + (Установить IP поле time-to-live (время жизни) + + time to live (TTL) + + + + Устанавливает IPv4 поле time-to-live в посылаемых пакетах в соответствии с заданным значением. + + + + + + (Использовать произвольный порядок целей сканирования) + + randomization of hosts + + + + Указывает Nmap перемешать каждую группу, содержащую до 16384 хостов, перед началом сканирования. Это + может сделать сканирование менее заметным для различного рода систем сетевого мониторинга, особенно если вы + используете низкие значения таймингов. Если вы хотите перемешивать большие по размеру группы, то увеличьте + значение + PING_GROUP_SZ + PING_GROUP_SZ + в nmap.hnmap.h + и перекомпилируйте программу. Альтернативным решением является генерация списка целевых IP адресов + (), обработка его с помощью Perl скрипта и + затем передача его Nmap в качестве параметра опции + .randomizing hosts with + + + + + + + + (Задать собственный MAC адрес) + + spoofing MAC address + + + + Указывает Nmap использовать заданный MAC адрес + MAC address + для всех отсылаемых сырых ethernet фреймов. Эта опция подразумевает использование, + implied by + чтобы быть уверенным, что Nmap действительно использует пакеты уровня ethernet. MAC адрес может быть задан в + нескольких форматах. Если это просто число 0, то Nmap выбирает польностью + произвольный MAC адрес для сессии. Если задается строка в виде простого набора шестнадцатиричных цифр (можно + разделять пары двоеточиями), то Nmap будет использовать эту строку в качестве MAC адреса. Если задано менее 12-ти + шестнадцатиричных цифр, то Nmap заполняет остаток из 6 байтов произвольными значениями. Если в качестве аргумента + не передается ни 0, ни шестнадцатиричная строка, то Nmap просматривает + nmap-mac-prefixes в поисках названия производителя, содержащего данную строку + (нечувствительна к регистру). Если найдено совпадение, то Nmap использует OUI производителя (3-байтный префикс), + organizationally unique identifier (OUI)nmap-mac-prefixes + а оставшиеся 3 байта заполняет произвольно. Примеры аргументов опции : + Apple, 0, + 01:02:03:04:05:06, deadbeefcafe, + 0020F2 и Cisco. Эта опция оказывает влияние + только на сканирования с использованием сырых пакетов, такие как SYN сканирование или определение ОС, а также + не ориентированные на соединение функции, такие как определение версии или Nmap Scripting Engine (NSE). + + + + + + + (Посылать пакеты с фиктивными TCP/UDP контрольными суммами) + + TCP checksum + checksums + + + + + Указывает Nmap использовать неправильные TCP или UDP контрольные суммы для пакетов, отправляемых на + целевой хост. Т.к. практически все реализации стека IP просто не обрабатывают такие пакеты, то любые ответы + скорее всего приходят от брандмауэров или IDS, которые не обременяеют себя проверкой контрольной суммы. Более + детальное описание этой техники смотрите на + + + + + + + + + + + Вывод результатов + output formats + + Любая утилита безопасности полезна ровно настолько, насколько полезны выдаваемые ею результаты. Различные + сложные тесты и алгоритмы имеют мало пользы, если они не представлены в хорошо организованной и удобной для + понимания форме. Предоставляя разлиные способы вывода результатов Nmap используется людьми и программным + обеспечением, т.к. нет такого формата, который подходил бы всем. Поэтому Nmap предлагает несколько форматов, + включая интерактивный режим для чтения людьми и XML для удобного анализа программным обеспечением. + +В дополнении к предоставлению различных форматов вывода, Nmap предлагает опции для упрваления уровнем вербальности +выходных данных и отладочных сообщений. Результаты могут быть направлены на стандартный вывод или в файлы, причем Nmap +может как добавлять в конец файлов, так и создавать новые. Выходные файлы также могут быть использованы для +продолжения остановленного сканирования. + +Nmap предоставляет пять различных выходных форматов. Формат по умолчанию называется +интерактивный вывод,interactive output, результаты передаются на стандартный вывод (stdout).stdoutstandard output +Есть также +нормальный вывод,normal output, +который подобен интерактивному, за исключением того, что в процессе работы выводится меньше информации и предупреждений, +т.к. предполагатеся, что эти результаты будут анализироваться после завершения сканирования, а не интерактивно. + +XML выводXML output +это один из наиболее важных выходных форматов, т.к. он может быть конвертирован в HTML, лего анализируется программами +типа графического пользовательского интерфейса Nmap или может быть экспортирован в базу данных. + +Оставшимися двумя форматами являются +grepable форматgrepable output, +который содержит большую часть о целевом хосте в одной строке, и +sCRiPt KiDDi3 0utPUtscR1pT kIddI3 вывод +для пользователей, которые считают себя |<-r4d. + +В то время как интерактивный вывод устанавливается по умолчанию и не имеет связанных с ним опций командой строки, +опции остальных четырех форматов вывода имеют похожий синтаксис. В качестве аргумента они принимают имя файла, где +должны храниться результаты. Возможно испльзование нескольких форматов, но каждый из них должен быть задан только один +раз. Например, вы хотите сохранить результаты предоставляемые форматом нормального вывода для себя, и в то же время +сохранить в формате XML результаты того же сканирования для анализа программами. Вы можете сделать это с помощью опции +. Для краткости здесь используются простые имена типа + myscan.xml, но рекомендуется использовать более описательные имена. Каждый + выбирает имена по своему; я обычно использую длинные имена, содержащие дату сканирования и пару слов описания, и + помещаю эти файлы в директории с именем компании, которую я сканирую. + +Хотя с помощью этих опций информация сохраняется в файлы, Nmap по-прежнему выводит интерактивную информацию на +стандартный вывод. Например, с помощью опции nmap -oX myscan.xml target XML +сохраняется в файл myscan.xml, а стандартный вывод заполняется информацией, как +если бы опция вообще не была задана. Вы можете изменить это поведение передав в качестве +аргумента к одному из форматов вывода символ дефиса. Это деактивирует интерактивный вывод, а на стандартный вывод +будет пересылаться информация в заданном вами формате. Поэтому с помощью команды +nmap -oX - target на стандартный вывод будет пересылаться только XML.outputto stdout with - +Серьезный ошибки могут выводиться в стандартный поток ошибок, stderr.standard errorstderr + + +В отличии от некоторых аргументов Nmap, пробел между флагом формата файла (например, ) и +именем файла или дефисом здесь обязателен. Если вы опустите флаги и зададите аргументы типа или +, из-за функции обратной совместимости Nmap будут созданы файлы +нормального формата с именами G- и +Xscan.xml соответственно. + +Все эти аргументы поддерживают strftimestrftime conversions in the filename +перобразования в именах файлов. %H, %M, +%S, %m, %d, +%y и %Y это то же самое что и в +strftime. %T то же самое что и +%H%M%S, %R то же самое что и +%H%M и %D то же самое что и +%m%d%y. Знак %, после которого следует любой +символ просто даст этот символ (%% даст вам символ процента). Поэтому опция + будет использовать XML файл в формате +scan-144840-121307.xml. + +Nmap также предоставляет опции для управления вербальностью сканирования, а также для добавления в конец файлов +вместо их перезаписи. Все эти опции описаны ниже. + +Форматы вывода Nmap + + + (Нормальный вывод) + + normal output + + + Перенаправляет нормальный вывод в заданный файл. Как отмечалось выше, + немного отличается от интерактивного вывода. + + + + + + (XML вывод) + + XML output + + + + Перенаправляет XML вывод в заданный файл. Nmap включает определение + типа документа (DTD), что позволяет XML парсерам использовать XML вывод Nmap. Изначально это предназначалось + для программного использования, хотя это также позволяет людям интерпретировать XML вывод Nmap. DTD + определяет возможные элементы, а также перечисляет атрибуты и значения, которые они могут принимать. Последняя + версия всегда доступна на . + + XML предоставляет формат, который легко обрабатывается программным обеспечением. Бесплатные XML парсеры, + доступны для всех основных языков программирования, включая C/C++, Perl, Python и Java. Люди даже написали + привязки для большинства из этих языков для обработки выходных данных Nmap. + Примерами являются Nmap::Scanner + Nmap::Scanner + и Nmap::Parser + Nmap::Parser + на Perl CPAN. В большинстве случаев взаимодействия какого-либо приложения и Nmap, XML является + предпочитаемым форматом. + + XML вывод связывается с XSL таблицей стилей, которая используется для форматирования результатов как + HTML. Самым легким способом использования этой возможности является загрузка XML вывода в браузер типа + Firefox или IE. По умолчанию это будет работать только на машине, на которой установлена Nmap (или + настроенной аналогично) из-за жесткой привязки полного пути файла + nmap.xsl. Используйте опции или + для создания XML файлов отображаемых как HTML только на подключенной к + интернету машине. + + + + + + + (ScRipT KIdd|3 oUTpuT) + + scR1pT kIddI3 output + + + Script kiddie формат практически такой же как и интерактивный, за тем исключением, что после окончания + сканирования он перерабатывается, чтобы больше подходит l33t HaXXorZ, который смотрит свысока на Nmap из-за + постоянного использования заглавных букв и правовисания. Лишенные чувства юмора люди должны иметь ввиду, что эта + опция высмеивает script kiddies, перед тем как ругать меня за то, что я якобы помогаю им. + + + + + + (grepable вывод) + + grepable output + + + +Это формат обсуждается последним, т.к. он нежелетален для использования. Формат вывода XML намного мощенее, а +также особенно удобен для опытных пользователей. XML это стандарт, для которого доступны дюжины отличных парсеров, в +то время как grepable вывод всего лишь мое простое изобретение. XML достаточно гибок для поодержания новых функций Nmap +по мере их выхода, тогда как мне частенько приходится опускать некоторые возможности grepable вывода из-за недостатка +места. + +Тем не менее, этот формат вывода все еще довольно популярен. Это простой формат, который просто описывает +каждый хост в одну строку и может быть легко обработан стандартными Unix утилитами как grep, awk, cut, sed, diff и Perl. +Даже я иногда использую этот формат вывода. Поиск хостов, на которых открыт SSH порт или работает Solaris сводится +к простой передаче результатов утилите grep, а затем утилитам типа awk или cut для вывода желаемой информации. + +Grepable вывод состоит из комментариев (линий начинающихся с #)grepable outputcomments in и строк описывающих цели. Каждая строка включает +комбинацию из 6 помеченных полей, разделенных знаками табуляции и оканчивающихся двоеточием. +Поля следующие: Хост, Порты, +Протоколы, Ignored State, +ОС, Seq Index, +IP ID и Статус. + +Наиболее важным из этих полей обычно является Порты, где дается описание +каждого интересного порта. Это поле представляет собой разделенный запятыми список портов. Каждый элемент этого списка +описывает один интересный порт и состоит из семи подполей, разделенных знаком косой черты (/). Подполя следующие: +Номер порта, Состояние, Протокол, Владелец, Служба, SunRPC информация и Информация о версии. + +Как и в случае с XML выводом, это руководство не позволяет полностью описать формат. Более подробное описание +этого формата доступно с . +на . + + + + + + + (Использовать все форматы вывода) + + + + Для удобства вы можете задать опцию , + чтобы сохранить результаты сканирования в обычном, XML и grepable форматах сразу. Они будут содержаться + в файлах + базовове_имя_файла.nmap, + базовове_имя_файла.xml и + базовове_имя_файла.gnmap соответственно. Как + и с большинством программ вы можете предварять имя файла путем к директории, например, + ~/nmaplogs/foocorp/ для Unix или + c:\hacking\sco для Windows. + + + + + + Опции управления вербальностью и отладкой + + + (Увеличить уровень вербальности) + + verbosity + + + + Увеличение уровня вербальности влечет за собой вывод большего количества информации во время + сканирования. Когда Nmap предполагает, что сканирование займет больше нескольких минут, будет выводиться + приблизительное время завершения работы и открытые порты по мере их обнаружения. Задайте эту опцию дважды + или более для увеличения количества выводимой информации. + giving more than once + + + Большинство изменений касаются только интерактивного режима; некоторые также нормального и + script kiddie режимов. Остальные форматы вывода предназначены для обработки машинами, поэтому вся + необходимая информация выдается Nmap по умолчанию. Тем не менее существуют несколько изменений в других + режимах, когда размер выходной информации может быть существенно сокращен путем отбрасывания некоторых + деталей. Например, линия комментариев в grepable формате, предоставляющая список всех просканированных портов, + выводится только в вербальном режиме, т.к. список может быть довольно длинный. + + + + + + + (Увеличить или установить уровень отладки) + + debugging + + + + +Когда даже вербальный режим не предоставляет вам достаточную информацию, вы можете использовать отладку! Отладка +активируется опцией командной строки (), и уровень отладочной информации может быть увеличен путем +задания этой опции несколько раз.giving more than once +В качестве альтернативы, вы можете передать уровень отладки как аргумент опции . Например, опцией + устанавливается девятый уровень. Это наивысший уровень, который будет предоставлять тысячи +строк, до тех пор пока вы не запустите очень простое сканирование небольшого количества целей. + +Отладка полезна, если вы предполагаете, что в Nmap есть баг, или если вы просто озадачены тем, что делает Nmap и +почему. Т.к. эта функция по большому счету предназначена для разработчиков, то выходная информация не всегда понятна. +Вы можете получить что-то типа: Timeout +vals: srtt: -1 rttvar: -1 to: 1000000 delta 14987 ==> srtt: 14987 +rttvar: 14987 to: 100000. Если вы не понимаете, что это означает, вы можете проигнорировать эту +информацию, посмотреть в исходному коде или попросить помощи у разработчиков (nmap-dev).nmap-dev mailing list +Некоторые линии довольно понятны, но сообщения становятся более неясными с увеличением уровня отладки. + + + + + + + (Отслеживание принятых и переданных пакетов и данных) + + + + + Указывает Nmap выводить краткую информацию о каждом принятом и отправленном пакете. Обычно используется + для отладки, но также может быть полезна новичкам для понимания того, что же действительно делает Nmap. Чтобы + избежать вывода тысяч строк, вы можете ограничить количество портов для сканирования, например опцией + . Если вас интересует только то, что происходит при процессе определения версии, то + вместо этой опции используйте . + + + + + + (Показывать только открытые (или возможно открытые) порты) + + + + + + +Иногда вас интересуют только порты, к которым вы фактически можете подключиться +(а именно открытые), и вам не нужны результаты о +закрытых, фильтруемых и +закрытых|фильтруемых портах. Обработка выходной информации может быть легко +произведена с помощью таких утилит как +grep, awk и +Perl, но по многочисленным просьбам эта функция была добавлена в Nmap. +Задайте опцию , чтобы видеть информацию только об +открытых, открытых|фильтруемых и +не фильтруемых портах. Эти три типа портов расцениваются как обычно, что означает, +что открытые|фильтруемые и нефильтруемые порты +могут быть приняты во внимание, если их набралось большое количество. + + + + + + + + (Вывести список интерфейсов и роутеров) + + + Выводит список интерфейсов и системных роутеров, обнаруженных Nmap. Это полезно для отладки проблем с + роутерами и неправильного описания устройств (когда, например, Nmap рассматривает PPP соединение как ethernet). + + + + + (Записывать ошибки/предупреждения в выходной файл нормального режима) + + + + + Обычно предупреждения и ошибки выводятся Nmap только на экран (интерактивный вывод), и не сохраняются + в файлах нормального режима вывода (заданных опцией ). Если вы хотите записывать эти + сообщения в заданные вами файлы, то используйте эту. Это может быть полезно, если вы не просматриваете + интерактивный вывод или хотите сохранить все ошибки во время отладки какой-либо проблемы. Сообщения об + ошибках и предупреждениях по-прежнему будут выводится в интерактивном режиме. Это не будет работать для + большинства ошибок, вызванных неправильным заданием аргументов командой строки, т.к. Nmap может не успеть + проинициализировать выходные файлы этих команд. В дополнении ко всему, некоторые предупреждения и ошибки + Nmap используют другую систему, которая еще не поддерживает данную опцию. + + Альтернативой опции может служить перенаправление интерактивного вывода + (включая стандартный поток ошибок) в файл. Большинство командных оболочек Unix легко справится с этим, но + это может быть проблематично на Windows. + + + + + + + Различные опции вывода + + + + (Добавлять в конец, а не перезаписывать выходные файлы) + + + + + Когда вы передаете в качестве аргумента какому-либо флагу формата вывода (например, + или ) имя файла, то по умолчанию этот файл перезаписывается. Если вы + хотите оставить текущее содержание файла, а новые результаты добавлять в конец, используйте опцию + . В результате все указанные файлы вывода не будут перезаписываться, а + новое содержимое будем добавляться в конец. Существуют некоторые сложности с XML выводом + (), т.к. результирующий файл в этом случае обычно не сможет быть правильно + проанализирован программами, пока не вы подправите его вручную. + + + + + + (Продолжить прерванное сканирование) + + resuming scans + + + + + Некоторые всесторонние варианты сканирования Nmap могут занимать очень продолжительное время - порядка + нескольких дней. И они не всегда работают до завершения. Различные ограничения могут не позволить Nmap + сканировать в течении рабочих часов, сеть может перестать работать, машина, на которой запущена Nmap может + быть перезагружена, или сама Nmap может вылететь. Администратор, использующий Nmap, может отменить + сканирование по каким-то другим причинам, просто нажав ctrl-C. Запуск целого + сканирования с самого начала может быть нежелателен. К счастью, если были сохранены логи нормального + () или grepable формата (), пользователь может продолжить + сканирование с того места, на котором оно было остановлено. Просто задайте опцию + и передайте в качестве аргумента имя выходного файла обычного или grepable формата. + Никакие другие опции использовать не разрешается, т.к. Nmap будет продолжать сканирование с заданными ранее + опциями. Просто запустите Nmap командой + nmap --resumeимя_лог_файла. Nmap будет + добавлять новые результаты к выходным файлам, определенным при предыдущем запуске. Выходные файлы формата + XML не поддерживаются функцией возобновления работы, т.к. комбинирование результатов двух сканирований в один + правильный XML файл является сложной задачей. + + + + + + (Устанавливает XSL таблицу стилей для + преобразования XML вывода) + + + + + Nmap использует XSL + XSL + таблицу стилей + stylesheet + nmap.xsl + nmap.xsl + для просмотра или перевода XML вывода в HTML. + HTML from XML output + XML вывод включает директиву xml-stylesheet, + которая указывает на файл nmap.xml, + туда, где он был размещен Nmap при установке (или на текущую рабочую директорию в Windows). Просто + загрузите XML вывод Nmap в любой современный веб браузер, и он самостоятельно найдет файл + nmap.xsl для отображения результатов. Если вы хотите использовать + другой файл таблицы стилей, то передайте имя этого файла в качестве аргумента опции + . Вы должны использовать полный путь к файлу или URL. Один из примеров: + . Эта опция указывает браузеру загружать + последнюю версию таблицы стилей с Nmap.Org. Опция делает то же самое, но без + лишнего набора на клавиатуре и запоминания. Загрузка XSL с Nmap.Org облегчает просмотр результатов на машине, + на которой не установленна Nmap (и поэтому нет файла nmap.xsl). Поэтому + URL часто бывает более полезен, но локальный файл nmap.xsl используется + по умолчанию из соображений приватности. + + + + + + (Загружает таблицу стилей с Nmap.Org) + + + + + Эта опция является просто псевдонимом + . + + + + + + (Убрать объявление XSL таблицы стилей из XML) + + + + + Задайте эту опцию, чтобы не ассоциировать какую-либо XSL таблицу стилей с XML выводом. В этом случае + директива xml-stylesheet опускается. + + + + + + + + + + + Различные опции + В этой секции описываются некоторые важные (и не очень важные) опции, которые не подходят к другим + категориям. + + + + + (Включает IPv6 сканирование) + + IPv6 + + + + Начиная с 2002 года Nmap имеет поддержку протокола IPv6 для своих наиболее используемых функций. + В частности, пинг сканирование (только TCP), выявление возможности установки соединения и определение + версии имеют поддержку протокола IPv6. Синтаксис команд такой же как и обычный за исключением того, что + вы добавляете опцию . Конечно же, вы должны использовать синтаксис IPv6, если вы + указываете адрес, а не имя хоста. Адрес может выглядеть как + 3ffe:7501:4819:2000:210:f3ff:fe03:14d0, поэтому лучше использовать + имена хостов. Вывод выглядит так же как и обычный, только на линии интересных портов будет + IPv6 адрес. + + Хотя протокол IPv6 еще не завоевал весь мир, в некоторых (обычно Азиатских) странах он используется + интенсивно, и большинство современных операционных систем поддерживают его. Чтобы использовать Nmap с + протоколом IPv6, и источник и цель сканирования должны быть настроены на работу с ним. Если ваш ISP + (как большинство из них) не предоставляет вам IPv6 адрес, вы можете использовать широко распространенный + и работающий с Nmap сервис Tunnel Brokers. Я использую бесплатный сервис + IPv6 tunnel broker + на . Другие подобные сервисы + перечислены на Wikipedia. + + + + + + + (Опции агрессивного сканирования) + + + + + Этой опцией активируется набор агрессивных опций сканирования. Я еще не решил до конца, какие же + опции будут использоваться. Сейчас этот набор включает определение ОС (), + сканирование с целью определения версии (), сканирование с использованием скриптов + () и трассировку (). + features enabled by + Возможно в будущем будут добавлены другие функции. Целью является создание всестороннего набора опций + сканирования, чтобы людям не надо было запоминать большое количество флагов. Тем не менее, т.к. сканирование + с использованием скриптов с настройками по умолчанию расценивается как "назойливое", вам не следует + использовать опцию для сканирования целевых сетей без разрешения. Эта опция активирует + только возможности, но не устанавливает опции времени (timing) (такие как ) или опции + вербального вывода (), которые вы, возможно, хотели бы использовать. + + + + + + (Определяет место расположения файлов + Nmap) + + + + + Во время работы Nmap получает некоторые данные из файлов + nmap-service-probes, + nmap-services, + nmap-protocols, + nmap-rpc, + nmap-mac-prefixes и + nmap-os-db. Если место расположение какого-либо из этих файлов было + задано конкретно (используя опции или ), то оно + используется для этого файла. Далее Nmap ищет эти файлы в директории, заданной опцией + (если задана). Если файлы не были найдены там, то Nmap ищет их в директории, + определенной переменной окружения NMAPDIR NMAPDIR environment variable. + Далее идут + ~/.nmap.nmap directory + для реальных и действующих в данный момент UIDs (только POSIX системы) или расположение исполняемого файла + Nmpa (только Win32), и далее /usr/local/share/nmap или + /usr/share/nmap. В последнюю очередь Nmap будет искать эти файлы в + текущей директории. + + + + + + (Задает определенный файл служб) + + + + + Указывает Nmap использовать заданный файл служб вместо файла + nmap-services, который поставляется вместе с Nmap. Использование этой + опции также подразумевает использование опции быстрого сканирования (). Смотрите описание + для более подробной информации о файлах данных Nmap. + + + + + + + (Задает определенный файл запросов для служб) + + + + + Указывает Nmap использовать заданный файл запросов для служб вместо файла + nmap-service-probes, который поставляется вместе с Nmap. Смотрите описание + для более подробной информации о файлах данных Nmap. + + + + + + (Использовать сырой уровень ethernet) + + + + + Указывает Nmap посылать пакеты с использование более низкого сырого уровня ethernet, а не с + использованием более высокого уровня IP (сетевого). По умолчанию Nmap выбирает тот способ, который + больше подоходит для используемой платформы. Сырые сокеты (уровень IP) + raw sockets в общем случае более эффективны + для Unix машин, в то время как использование ethernet фреймов необходимо для операционных систем Windows, т.к. + Microsoft отключила в них поддержку сырых сокетов. Nmap по-прежнему использует сырые IP пакеты на Unix не + смотря на эту опцию, когда нет другого выбора (как в случае с не-ethernet соединениями). + + + + + + + (Использовать сырой уровень IP) + + + + + Указывает Nmap посылать пакеты с использование сырых IP сокетов, а не с использованием более низкого + уровня ethernet фреймов. Это дополнение к опции описанной выше. + + + + + + (Подразумевать, что у пользователя есть все привилегии) + + + + + Указывает Nmap, что у нее есть необходимые привилегии для использования сырых сокетов, + пакетного сниффинга и сходных операций, которые обычно требуют привилегий пользователя root на Unix системах. + privileged users + + authorized usersprivileged users По умолчанию Nmap завершает + работу, если были запрошены такие опреации, но geteuid не нуль. + Опцию хорошо использовать на системах с возможностями ядра Linux или подобных, + которые могут быть сконфигурированы так, что непривилегированные пользовтели смогут осуществлять сканирование + с использованием сырых сокетов. Удостоверьтесь, что эта опция указана перед любымими опциями требующими + привилегий (сканирование SYN, определение ОС и т.д.). Переменная окурежния + NMAP_PRIVILEGED + NMAP_PRIVILEGED environment variable + может быть установлена как равнозначная альтернатива опции . + + + + + + (Подразумевать, что у пользователя нет привилегий для использования сырых + сокетов) + + unprivileged users + + + + + Эта опция противоположна . Указывает Nmap, что у пользователя нет + привилегий для использования сырых сокетов и сниффинга. Полезна для тестирования, отладки или когда по + какой-то причине на вашей системе не работае механизм сырых сокетов. Переменная окружения + NMAP_UNPRIVILEGEDNMAP_UNPRIVILEGED environment variable + может быть установлена как равнозначная альтернатива опции . + + + + + + + + (Освободить память перед завершением работы) + + + + + Эта опция полезна только во время отладки утечки памяти. Заставляет Nmap освободить занянутю память + перед завершением работы, что облегчает задачу обнаружения действительной утечки памяти. В обычном режиме + работы Nmap пропускает этот шаг, так ОС делает это самостоятельно при закрытии процесса. + + + + + + + ; (Вывести номер версии) + + + + + Выводит номер версии Nmap и завершает работу. + + + + + + ; (Вывести страницу помощи) + + + + + Выводит небольшую страницу помощи с наиболее часто используемыми командами и опциями. Запуск Nmap без + аргументов приводит к такому же результату. + + + + + + + + Взаимодействие во время выполнения<indexterm significance="normal"><primary>runtime interaction</primary></indexterm> + + Во время работы Nmap, все нажатые клавиши фиксируются. Это позволяет вам взаимодействовать с программой + не прерывая и не перезапуская ее. С помощью некоторых клавиш можно изменить опции сканирования, при + использовании же других будут выведены сообщения о текущем статусе сканирования. Существует договоренность, что + строчные буквы увеличивают количество выводимой информации, а + прописные буквы уменьшают. Для справки можно нажать ‘?’. + + + + / + + + Увеличить / уменьшить уровень вербальности + + + + + / + + + Увеличить / уменьшить отладочный уровень + + + + + / + + + Включить / выключить отслеживание пакетов + + + + + + + + Вывести справку о взаимодействии во время выполнения + + + + + Что-либо другое + + + Выведет сообщение типа: + Stats: 0:00:08 elapsed; 111 hosts completed (5 up), + 5 undergoing Service Scan + Service scan Timing: About 28.00% done; ETC: 16:18 + (0:00:15 remaining) + + + + + + + Примеры + Здесь приведены несколько примеров использования Nmap, от самых простых до более изощренных. Некоторые + реально существующие IP адреса и доменные имена использованны для того, чтобы сделать примеры более конкретными. + На их место вы должны подставить адреса/имена из вашей собственной сети.. В то время как + сканирование портов некоторой сети не является незаконным, некоторым администраторам сетей может не понравиться + своевольное сканирование их сетей и они могут пожаловаться. Для начала постарайтесь получить разрешение. + + В целях тестирования у вас есть разрешение сканировать scanme.nmap.org. + Вы можете использовать сканирование с помощью Nmap, но не тестировать эксплоиты или производить атаки отказа в + обслуживании. Для того чтобы не перегружать канал, пожалуйста, не производите более дюжины сканирований этого + хоста в день. В случае злоупотребления этим свободным для сканирования хостом, он будет отключен и Nmap выдаст + Failed to resolve given hostname/IP: + scanme.nmap.org (не могу разрешить данное имя/IP: scanme.nmap.org). Все выше сказанное также + относится и к хостам scanme2.nmap.org, + scanme3.nmap.org, и так далее, несмотря на то, что эти хосты еще не + существуют. + + + example of + nmap -v scanme.nmap.org + + Этой командой будут просканированы все TCP порты машины + scanme.nmap.org . Опция + активирует вербальный режим. + + example of + example of + nmap -sS -O scanme.nmap.org/24 + + Этой командой будет произведено скрытное SYN сканирование всех 255 машин сети класса C, в + которой расположена машина Scanme. Также будет произведена попытка определения операционной системы на каждом + работающем хосте. Из-за SYN сканирования и опции определения ОС данная команда требует привилегий + суперпользователя (root). + + example of + nmap -sV -p 22,53,110,143,4564 + 198.116.0-255.1-127 + + + Запускает перебор хостов и TCP сканирование первой половины всех (из доступных 255) 8 битных подсетей + адресного пространства 198.116 класса B. Также проверяет запущены ли SSH, DNS, POP3 или IMAP с использованием их + стандартных портов, а также использует ли какое-нибудь приложение порт 4564. Если какой-нибудь из этих портов + открыт, то будет произведена попытка определения работающего с этим портом приложения. + + + example of + example of + nmap -v -iR 100000 -PN -p 80 + + + Указывает Nmap выбрать случайным образом 100,000 хостов и просканировать их на наличие запущенных на них + веб-серверов (порт 80). Перебор хостов отключен опцией , т.к. посылка пары предварительных + запросов с целью определения доступности хоста является нецелесообразной, когда вас интересует всего один порт на + каждом хосте. + + + example of + example of + nmap -PN -p80 -oX logs/pb-port80scan.xml -oG + logs/pb-port80scan.gnmap 216.163.128.20/20 + + Этой командой будут просканированы 4096 IP адресов (без предварительного пингования), а выходные данные + будут сохранены в фомате XML и формате, удобном для просмотра утилитой grep (grepable формат). + + + + + Ошибки + bugs, reporting + + Как и ее автор, Nmap не идеальна. Но вы можете сделать ее лучше посылая нам отчеты об ошибках или даже + написав патч. Если Nmap ведет себя не так, как вы ожидаете, то для начала обновитесь до последней версии с + . Если проблема останется, то выясните, не была ли эта проблема уже обнаружена кем-то. + Попробуйте поискать сообщения об ошибках на нашей странице поиска + или в Google. Также попробуйте просмотреть nmap-dev архивы на .nmap-dev mailing list + Также прочитайте полностью страницу руководства. Если ничего не помогло, отправьте сообщение об ошибке на + dev@nmap.org. Пожалуйста, включите всю известную вам информацию об ошибке, какую версию + Nmap вы используете, и на какой операционной системы вы запускаете Nmap. Сообщения о проблемах и вопросы по + использованию Nmap отправленные на dev@nmap.org имеют больше шансов на ответ, чем если бы + вы послали их непосредственно Fyodor'у. Если вы подпишитесь на рассылку nmap-dev перед отправкой сообщения, + то ваше сообщение будет обработано быстрее. Подпишитесь на рассылку на . + + Патчи для исправления ошибок даже лучше просто сообщений об ошибках. Базовые инструкции по созданию патчей + доступны по адресу . Созданные вами патчи можно отправить на + nmap-dev (рекомендуется) или непосредственно Fyodor'у. + + + + Автор + Fyodor + fyodor@nmap.org + () + + + На протяжении многих лет сотни людей внесли ценный вклад в разработку Nmap. Все изменения и улучшения + подробно описаны в файле + CHANGELOGchangelog, который распространяется вместе с Nmap, а также доступен на + . + + + + + Юридические уведомления + + + Unofficial Translation Disclaimer / Отречение неофициального перевода + + This is an unnofficial translation of the Nmap + license details into Russian. It was not written by Insecure.Com LLC, and does not legally state the + distribution terms for Nmap -- only the original English text does that. However, we hope that this translation + helps Russian speakers understand the Nmap license better. + + Это неофициальный перевод лицензии Nmap на + русский язык. Он не был осуществлен Insecure.Com LLC, и не определяет с юридической точки зрения условия + распространения Nmap -- это делает только оригинальный английский вариант. Тем не менее, мы надеемся, что этот + перевод поможет русскоязычным пользователям лучше понять лицензию Nmap. + + + + + Авторское право и лицензия Nmap + copyright + GNU General Public License + +Nmap Security Scanner (C) 1996-2008 Insecure.Com LLC. Nmap также является зарегистрированным товарным знаком +Insecure.Com LLC. Эта программа является свободным программным обеспечением; вы можете распространять и / или +модифицировать его в соответствии с условиями GNU General Public License, опубликованной Free Software Foundation; +Версия 2 с уточнениями и исключениями, описанными ниже. Лицензия гарантирует ваше право использовать, модифицировать и +распространять данное программное обеспечение на определенных условиях. Если вы хотите встроить Nmap технологии в +собственное программное обеспечение, мы продаем альтернативные лицензии (обращаться sales@insecure.com). +Десятки поставщиков программного обеспечения, уже имеют лицензии на использование Nmap технологий, таких, как +обнаружение хостов, сканирование портов, определение OS и определение версии. + + +Имейте ввиду, что GPL накладывает важные ограничения на производные приложения, хотя и не дает +четкого определения этого термина. Чтобы избежать недоразумений, мы считаем, что приложение является +производным, если в нем реализованы любые из следующих пунктов: + + +Используется исходный код Nmap +Используются авторские файлы данных Nmap, такие, как + nmap-os-db или + nmap-service-probes. +Запускается Nmap, и анализируются результаты работы (в противовес обычным командным оболочкам, которые +просто отображают необработанные выходные данные Nmap и поэтому не являются производными приложениями.) +Nmap интегрируется/включается/агрегируется в собственный исполняемый инсталлятор, как предоставляемые, +например, с помощью InstallShield. +Используется ссылка на библиотеку или запускается программа, в которой реализованы любые из +перечисленных пунктов. + + +В термин Nmap следует также включать любые части Nmap или производные от нее приложения. Это +список не является полным, мы просто хотим сделать ясным наше понимание производных приложений с помощью некоторых +общих примеров. Эти ограничения имеют силу, только когда вы действительно распростаняете Nmap. Например, ничего +не мешает вам написать и продавать свой собственный пользовательский интерфейс для Nmap. Распространяйте его +самостоятельно, а для скачивания Nmap направляйте людей на . + +Мы не считаем, что данные ограничения должны быть добавлены к лицензии GPL, мы просто приводим наше понимание +производных приложений по отношению к нашему продукту с GPL лицензией. Это похоже на то, как Линус +Торвальдс (Linus Torvalds) опубликовал свое понимание производных приложений применимо к модулям ядра +Linux. Наше трактовка относится только к Nmap, мы не говорим ни о каких других GPL продуктах. + +Если у вас есть какие-либо вопросы о GPL ограничениях по использованию Nmap в не-GPL продуктах, мы с радостью +вам поможем. Как уже упоминалось выше, мы предоставляем альтернативную лицензию для интегрирования Nmap в собственные +программные продукты. Эти контракты были проданы многим производителям программного обеспечения и обычно они включают: +бессрочную лицензию, предоставление приоритетной поддержки и обновлений, а также содействие спонсированию +продолжающейся разработки Nmap технологии. Для дальнейшей информации пишите на sales@insecure.com. + +В качестве исключения из GPL соглашений, Insecure.Com LLC предоставляет право связывать исходный код этой +программы с любой версией OpenSSL библиотеки, которая распространяется по лицензии приведенной в файле +COPYING.OpenSSL, а также распространять эту комбинацию.OpenSSLlinking exception +Вы должны удовлетворять условиям лицензии GNU GPL во всем, что касается кода не использующего OpenSSL. Если вы +модифицируете этот файл, вы можете расширить это исключение на вашу версию файла, но вы не обязаны это делать. + +Если вы получаете эти файлы в лицензионным соглашением или контрактом, где указаны отличные от этих условий, то +альтернативные условия лицензионного соглашения имеют преимущество над этими комментариями. + + + + Creative Commons License для этого справочного руководства Nmap + Справочно Руководство Nmap это (C) 2005-2008 Insecure.Com LLC. Оно распространяется + под лицензией Creative Commons + Attribution License версии 2.5. Это позволяет вам распространять и модифицировать его по вашему усмотрению, + до тех пор пока вы считаетесь с исходным источником. В качестве альтернативы вы можете считать, что этот документ + распространяется по той же лицензии, что и сама Nmap (описывается выше). + + + + Доступность исходного кода и общественные вклады + +Мы предоставляем исходный код, потому что верим, что пользователи должны иметь право знать, что именно программа +будет делать до того, как запустят ее. Это также позволяет вам проверять программное обеспечение на наличие дыр в +безопасности (пока не было найдено ни одной). + +Исходный код также позволяет вам портировать Nmap на новые платформы, исправлять баги и добавлять новые +возможности. Всячески поощряется посылка своих изменений на fyodor@nmap.org для возможного +их включения в основной дистрибутив. Отправляют эти изменения Fyodor'у или разработчикам на Insecure.Org, +пердполагается, что вы предоставляете Fyodor'у и Insecure.Com LLC безграничное, не эксклюзивное право на повторное +использование, модификацию и изменение лицензии кода. Nmap всегда будет доступна как +Open Source продукт,open source +это важно, т.к. невозможность изменения лицензии на кода уже повлекла за собой большие проблемы для других +Free Software проектов (как, например, KDE и NASM). Вы также порой позволяем третьим сторонам изменять лицензию, как +описывалось выше. Если вы хотите использовать собственные лицензионные условия для ваших изменений, сообщите об этом, +когда будете их отсылать. + + +Отсутствие гарантии<indexterm significance="normal"><primary>warranty (lack of)</primary></indexterm> + +Эта программа распространяется в надежде на то, что она будет полезна, но БЕЗ КАКИХ-ЛИБО ГАРАНТИЙ; даже без +какой-либо подразумеваемой ТОВАРНОЙ ПРИГОДНОСТИ или ПРИГОДНОСТИ ДЛЯ КАКОЙ-ЛИБО ОПРЕДЕЛЕННОЙ ЗАДАЧИ. Смотрите GNU +General Public License v2.0 для подробностей , или в файле +COPYING, который распространяется с Nmap. + +Также следует принять во внимание, что время от времени Nmap вызывает крах плохо написанных приложений, TCP/IP +стеков и даже операционных систем.crashing targets +Хотя такие случаи и чрезвычайно редки, не следует о них забывать. Nmap никогда не следует использовать для +сканирования критичных систем, пока вы не готовы мириться в временем простоя. Мы признаем, что Nmap может +вызвать крах ваших систем или сетей, и отрицаем всякую ответственность за проблемы или ущерб, нанесенные Nmap. + + +Несоответствующее использование +Из-за возможного риска краха и из-за того, что некоторые личности используют Nmap для предварительного +исследования систем перед их атакой, некоторые администраторы могут быть недовольны тем, что их система была +просканирована. Поэтому, перед тем как сканировать сеть, разумно получить на это разрешение. + +Nmap не следует устанавливать с особыми привилегиями (например, suid root) из соображений безопасности.setuid, why Nmap shouldn't be + + + +Стороннее программное обеспечение + +Этот продукт содержит программное обеспечение разработанное +Apache Software Foundation. Модифицированная версия библиотеки +Libpcap portable packet capture librarylibpcap +распространяется вместе с Nmap. Windows версия Nmap использует вместо Libpcap производную от нее библиотеку +WinPcap libraryWinPcap. +Поддержка регулярных выражений предоставляется библиотекой +PCRE library,Perl Compatible Regular Expressions (PCRE), +которая является программным обеспечением с открытым исходным кодом, написана Филипом Хазелом (Philip Hazel).Hazel, Philip +Некоторые функции по работе с сырыми сокетами используют сетевую библиотеку +Libdnetlibdnet, написанную Дагом Сонгом (Dug Song).Song, Dug +Модифицированная версия распространяется вместе с Nmap. Nmap может быть связана с +OpenSSL +cryptography toolkitOpenSSL +поддержки SSL определения версии. Скриптовый движок Nmap (Nmap Scripting Engine) использует встроенную версию +языка программирования Lua.Lua programming language +Все описанное здесь стороннее проограммное обеспечение бесплатно распространяется на основе лицензии в стиле BSD. + + + +Классификация по контролю экспорта Соединенных Штатов<indexterm significance="normal"><primary>export control</primary></indexterm> + +U.S. Export Control: Insecure.Com LLC указывает, что Nmap попадает под U.S. ECCN (число в классификации по +контролю экспорта) 5D992. Эта категория называется Программное обеспечение информационной безопасности не +контролируемое 5D002. Единственным ограничем в этой категории является AT (анти-терроризм), под который +попадают почти все товары, что запрещает экспорт в горстку не стран типа Ирана и Северной Кореи. Поэтому экспорт Nmap +не требует какой-либо специальной лицензии, разрешения или других санкций со стороны государства. + + + + + + +
\ No newline at end of file