Книга по Nmap на русском часть - 6

Книга по Nmap на русском часть - 6

@webware

t.me/webware

Оглавление

Часть 1

Преамбула

Сводка опций

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

Часть 2

Обнаружение хостов

Основы сканирования портов

Часть 3

Различные приемы сканирования портов

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

Часть 4

Обнаружение служб и их версий

Определение ОС

Часть 5

Скриптовый движок Nmap(NSE — Nmap Scripting Engine)

Опции управления временем и производительностью

Часть 6

Обход Брандмауэров/IDS

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

Обход Брандмауэров/IDS

Многие пионеры Интернета представляли его в своем воображении как открутую глобальную сеть с универсальным пространством IP адресов, позволяющую создавать виртуальные соединения между любыми двумя точками. Это позволило бы хостам общаться на равных, обмениваясь информацией между собой. Люди могли бы получить доступ к своим домашним системам с работы, изменяя настройки климат-контроля или открывая двери ранним гостям. Этому видению глобальной соединенности не суждено было сбыться по причинам нехватки адресного пространства и проблемам безопасности. В ранние 1990-е организации стали использовать брадмауэры с целью сокращения возможностей соединения. Огромные сети были отрезаны от Интернета различными программными прокси, серверами преобразования имен и пакетными фильтрами. Неограниченный поток информации сократился до строго регламентированных каналов связи и содержимому передающемуся по ним.

Сетевые барьеры, такие как брандмауэры, могут сделать процесс исследования сети чрезвычайно сложным. Никаких послаблений не намечается, т.к. предотвращение инвентаризации сети часто является ключевой целью введения таких устройств. Тем не менее, Nmap предоставляет множество функций для облегчения понимания структуры таких сложных сетей и для проверки того факта, что сетевые фильтры работают как предполагалось. Поддерживаются даже механизмы обхода плохо организованных вариантов защит. Один из лучших методов проверки вашей системы безопасности — это попытка ее обойти. Поставьте себя на место атакующего и примените описанные ниже методы к вашей сети. Запустите FTP bounce сканирование, idle сканирование, атаку с фрагментацией пакетов или попробуйте пробиться через один из ваших прокси-серверов.

В дополнении к ограничению сетевой активности, компании все больше и больше используют мониторинг траффика с помощью систем обнаружения вторжений (intrusion detection systems — IDS). Все эти системы используют правила, составленные для обнаружения различного рода сканирований с помощью Nmap, т.к. сканирование часто оказывается предвестником атак. Многие из этих систем недавно были преобразованы в системы предотвращения вторжений (intrusion prevention systems — IPS), которые блокирую трафик, расцениваемый как злонамеренный. К сожалению для сетевых администраторов и продавцов IDS, обнаружение вторжений с большой долей вероятности путем анализа паетов данных является сложной задачей. Атакующие с помощью терпения, навыков и с помощью некоторых опций Nmap обычно могут незамеченными обойти системы IDS. Между тем, администраторам приходится иметь дело с большим количеством ложных положительных результатов, когда такие системы ошибаются и блокируют безвредную сетевую активность.

Время от времени некоторые высказывают предположения, что Nmap не следует предоставлять фукнции для обхода IDS. Они аргументируют свою позицию тем, что эти функции могут быть с равным успехом использованы атакующими, так же как они используются администраторами для улучшения систем защиты. Проблема в таких рассуждениях заключается в том, что такие методы будут по-прежнему использоваться атакующими, которые просто найдут другие утилиты или самостоятель добавят такие функции в Nmap. Тем временем администраторам будет намного сложнее выполнять свою работу. Использование только современных FTP серверов намного более мощное средство защиты, чем попытки предотвратить распространение утилит позволяющих реализовать FTP bounce атаки.

Не существует такой магической опции, которая позволяла бы обнаруживать и обходить брандмауэры и IDS. Для этого необходимы навыки и опыт. Подробное описание таких методов выходит за рамки данного справочного руководства, где содержаться только важные опции с описанием их возможностей.

