-D <фиктивный_хост1>[,<фиктивный_хост2>][,ME][,...] (Маскировка сканирования с помощью фиктивных хостов)

Производится сканирование с использованием фиктивных хостов; в этом случае цель сканирования считает, что заданные вами фиктивные хосты также производят ее сканирование. Хотя IDS цели может сообщить о том, что было произведено 5-10 сканирований портов с каждого IP адреса, система не сможет узнать, с какого из этих IP адресов действительно производилось сканирование, а какие были лишь безвредными ловушками. Хотя этот тип сканирования может быть распознан путем отслеживания маршрута, сбрасыванием ответа или другими активными методами, в большинстве случае он является эффективным способом сокрытия вашего IP адреса.

При задании фиктивных хостов, разделяйте их запятыми; вы также можете указать ME как один из фиктивных хостов для задания позиции в списке вашего реального IP адреса. Если вы задаете ME в шестой позиции или дальше, некоторые обычные системы обнаружения сканирования портов (например, Solar Designer's excellent Scanlogd) вряд ли вообще отобразят ваш IP адрес. Если вы не задаете флаг ME, Nmap поставит его в произвольную позицию. Вы также можете использовать RND для генерации произвольного, незарезервированного IP адреса, или RND:<чило> для генерации определенного <числа> адресов.

Имейте ввиду, что хосты, указанные вами в качестве фиктивных, должны работать, иначе вы просто зафлудите целевые хосты с помощью запросов на подключение. Также легко будет определить, какой хост действительно производит сканирование, если только он будет работать. Возможно вы захотите использовать IP адреса вместо имен (в этом случае сети, в которых находятся фиктивные хосты, не видят вас в своих логах).

Фиктивные хосты используются и во время фазы обнаружения хостов (используя ICMP, SYN, ACK и что там еще), и во время сканирования портов. Также они используются во время удаленного определения ОС (-O). Эта техника не работает при сканировании с целью определения версии или с целью обнаружения возможности установления TCP соединения. Во время сканирования задержки принудительно устанавливаются между каждой группой обманных запросов. Т.к. ловушки посылаются одной группой сразу, то это может временно нарушить работу системы контроля ограничений нагрузок.

Использование большого количества фиктивных хостов может снизить скорость вашего сканирование и даже сделать его менее точным. Также, некоторые ISP будут отфильтровывать ваши обманные пакеты, в то время как некоторые вообще никак не ограничивают такого рода IP пакеты.

-S (Изменить исходный адрес)

В некоторых обстоятельствах Nmap может не определить ваш адрес (в этом случае Nmap сообщит вам об этом). В этом случае используйте опцию -S, передав ей в качестве параметра IP адрес, чтобы указать интерфейс, который вы хотите использовать для отправки пакетов.

Также эта опция может быть использована для того, чтобы заставить "думать" цель сканирования, что ее сканирует кто-то другой. Представьте компанию, которая частенько подвергается сканированию портов со стороны конкурента! Как правило, в этом случае необходимо использовать также опции -e и -PN. Имейте ввиду, что вы не будете получать в ответ никаких пакетов (они будут отправлены на указанный вами IP адрес), поэтому Nmap не будет выводить какой-либо полезной информации.

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

Указывает Nmap, какой интерфейс использовать для отправки и приема пакетов. Nmap в состоянии определить его автоматически, но сообщит вам, если не сможет.

--source-port <номер_порта>; -g <номер_порта> (Задать свой номер порта)

Одной из удивительно часто встречающихся ошибок при конфигурировании системы безопасности является тенденция доверять траффику, основываясь только на номере исходного порта. Легко понять как это происходит. Администратор устанавливает новенький брандмауэр, и его заваливают жалобы от неблагодарных пользователей, чьи приложения перестали работать. В частности, может не работать 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 предоставляет опции -g и --source-port (они эквиваленты) для того, чтобы воспользоваться такими ошибками. Просто задайте номер порта, и Nmap будет использовать его для отправки пакетов. Nmap должна использовать различные номера портов, чтобы точно определить ОС; также DNS запросы игнорируют опцию --source-port, т.к. для их осуществления Nmap использует системные библиотеки. Большинство TCP вариантов сканирований, включая SYN сканирование, полностью поддерживают эту опцию, как и UDP сканирование.

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

В обычных условиях Nmap посылает минимальные пакеты, содержащие только заголовок. Так TCP пакеты составляют 40 байтов, а запросы на ICMP эхо ответ всего 28. Эта опция указывает Nmap добавлять заданное число произвольных байтов к посылаемым пакетам. Эта опция не влияет на пакеты, используемые для определения ОС (-O) , поскольку в этом случае необходимо тщательное соответствие запросов, но большинство пакетов, используемых для различных видов пингования и сканирования портов поддерживают ее. Это немного замедляет сканирование, зато делает его более незаметным.

--ip-options ; --ip-options <шестнадцатиричная строка> (Посылать пакет с заданным ip опциями)

Протокол IP предоставляет несколько опций, которые могут быть заданы в заголовке пакета. В отличии от повсеместно используемых TCP опций, опций IP редко видны из соображений практичности и безопасности. Фактически, большинство роутеров Интернета блокируют наиболее опасные опции, как, например, отслеживание источника. И все же опции могут быть полезны для определения и манипулирования сетевым маршрутом к целевым машинам. Например, возможно вы сможете воспользоваться опцией для определения маршрута до цели, когда более традиционные методы в стиле tracerout будут бесполезны. Или если ваши пакеты блокируются каким-либо брандмауэром, вы можете попробовать задать маршрут с менее строгим сетевым экраном.

Наиболее действенным способом задания IP опций является передача их значений в качестве аргументов опции --ip-options. Каждое шестнадцатиричное значение задается с помощью \x, после которого следуют два цифры. Вы можете повторять символы, поставив после них звездочку и указав количество повторений. Например, \x01\x07\x04\x00*36\x01 это шестнадцатиричная строка, содержащая 36 NUL байтов.

Nmap также предоставляет механизм сокращений для задания таких опций. Просто передайте в качестве аргумента букву R, Tили U для задания опции записи маршрута, записи временной метки или обеих соответственно. Ослабление или ужесточение отслеживания источника может быть задано с помощью L или S, затем пробела, а затем разделенный пробелами список IP адресов.

Если вы хотите заданные опции в передаваемых и получаемых пакетах, задайте опцию --packet-trace. Для большей информации и примеров использования IP опций с Nmap, смотрите http://seclists.org/nmap-dev/2006/q3/0052.html.

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

Устанавливает IPv4 поле time-to-live в посылаемых пакетах в соответствии с заданным значением.

--randomize-hosts (Использовать произвольный порядок целей сканирования)

Указывает Nmap перемешать каждую группу, содержащую до 16384 хостов, перед началом сканирования. Это может сделать сканирование менее заметным для различного рода систем сетевого мониторинга, особенно если вы используете низкие значения таймингов. Если вы хотите перемешивать большие по размеру группы, то увеличьте значение PING_GROUP_SZ в nmap.hи перекомпилируйте программу. Альтернативным решением является генерация списка целевых IP адресов (-sL -n -oN <имя_файла>), обработка его с помощью Perl скрипта и затем передача его Nmap в качестве параметра опции -iL.

--spoof-mac (Задать собственный MAC адрес)

Указывает Nmap использовать заданный MAC адрес для всех отсылаемых сырых ethernet фреймов. Эта опция подразумевает использование, --send-eth чтобы быть уверенным, что Nmap действительно использует пакеты уровня ethernet. MAC адрес может быть задан в нескольких форматах. Если это просто число 0, то Nmap выбирает полностью произвольный MAC адрес для сессии. Если задается строка в виде простого набора шестнадцатиричных цифр (можно разделять пары двоеточиями), то Nmap будет использовать эту строку в качестве MAC адреса. Если задано менее 12-ти шестнадцатиричных цифр, то Nmap заполняет остаток из 6 байтов произвольными значениями. Если в качестве аргумента не передается ни 0, ни шестнадцатиричная строка, то Nmap просматривает nmap-mac-prefixes в поисках названия производителя, содержащего данную строку (нечувствительна к регистру). Если найдено совпадение, то Nmap использует OUI производителя (3-х байтный префикс), а оставшиеся 3 байта заполняет произвольно. Примеры аргументов опции --spoof-mac: Apple, 0, 01:02:03:04:05:06, deadbeefcafe, 0020F2 и Cisco. Эта опция оказывает влияние только на сканирования с использованием сырых пакетов, такие как SYN сканирование или определение ОС, а также не ориентированные на соединение функции, такие как определение версии или Nmap Scripting Engine (NSE).

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

Указывает Nmap использовать неправильные TCP или UDP контрольные суммы для пакетов, отправляемых на целевой хост. Т.к. практически все реализации стека IP просто не обрабатывают такие пакеты, то любые ответы скорее всего приходят от брандмауэров или IDS, которые не обременяют себя проверкой контрольной суммы. Более детальное описание этой техники смотрите на https://nmap.org/p60-12.html


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

Любая утилита безопасности полезна ровно настолько, насколько полезны выдаваемые ею результаты. Различные сложные тесты и алгоритмы имеют мало пользы, если они не представлены в хорошо организованной и удобной для понимания форме. Предоставляя различные способы вывода результатов Nmap используется людьми и программным обеспечением, т.к. нет такого формата, который подходил бы всем. Поэтому Nmap предлагает несколько форматов, включая интерактивный режим для чтения людьми и XML для удобного анализа программным обеспечением.

В дополнении к предоставлению различных форматов вывода, Nmap предлагает опции для управления уровнем вербальности выходных данных и отладочных сообщений. Результаты могут быть направлены на стандартный вывод или в файлы, причем Nmap может как добавлять в конец файлов, так и создавать новые. Выходные файлы также могут быть использованы для продолжения остановленного сканирования.

Nmap предоставляет пять различных выходных форматов. Формат по умолчанию называется интерактивный вывод,, результаты передаются на стандартный вывод (stdout). Есть также нормальный вывод,, который подобен интерактивному, за исключением того, что в процессе работы выводится меньше информации и предупреждений, т.к. предполагается, что эти результаты будут анализироваться после завершения сканирования, а не интерактивно.

XML вывод это один из наиболее важных выходных форматов, т.к. он может быть конвертирован в HTML, легко анализируется программами типа графического пользовательского интерфейса Nmap или может быть экспортирован в базу данных.

Оставшимися двумя форматами являются grepable формат, который содержит большую часть о целевом хосте в одной строке, иsCRiPt KiDDi3 0utPUt для пользователей, которые считают себя |<-r4d.

В то время как интерактивный вывод устанавливается по умолчанию и не имеет связанных с ним опций командой строки, опции остальных четырех форматов вывода имеют похожий синтаксис. В качестве аргумента они принимают имя файла, где должны храниться результаты. Возможно использование нескольких форматов, но каждый из них должен быть задан только один раз. Например, вы хотите сохранить результаты предоставляемые форматом нормального вывода для себя, и в то же время сохранить в формате XML результаты того же сканирования для анализа программами. Вы можете сделать это с помощью опции -oX myscan.xml -oN myscan.nmap. Для краткости здесь используются простые имена типа myscan.xml, но рекомендуется использовать более описательные имена. Каждый выбирает имена по своему; я обычно использую длинные имена, содержащие дату сканирования и пару слов описания, и помещаю эти файлы в директории с именем компании, которую я сканирую.

Хотя с помощью этих опций информация сохраняется в файлы, Nmap по-прежнему выводит интерактивную информацию на стандартный вывод. Например, с помощью опции nmap -oX myscan.xml target XML сохраняется в файл myscan.xml, а стандартный вывод заполняется информацией, как если бы опция -oX вообще не была задана. Вы можете изменить это поведение, передав в качестве аргумента к одному из форматов вывода символ дефиса. Это деактивирует интерактивный вывод, а на стандартный вывод будет пересылаться информация в заданном вами формате. Поэтому с помощью команды nmap -oX - target на стандартный вывод будет пересылаться только XML. Серьезный ошибки могут выводиться в стандартный поток ошибок, stderr.

В отличии от некоторых аргументов Nmap, пробел между флагом формата файла (например, -oX) и именем файла или дефисом здесь обязателен. Если вы опустите флаги и зададите аргументы типа -oG- или -oXscan.xml, из-за функции обратной совместимости Nmap будут созданы файлы нормального формата с именами G- и Xscan.xml соответственно.

Все эти аргументы поддерживают strftime преобразования в именах файлов. %H, %M, %S, %m, %d, %y и %Y это то же самое что и вstrftime. %T то же самое что и %H%M%S, %R то же самое что и %H%M и %D то же самое что и %m%d%y. Знак %, после которого следует любой символ просто даст этот символ (%% даст вам символ процента). Поэтому опция -oX 'scan-%T-%D.xml' будет использовать XML файл в формате scan-144840-121307.xml.

Nmap также предоставляет опции для управления вербальностью сканирования, а также для добавления в конец файлов вместо их перезаписи. Все эти опции описаны ниже.

Форматы вывода Nmap

-oN <имя_файла> (Нормальный вывод)

Перенаправляет нормальный вывод в заданный файл. Как отмечалось выше, немного отличается от интерактивного вывода.

-oX <имя_файла> (XML вывод)

Перенаправляет XML вывод в заданный файл. Nmap включает определение типа документа (DTD), что позволяет XML парсерам использовать XML вывод Nmap. Изначально это предназначалось для программного использования, хотя это также позволяет людям интерпретировать XML вывод Nmap. DTD определяет возможные элементы, а также перечисляет атрибуты и значения, которые они могут принимать. Последняя версия всегда доступна на https://nmap.org/data/nmap.dtd.

XML предоставляет формат, который легко обрабатывается программным обеспечением. Бесплатные XML парсеры, доступны для всех основных языков программирования, включая C/C++, Perl, Python и Java. Люди даже написали привязки для большинства из этих языков для обработки выходных данных Nmap. Примерами являются Nmap::Scanner и Nmap::Parser на Perl CPAN. В большинстве случаев взаимодействия какого-либо приложения и Nmap, XML является предпочитаемым форматом.

XML вывод связывается с XSL таблицей стилей, которая используется для форматирования результатов как HTML. Самым легким способом использования этой возможности является загрузка XML вывода в браузер типа Firefox или IE. По умолчанию это будет работать только на машине, на которой установлена Nmap (или настроенной аналогично) из-за жесткой привязки полного пути файла nmap.xsl. Используйте опции --webxml или --stylesheet для создания XML файлов отображаемых как HTML только на подключенной к интернету машине.

-oS <имя_файла> (ScRipT KIdd|3 oUTpuT)

Script kiddie формат практически такой же как и интерактивный, за тем исключением, что после окончания сканирования он перерабатывается, чтобы больше подходит l33t HaXXorZ, который смотрит свысока на Nmap из-за постоянного использования заглавных букв и правописания. Лишенные чувства юмора люди должны иметь ввиду, что эта опция высмеивает script kiddies, перед тем как ругать меня за то, что я якобы «помогаю им».

-oG <имя_файла> (grepable вывод)

Это формат обсуждается последним, т.к. он нежелателен для использования. Формат вывода XML намного мощенее, а также особенно удобен для опытных пользователей. XML это стандарт, для которого доступны дюжины отличных парсеров, в то время как grepable вывод всего лишь мое простое изобретение. XML достаточно гибок для поддержания новых функций Nmap по мере их выхода, тогда как мне частенько приходится опускать некоторые возможности grepable вывода из-за недостатка места.

Тем не менее, этот формат вывода все еще довольно популярен. Это простой формат, который просто описывает каждый хост в одну строку и может быть легко обработан стандартными Unix утилитами как grep, awk, cut, sed, diff и Perl. Даже я иногда использую этот формат вывода. Поиск хостов, на которых открыт SSH порт или работает Solaris сводится к простой передаче результатов утилите grep, а затем утилитам типа awk или cut для вывода желаемой информации.

Grepable вывод состоит из комментариев (линий начинающихся с #) и строк описывающих цели. Каждая строка включает комбинацию из 6 помеченных полей, разделенных знаками табуляции и оканчивающихся двоеточием. Поля следующие: Хост, Порты, Протоколы, Ignored State, ОС, Seq Index, IP ID и Статус.

Наиболее важным из этих полей обычно является Порты, где дается описание каждого интересного порта. Это поле представляет собой разделенный запятыми список портов. Каждый элемент этого списка описывает один интересный порт и состоит из семи подполей, разделенных знаком косой черты (/). Подполя следующие: Номер порта, Состояние, Протокол, Владелец, Служба, SunRPC информация и Информация о версии.

Как и в случае с XML выводом, это руководство не позволяет полностью описать формат. Более подробное описание этого формата доступно с https://nmap.org/book/output-formats-grepable-output.html.

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

Для удобства вы можете задать опцию -oA <базовове_имя_файла>, чтобы сохранить результаты сканирования в обычном, XML и grepable форматах сразу. Они будут содержаться в файлах <базовове_имя_файла>.nmap, <базовове_имя_файла>.xml и<базовове_имя_файла>.gnmap соответственно. Как и с большинством программ вы можете предварять имя файла путем к директории, например, ~/nmaplogs/foocorp/ для Unix или c:\hacking\sco для Windows.

Опции управления вербальностью и отладкой

-v (Увеличить уровень вербальности)

Увеличение уровня вербальности влечет за собой вывод большего количества информации во время сканирования. Когда Nmap предполагает, что сканирование займет больше нескольких минут, будет выводиться приблизительное время завершения работы и открытые порты по мере их обнаружения. Задайте эту опцию дважды или более для увеличения количества выводимой информации.

Большинство изменений касаются только интерактивного режима; некоторые также нормального и script kiddie режимов. Остальные форматы вывода предназначены для обработки машинами, поэтому вся необходимая информация выдается Nmap по умолчанию. Тем не менее существуют несколько изменений в других режимах, когда размер выходной информации может быть существенно сокращен путем отбрасывания некоторых деталей. Например, линия комментариев в grepable формате, предоставляющая список всех просканированных портов, выводится только в вербальном режиме, т.к. список может быть довольно длинный.

-d [уровень] (Увеличить или установить уровень отладки)

Когда даже вербальный режим не предоставляет вам достаточную информацию, вы можете использовать отладку! Отладка активируется опцией командной строки (-d), и уровень отладочной информации может быть увеличен путем задания этой опции несколько раз. В качестве альтернативы, вы можете передать уровень отладки как аргумент опции -d. Например, опцией-d9 устанавливается девятый уровень. Это наивысший уровень, который будет предоставлять тысячи строк, до тех пор пока вы не запустите очень простое сканирование небольшого количества целей.

Отладка полезна, если вы предполагаете, что в Nmap есть баг, или если вы просто озадачены тем, что делает Nmap и почему. Т.к. эта функция по большому счету предназначена для разработчиков, то выходная информация не всегда понятна. Вы можете получить что-то типа: Timeout vals: srtt: -1 rttvar: -1 to: 1000000 delta 14987 ==> srtt: 14987 rttvar: 14987 to: 100000. Если вы не понимаете, что это означает, вы можете проигнорировать эту информацию, посмотреть в исходному коде или попросить помощи у разработчиков (nmap-dev). Некоторые линии довольно понятны, но сообщения становятся более неясными с увеличением уровня отладки.

--packet-trace (Отслеживание принятых и переданных пакетов и данных)

Указывает Nmap выводить краткую информацию о каждом принятом и отправленном пакете. Обычно используется для отладки, но также может быть полезна новичкам для понимания того, что же действительно делает Nmap. Чтобы избежать вывода тысяч строк, вы можете ограничить количество портов для сканирования, например опцией -p20-30. Если вас интересует только то, что происходит при процессе определения версии, то вместо этой опции используйте --version-trace.

--open (Показывать только открытые (или возможно открытые) порты)

Иногда вас интересуют только порты, к которым вы фактически можете подключиться (а именно открытые), и вам не нужны результаты о закрытых, фильтруемых и закрытых|фильтруемых портах. Обработка выходной информации может быть легко произведена с помощью таких утилит как grep, awk и Perl, но по многочисленным просьбам эта функция была добавлена в Nmap. Задайте опцию --open, чтобы видеть информацию только об открытых, открытых|фильтруемых и не фильтруемых портах. Эти три типа портов расцениваются как обычно, что означает, что открытые|фильтруемые и нефильтруемые порты могут быть приняты во внимание, если их набралось большое количество.

--iflist (Вывести список интерфейсов и роутеров)

Выводит список интерфейсов и системных роутеров, обнаруженных Nmap. Это полезно для отладки проблем с роутерами и неправильного описания устройств (когда, например, Nmap рассматривает PPP соединение как ethernet).

--log-errors (Записывать ошибки/предупреждения в выходной файл нормального режима)

Обычно предупреждения и ошибки выводятся Nmap только на экран (интерактивный вывод), и не сохраняются в файлах нормального режима вывода (заданных опцией -oN). Если вы хотите записывать эти сообщения в заданные вами файлы, то используйте эту. Это может быть полезно, если вы не просматриваете интерактивный вывод или хотите сохранить все ошибки во время отладки какой-либо проблемы. Сообщения об ошибках и предупреждениях по-прежнему будут выводится в интерактивном режиме. Это не будет работать для большинства ошибок, вызванных неправильным заданием аргументов командой строки, т.к. Nmap может не успеть проинициализировать выходные файлы этих команд. В дополнении ко всему, некоторые предупреждения и ошибки Nmap используют другую систему, которая еще не поддерживает данную опцию.

Альтернативой опции --log-errors может служить перенаправление интерактивного вывода (включая стандартный поток ошибок) в файл. Большинство командных оболочек Unix легко справится с этим, но это может быть проблематично на Windows.

Различные опции вывода

--append-output (Добавлять в конец, а не перезаписывать выходные файлы)

Когда вы передаете в качестве аргумента какому-либо флагу формата вывода (например, -oX или -oN) имя файла, то по умолчанию этот файл перезаписывается. Если вы хотите оставить текущее содержание файла, а новые результаты добавлять в конец, используйте опцию --append-output. В результате все указанные файлы вывода не будут перезаписываться, а новое содержимое будем добавляться в конец. Существуют некоторые сложности с XML выводом (-oX), т.к. результирующий файл в этом случае обычно не сможет быть правильно проанализирован программами, пока не вы подправите его вручную.

--resume <имя_файла> (Продолжить прерванное сканирование)

Некоторые всесторонние варианты сканирования Nmap могут занимать очень продолжительное время - порядка нескольких дней. И они не всегда работают до завершения. Различные ограничения могут не позволить Nmap сканировать в течении рабочих часов, сеть может перестать работать, машина, на которой запущена Nmap может быть перезагружена, или сама Nmap может вылететь. Администратор, использующий Nmap, может отменить сканирование по каким-то другим причинам, просто нажав ctrl-C. Запуск целого сканирования с самого начала может быть нежелателен. К счастью, если были сохранены логи нормального (-oN) или grepable формата (-oG), пользователь может продолжить сканирование с того места, на котором оно было остановлено. Просто задайте опцию --resume и передайте в качестве аргумента имя выходного файла обычного или grepable формата. Никакие другие опции использовать не разрешается, т.к. Nmap будет продолжать сканирование с заданными ранее опциями. Просто запустите Nmap командой nmap --resume<имя_лог_файла>. Nmap будет добавлять новые результаты к выходным файлам, определенным при предыдущем запуске. Выходные файлы формата XML не поддерживаются функцией возобновления работы, т.к. комбинирование результатов двух сканирований в один правильный XML файл является сложной задачей.

--stylesheet <путь или URL> (Устанавливает XSL таблицу стилей для преобразования XML вывода)

Nmap использует XSL таблицу стилей nmap.xsl для просмотра или перевода XML вывода в HTML. XML вывод включает директиву xml-stylesheet, которая указывает на файл nmap.xml, туда, где он был размещен Nmap при установке (или на текущую рабочую директорию в Windows). Просто загрузите XML вывод Nmap в любой современный веб браузер, и он самостоятельно найдет файл nmap.xsl для отображения результатов. Если вы хотите использовать другой файл таблицы стилей, то передайте имя этого файла в качестве аргумента опции --stylesheet. Вы должны использовать полный путь к файлу или URL. Один из примеров: --stylesheet https://nmap.org/data/nmap.xsl. Эта опция указывает браузеру загружать последнюю версию таблицы стилей с Nmap.Org. Опция --webxml делает то же самое, но без лишнего набора на клавиатуре и запоминания. Загрузка XSL с Nmap.Org облегчает просмотр результатов на машине, на которой не установленна Nmap (и поэтому нет файла nmap.xsl). Поэтому URL часто бывает более полезен, но локальный файл nmap.xsl используется по умолчанию из соображений приватности.

--webxml (Загружает таблицу стилей с Nmap.Org)

Эта опция является просто псевдонимом --stylesheet https://nmap.org/data/nmap.xsl.

--no-stylesheet (Убрать объявление XSL таблицы стилей из XML)

Задайте эту опцию, чтобы не ассоциировать какую-либо XSL таблицу стилей с XML выводом. В этом случае директива xml-stylesheet опускается.


Различные опции

В этой секции описываются некоторые важные (и не очень важные) опции, которые не подходят к другим категориям.

-6 (Включает IPv6 сканирование)

Начиная с 2002 года Nmap имеет поддержку протокола IPv6 для своих наиболее используемых функций. В частности, пинг сканирование (только TCP), выявление возможности установки соединения и определение версии имеют поддержку протокола IPv6. Синтаксис команд такой же как и обычный за исключением того, что вы добавляете опцию -6. Конечно же, вы должны использовать синтаксис IPv6, если вы указываете адрес, а не имя хоста. Адрес может выглядеть как 3ffe:7501:4819:2000:210:f3ff:fe03:14d0, поэтому лучше использовать имена хостов. Вывод выглядит так же как и обычный, только на линии «интересных портов» будет IPv6 адрес.

Хотя протокол IPv6 еще не завоевал весь мир, в некоторых (обычно Азиатских) странах он используется интенсивно, и большинство современных операционных систем поддерживают его. Чтобы использовать Nmap с протоколом IPv6, и источник и цель сканирования должны быть настроены на работу с ним. Если ваш ISP (как большинство из них) не предоставляет вам IPv6 адрес, вы можете использовать широко распространенный и работающий с Nmap сервис Tunnel Brokers. Я использую бесплатный сервис на http://www.tunnelbroker.net. Другие подобные сервисы перечислены на Wikipedia.

-A (Опции агрессивного сканирования)

Этой опцией активируется набор агрессивных опций сканирования. Я еще не решил до конца, какие же опции будут использоваться. Сейчас этот набор включает определение ОС (-O), сканирование с целью определения версии (-sV), сканирование с использованием скриптов (-sC) и трассировку (--traceroute). Возможно в будущем будут добавлены другие функции. Целью является создание всестороннего набора опций сканирования, чтобы людям не надо было запоминать большое количество флагов. Тем не менее, т.к. сканирование с использованием скриптов с настройками по умолчанию расценивается как "назойливое", вам не следует использовать опцию -A для сканирования целевых сетей без разрешения. Эта опция активирует только возможности, но не устанавливает опции времени (timing) (такие как -T4) или опции вербального вывода (-v), которые вы, возможно, хотели бы использовать.

--datadir <имя_директории> (Определяет место расположения файлов Nmap)

Во время работы Nmap получает некоторые данные из файлов nmap-service-probes, nmap-services, nmap-protocols, nmap-rpc,nmap-mac-prefixes и nmap-os-db. Если место расположение какого-либо из этих файлов было задано конкретно (используя опции --servicedb или --versiondb), то оно используется для этого файла. Далее Nmap ищет эти файлы в директории, заданной опцией --datadir (если задана). Если файлы не были найдены там, то Nmap ищет их в директории, определенной переменной окружения NMAPDIR . Далее идут ~/.nmap для реальных и действующих в данный момент UIDs (только POSIX системы) или расположение исполняемого файла Nmpa (только Win32), и далее /usr/local/share/nmap или /usr/share/nmap. В последнюю очередь Nmap будет искать эти файлы в текущей директории.

--servicedb <файл_служб> (Задает определенный файл служб)

Указывает Nmap использовать заданный файл служб вместо файла nmap-services, который поставляется вместе с Nmap. Использование этой опции также подразумевает использование опции быстрого сканирования (-F). Смотрите описание --datadir для более подробной информации о файлах данных Nmap.

--versiondb <файл_запросов_служб> (Задает определенный файл запросов для служб)

Указывает Nmap использовать заданный файл запросов для служб вместо файла nmap-service-probes, который поставляется вместе с Nmap. Смотрите описание --datadir для более подробной информации о файлах данных Nmap.

--send-eth (Использовать сырой уровень ethernet)

Указывает Nmap посылать пакеты с использование более низкого сырого уровня ethernet, а не с использованием более высокого уровня IP (сетевого). По умолчанию Nmap выбирает тот способ, который больше подходит для используемой платформы. Сырые сокеты (уровень IP) в общем случае более эффективны для Unix машин, в то время как использование ethernet фреймов необходимо для операционных систем Windows, т.к. Microsoft отключила в них поддержку сырых сокетов. Nmap по-прежнему использует сырые IP пакеты на Unix не смотря на эту опцию, когда нет другого выбора (как в случае с не-ethernet соединениями).

--send-ip (Использовать сырой уровень IP)

Указывает Nmap посылать пакеты с использование сырых IP сокетов, а не с использованием более низкого уровня ethernet фреймов. Это дополнение к опции --send-eth описанной выше.

--privileged (Подразумевать, что у пользователя есть все привилегии)

Указывает Nmap, что у нее есть необходимые привилегии для использования сырых сокетов, пакетного сниффинга и сходных операций, которые обычно требуют привилегий пользователя root на Unix системах. По умолчанию Nmap завершает работу, если были запрошены такие операции, но geteuid не нуль. Опцию --privileged хорошо использовать на системах с возможностями ядра Linux или подобных, которые могут быть сконфигурированы так, что непривилегированные пользователи смогут осуществлять сканирование с использованием сырых сокетов. Удостоверьтесь, что эта опция указана перед любыми опциями требующими привилегий (сканирование SYN, определение ОС и т.д.). Переменная окурежния NMAP_PRIVILEGED может быть установлена как равнозначная альтернатива опции --privileged.

--unprivileged (Подразумевать, что у пользователя нет привилегий для использования сырых сокетов)

Эта опция противоположна --privileged. Указывает Nmap, что у пользователя нет привилегий для использования сырых сокетов и сниффинга. Полезна для тестирования, отладки или когда по какой-то причине на вашей системе не работает механизм сырых сокетов. Переменная окружения NMAP_UNPRIVILEGED может быть установлена как равнозначная альтернатива опции --unprivileged.

--release-memory (Освободить память перед завершением работы)

Эта опция полезна только во время отладки утечки памяти. Заставляет Nmap освободить занятую память перед завершением работы, что облегчает задачу обнаружения действительной утечки памяти. В обычном режиме работы Nmap пропускает этот шаг, так ОС делает это самостоятельно при закрытии процесса.

-V; --version (Вывести номер версии)

Выводит номер версии Nmap и завершает работу.

-h; --help (Вывести страницу помощи)

Выводит небольшую страницу помощи с наиболее часто используемыми командами и опциями. Запуск Nmap без аргументов приводит к такому же результату.


Взаимодействие во время выполнения

Во время работы Nmap, все нажатые клавиши фиксируются. Это позволяет вам взаимодействовать с программой не прерывая и не перезапуская ее. С помощью некоторых клавиш можно изменить опции сканирования, при использовании же других будут выведены сообщения о текущем статусе сканирования. Существует договоренность, что строчные буквы увеличивают количество выводимой информации, а прописные буквы уменьшают. Для справки можно нажать ‘?’.

v / V

Увеличить / уменьшить уровень вербальности

d / D

Увеличить / уменьшить отладочный уровень

p / P

Включить / выключить отслеживание пакетов

?

Вывести справку о взаимодействии во время выполнения

Что-либо другое

Выведет сообщение типа:

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, и так далее, несмотря на то, что эти хосты еще не существуют.

nmap -v scanme.nmap.org

Этой командой будут просканированы все TCP порты машины scanme.nmap.org . Опция -v активирует вербальный режим.

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

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

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. Если какой-нибудь из этих портов открыт, то будет произведена попытка определения работающего с этим портом приложения.

nmap -v -iR 100000 -PN -p 80

Указывает Nmap выбрать случайным образом 100,000 хостов и просканировать их на наличие запущенных на них веб-серверов (порт 80). Перебор хостов отключен опцией -PN, т.к. посылка пары предварительных запросов с целью определения доступности хоста является нецелесообразной, когда вас интересует всего один порт на каждом хосте.

nmap -PN -p80 -oX logs/pb-port80scan.xml -oG logs/pb-port80scan.gnmap 216.163.128.20/20

Этой командой будут просканированы 4096 IP адресов (без предварительного пингования), а выходные данные будут сохранены в фомате XML и формате, удобном для просмотра утилитой grep (grepable формат).


Ошибки

Как и ее автор, Nmap не идеальна. Но вы можете сделать ее лучше посылая нам отчеты об ошибках или даже написав патч. Если Nmap ведет себя не так, как вы ожидаете, то для начала обновитесь до последней версии с https://nmap.org. Если проблема останется, то выясните, не была ли эта проблема уже обнаружена кем-то. Попробуйте поискать сообщения об ошибках на нашей странице поиска http://insecure.org/search.html или в Google. Также попробуйте просмотреть nmap-dev архивы на http://seclists.org/.Также прочитайте полностью страницу руководства. Если ничего не помогло, отправьте сообщение об ошибке на . Пожалуйста, включите всю известную вам информацию об ошибке, какую версию Nmap вы используете, и на какой операционной системы вы запускаете Nmap. Сообщения о проблемах и вопросы по использованию Nmap отправленные на имеют больше шансов на ответ, чем если бы вы послали их непосредственно Fyodor'у. Если вы подпишитесь на рассылку nmap-dev перед отправкой сообщения, то ваше сообщение будет обработано быстрее. Подпишитесь на рассылку на https://nmap.org/mailman/listinfo/dev.

Патчи для исправления ошибок даже лучше просто сообщений об ошибках. Базовые инструкции по созданию патчей доступны по адресу https://nmap.org/data/HACKING. Созданные вами патчи можно отправить на nmap-dev (рекомендуется) или непосредственно Fyodor'у.


Автор

Fyodor (http://insecure.org)

На протяжении многих лет сотни людей внесли ценный вклад в разработку Nmap. Все изменения и улучшения подробно описаны в файле CHANGELOG, который распространяется вместе с Nmap, а также доступен на https://nmap.org/changelog.html.


Юридические уведомления

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

Nmap Security Scanner (C) 1996-2008 Insecure.Com LLC. Nmap также является зарегистрированным товарным знаком Insecure.Com LLC. Эта программа является свободным программным обеспечением; вы можете распространять и / или модифицировать его в соответствии с условиями GNU General Public License, опубликованной Free Software Foundation; Версия 2 с уточнениями и исключениями, описанными ниже. Лицензия гарантирует ваше право использовать, модифицировать и распространять данное программное обеспечение на определенных условиях. Если вы хотите встроить Nmap технологии в собственное программное обеспечение, мы продаем альтернативные лицензии (обращаться ). Десятки поставщиков программного обеспечения, уже имеют лицензии на использование Nmap технологий, таких, как обнаружение хостов, сканирование портов, определение OS и определение версии.

Имейте ввиду, что GPL накладывает важные ограничения на «производные приложения», хотя и не дает четкого определения этого термина. Чтобы избежать недоразумений, мы считаем, что приложение является «производным», если в нем реализованы любые из следующих пунктов:

Используется исходный код Nmap

Используются авторские файлы данных Nmap, такие, как nmap-os-db или nmap-service-probes.

Запускается Nmap, и анализируются результаты работы (в противовес обычным командным оболочкам, которые просто отображают необработанные выходные данные Nmap и поэтому не являются производными приложениями.)

Nmap интегрируется/включается/агрегируется в собственный исполняемый инсталлятор, как предоставляемые, например, с помощью InstallShield.

Используется ссылка на библиотеку или запускается программа, в которой реализованы любые из перечисленных пунктов.

В термин «Nmap» следует также включать любые части Nmap или производные от нее приложения. Это список не является полным, мы просто хотим сделать ясным наше понимание производных приложений с помощью некоторых общих примеров. Эти ограничения имеют силу, только когда вы действительно распространяете Nmap. Например, ничего не мешает вам написать и продавать свой собственный пользовательский интерфейс для Nmap. Распространяйте его самостоятельно, а для скачивания Nmap направляйте людей на https://nmap.org.

Мы не считаем, что данные ограничения должны быть добавлены к лицензии GPL, мы просто приводим наше понимание«производных приложений» по отношению к нашему продукту с GPL лицензией. Это похоже на то, как Линус Торвальдс (Linus Torvalds) опубликовал свое понимание «производных приложений» применимо к модулям ядра Linux. Наше трактовка относится только к Nmap, мы не говорим ни о каких других GPL продуктах.

Если у вас есть какие-либо вопросы о GPL ограничениях по использованию Nmap в не-GPL продуктах, мы с радостью вам поможем. Как уже упоминалось выше, мы предоставляем альтернативную лицензию для интегрирования Nmap в собственные программные продукты. Эти контракты были проданы многим производителям программного обеспечения и обычно они включают: бессрочную лицензию, предоставление приоритетной поддержки и обновлений, а также содействие спонсированию продолжающейся разработки Nmap технологии. Для дальнейшей информации пишите на .

В качестве исключения из GPL соглашений, Insecure.Com LLC предоставляет право связывать исходный код этой программы с любой версией OpenSSL библиотеки, которая распространяется по лицензии приведенной в файле COPYING.OpenSSL, а также распространять эту комбинацию. Вы должны удовлетворять условиям лицензии GNU GPL во всем, что касается кода не использующего OpenSSL. Если вы модифицируете этот файл, вы можете расширить это исключение на вашу версию файла, но вы не обязаны это делать.

Если вы получаете эти файлы в лицензионным соглашением или контрактом, где указаны отличные от этих условий, то альтернативные условия лицензионного соглашения имеют преимущество над этими комментариями.

Creative Commons License для этого справочного руководства Nmap

Справочно Руководство Nmap это (C) 2005-2008 Insecure.Com LLC. Оно распространяется под лицензией Creative Commons Attribution License версии 2.5. Это позволяет вам распространять и модифицировать его по вашему усмотрению, до тех пор пока вы считаетесь с исходным источником. В качестве альтернативы вы можете считать, что этот документ распространяется по той же лицензии, что и сама Nmap (описывается выше).

Доступность исходного кода и общественные вклады

Мы предоставляем исходный код, потому что верим, что пользователи должны иметь право знать, что именно программа будет делать до того, как запустят ее. Это также позволяет вам проверять программное обеспечение на наличие дыр в безопасности (пока не было найдено ни одной).

Исходный код также позволяет вам портировать Nmap на новые платформы, исправлять баги и добавлять новые возможности. Всячески поощряется посылка своих изменений на для возможного их включения в основной дистрибутив. Отправляют эти изменения Fyodor'у или разработчикам на Insecure.Org, предполагается, что вы предоставляете Fyodor'у и Insecure.Com LLC безграничное, не эксклюзивное право на повторное использование, модификацию и изменение лицензии кода. Nmap всегда будет доступна как Open Source продукт, это важно, т.к. невозможность изменения лицензии на кода уже повлекла за собой большие проблемы для других Free Software проектов (как, например, KDE и NASM). Вы также порой позволяем третьим сторонам изменять лицензию, как описывалось выше. Если вы хотите использовать собственные лицензионные условия для ваших изменений, сообщите об этом, когда будете их отсылать.

Отсутствие гарантии

Эта программа распространяется в надежде на то, что она будет полезна, но БЕЗ КАКИХ-ЛИБО ГАРАНТИЙ; даже без какой-либо подразумеваемой ТОВАРНОЙ ПРИГОДНОСТИ или ПРИГОДНОСТИ ДЛЯ КАКОЙ-ЛИБО ОПРЕДЕЛЕННОЙ ЗАДАЧИ. Смотрите GNU General Public License v2.0 для подробностей http://www.gnu.org/licenses/gpl-2.0.html, или в файле COPYING, который распространяется с Nmap.

Также следует принять во внимание, что время от времени Nmap вызывает крах плохо написанных приложений, TCP/IP стеков и даже операционных систем. Хотя такие случаи и чрезвычайно редки, не следует о них забывать. Nmap никогда не следует использовать для сканирования критичных систем, пока вы не готовы мириться в временем простоя. Мы признаем, что Nmap может вызвать крах ваших систем или сетей, и отрицаем всякую ответственность за проблемы или ущерб, нанесенные Nmap.

Несоответствующее использование

Из-за возможного риска краха и из-за того, что некоторые личности используют Nmap для предварительного исследования систем перед их атакой, некоторые администраторы могут быть недовольны тем, что их система была просканирована. Поэтому, перед тем как сканировать сеть, разумно получить на это разрешение.

Nmap не следует устанавливать с особыми привилегиями (например, suid root) из соображений безопасности.

Стороннее программное обеспечение

Этот продукт содержит программное обеспечение разработанное Apache Software Foundation. Модифицированная версия библиотеки Libpcap portable packet capture library распространяется вместе с Nmap. Windows версия Nmap использует вместо Libpcap производную от нее библиотеку WinPcap library. Поддержка регулярных выражений предоставляется библиотекой PCRE library,, которая является программным обеспечением с открытым исходным кодом, написана Филипом Хазелом (Philip Hazel).Некоторые функции по работе с сырыми сокетами используют сетевую библиотеку Libdnet, написанную Дагом Сонгом (Dug Song).Модифицированная версия распространяется вместе с Nmap. Nmap может быть связана с OpenSSL cryptography toolkit поддержки SSL определения версии. Скриптовый движок Nmap (Nmap Scripting Engine) использует встроенную версию языка программирования Lua. Все описанное здесь стороннее проограммное обеспечение бесплатно распространяется на основе лицензии в стиле BSD.

Классификация по контролю экспорта Соединенных Штатов

U.S. Export Control: Insecure.Com LLC указывает, что Nmap попадает под U.S. ECCN (число в классификации по контролю экспорта) 5D992. Эта категория называется «Программное обеспечение информационной безопасности не контролируемое 5D002». Единственным ограничем в этой категории является AT (анти-терроризм), под который попадают почти все товары, что запрещает экспорт в горстку не стран типа Ирана и Северной Кореи. Поэтому экспорт Nmap не требует какой-либо специальной лицензии, разрешения или других санкций со стороны государства.


Информация взята с сайта: https://nmap.org/man/ru/index.html


Загрузка...