-f (фрагментировать пакеты); —mtu (используя заданное значение MTU)

При задании опции -f все типы сканирования (включая различные типы пингования) будут использовать маленькие фрагментированные IP пакеты. Идея состоит в том, чтобы разбить TCP заголовок на части и посылать их в различных пакетах для того, чтобы не дать определить пакетным фильтрам и системам обнаружения вторжения, что вы делаете. Будьте осторожны с этой опцией! Некоторые программы имеют проблемы с обработкой таких маленьких пакетов. Один старый сниффер Sniffit аварийно завершал работу после принятия первого фрагмента. Задайте эту опцию один раз, и Nmap будет разбивать пакеты на части по 8 байт или меньше после IP заголовка. Таким образовм, 20-ти байтный TCP заголовок будет разбит на 3 пакета. Два из них будут содержать по 8 байт этого заголовка, а третий — последние 4. Конечно же, каждый фрагмент также имеет IP заголовок. Задайте опцию -f снова, чтобы использовать фрагменты по 16 байт (тем самым сократится число фрагментов). Или вы можете задать свой собственный размер фрагмента с помощью опции —mtu. Не используйте опцию -f вместе с —mtu. Размер должен быть кратным 8. В то время как фрагментированные пакеты не смогут пройти через пакетные фильтры и брандмауэры, которые ставят в очередь все IP фрагменты, например, с помощью опции CONFIG_IP_ALWAYS_DEFRAGв ядре Linux, некоторые сети не могут позволить себе связанное с этим падение производительности и поэтому не используют такую возможность. Другие могут использовать ее, потому что фрагменты в таких сетях могут идти по разным маршрутам. Некоторые системы фрагментируют исходящие пакеты прямо в ядре. Linux с включенным модулем отслеживания соединения iptables тому пример. Произведите сканирование с включенным сниффером Wireshark , чтобы убедиться, что пакеты фрагментируются. Если в вашей ОС возникают проблемы, попробуйте задать опцию —send-eth, чтобы обойти IP слой и отсылать сырые ethernet фрэймы.

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

В некоторых обстоятельствах 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 <S|R [маршрут]|L [маршрут]|T|U … >; —ip-options <шестнадцатиричная строка> (Посылать пакет с заданным ip опциями)

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

Наиболее действенным способом задания IP опций является передача их значений в качестве аргументов опции —ip-options. Каждое шестнадцатиричное значение задается с помощью x, после которого следуют два цифры. Вы можете повторять символы, поставив после них звездочку и указав количество повторений. Например, x01x07x04x00*36×01 это шестнадцатиричная строка, содержащая 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 адрес, префикс или название производителя> (Задать собственный 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, которые не обременяеют себя проверкой контрольной суммы. Более детальное описание этой техники смотрите на http://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 определяет возможные элементы, а также перечисляет атрибуты и значения, которые они могут принимать. Последняя версия всегда доступна на http://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 выводом, это руководство не позволяет полностью описать формат. Более подробное описание этого формата доступно с http://nmap.org/book/output-formats-grepable-output.html.

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

Для удобства вы можете задать опцию -oA <базовове_имя_файла>, чтобы сохранить результаты сканирования в обычном, XML и grepable форматах сразу. Они будут содержаться в файлах <базовове_имя_файла>.nmap, <базовове_имя_файла>.xml и <базовове_имя_файла>.gnmap соответственно. Как и с большинством программ вы можете предварять имя файла путем к директории, например, ~/nmaplogs/foocorp/ для Unix или c:hackingsco для 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 http://nmap.org/data/nmap.xsl. Эта опция указывает браузеру загружать последнюю версию таблицы стилей с Nmap.Org. Опция —webxml делает то же самое, но без лишнего набора на клавиатуре и запоминания. Загрузка XSL с Nmap.Org облегчает просмотр результатов на машине, на которой не установленна Nmap (и поэтому нет файла nmap.xsl). Поэтому URL часто бывает более полезен, но локальный файл nmap.xsl используется по умолчанию из соображений приватности.

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

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

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

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

Источник codeby.net