Опции настройки и выбора дополнительных возможностей
Эти опции не обязательные (т.е. возможна нормальная работа Nmap и без их указания), однако все они являются весьма полезными.
-P0(Ping 0) - не производить ping-опрос хостов перед их непосредственным сканированием. Эта опция позволяет просканировать сети, блокирующие обработку ICMP-эха с помощью файрволлов. Примером такой сети является microsoft.com, и вы всегда должны использовать опцию '-P0'или'-PT80'(см. ниже), когда сканируете такую сеть.
-PT(Ping TCP) - использовать TCP "ping". Вместо посылки запроса ICMP-эха, Nmap отправляет TCP ACK-пакет на сканируемый хост и ожидаем ответ. Если хост активен, то в ответ должен придти RST-пакет. Для не-root пользователей используется функция connect(). Эта опция позволяет вам определить состояние сканируемого хоста, даже если обработка ICMP-эха запрещена файрволлом. Для указания номера порта сканируемого сервера, на который будет отправляться ACK-пакет, используется опция '-PT <номер_порта>'. По умолчанию используется 80-й порт, поскольку он практически никогда не фильтруется.
-PS(Ping SYN) - опция, также используемая для ping-опроса. При этом вместо ACK-пакета TCP "ping" используется SYN-пакет. Активные хосты посылают в ответ RST-пакеты (реже - SYN|ACK).
-PI(Ping ICMP) - эта опция использует в качестве ping-запроса нормальный ping-пакет (запрос ICMP-эха). Опция применяется для поиска активных хостов а также адресов сетей с возможностью широковещания. Такие сети пересылают прибывший ICMP-пакет всем своим объектам. Как правило, такие сети представляют собой "живую мишень" для хакера.
-PB(Ping Both) - режим ping-опроса по умолчанию. Использует одновременно запросы типа ACK и ICMP.
-O(Operating system detection) - эта опция позволяет определить операционную систему сканируемого хоста с помощью метода отпечатков стека TCP/IP. Другими словами, Nmap активизирует мощный алгоритм, функционирующий на основе анализа свойств сетевого программного обеспечения установленной на нем ОС. В результате сканирования получается формализованный "отпечаток", состоящий из стандартных тестовых запросов и "ответов" хоста на них. Затем полученный отпечаток сравнивается с имеющейся базой стандартных ответов известных ОС, хранящейся в файле nmap-os-fingerprinting, и на основании этого принимается решение о типе и версии ОС сканируемого хоста.
Этот метод требует наличия хотя бы одного закрытого и одного открытого порта на целевом хосте. Если вы обнаружите машину, у которой это условие выполняется, но Nmap не смог определить версию ОС - вышлите нам адрес этой машины. Если же, по каким-либо причинам выслать адрес не представляется возможным, запустите Nmap с опцией '-d' и вышлите полученный отпечаток.
-I(Ident scan) - использовать reverse-ident сканирование. Протокол Ident (RFC 1413) позволяет вскрыть имя пользователя (username) процесса, использующего TCP, даже если этот процесс не инициализировал соединение. Так, например, вы можете подключиться к порту http и затем использовать identd для поиска на сервере пользователя root. Это может быть сделано только при установлении "полного" TCP-соединения с портом сканируемой машины (т.е. необходимо использовать опцию '-sT'). Nmap опрашивает identd сканируемого хоста параллельно с каждым открытым портом. Естественно, этот метод не будет работать, если на целевом хосте не запущен identd.
-f(use fragmentation) - эта опция используется совместно с SYN, FIN, Xmas или NULL-сканировании и указывает на необходимость использования IP-фрагментации с малым размером фрагментов. Идея заключается в том, чтобы разбить TCP-заголовок пакета на несколько фрагментов (обычно два) на стороне источника. Сканируемый хост "собирает" эти IP-фрагменты в один TCP-пакет.
Это значительно усложняет фильтрацию пакетов, работу систем обнаружения и других подобных средств защиты, и позволяет Nmap скрыть свои действия. Будьте осторожны, используя эту опцию! Некоторые программы "зависают" при попытке собрать такие маленькие фрагменты. Так, например, весьма неплохой "сниффер" завис сразу же при получении первого 36-байтного фрагмента. А следом за ним пришел 24-байтный фрагмент.
-v(verbose output) - использовать режим "подробного отчета". Эту опцию рекомендуется использовать в любых случаях, поскольку при этом Nmap подробно сообщает о ходе выполнения текущей операции. Для получения лучшего эффекта можно указать ее дважды. Ну а если вы укажете еще опцию '-d', то от скроллинга экрана у вас может закружиться голова.
-h(show help) - печатает справку по использованию Nmap с указанием опций и краткого их описания, не запуская саму программу.
-oN <имя_файла>(output Normal) - записывает результаты сканирования в указанный файл в удобной для пользователя форме.
-oM <имя_файла>(output Machine) - записывает результат сканирования в указанный файл в машинном виде для дальнейшего анализа пакетов, пришедших от сканируемого хоста. Если вам необходимо использовать для записи интерфейс StdOut, укажите в качестве имени файла знак '-'. В этом случае сообщения об ошибках можно просмотреть с помощью функции StdErr.
-oS <имя_файла>(output Script kiddie) - Эту возможность мы предусмотрели для любителей языка s|<ipT kiDdi3.
--resume <имя_файла>- если вы прервали сканирование сети нажатием комбинации <Ctrl C>, то вы можете продолжить его, используя эту опцию, если результаты сканирования записывались в лог-файл с помощью опций '-oM' или '-oN'. В этом случае запустите Nmap с указанием этой опции и имени файла, в который производилась запись предыдущего сеанса. При этом никаких других опций указывать не нужно, поскольку при возобновлении сканирования будут использоваться опции, указанные в предыдущем сеансе. Nmap продолжит сканирование с адреса, следующего за последним "завершенным".
-iL <имя_файла>(input List) - считывает описание целевых хостов из текстового файла. Файл должен содержать список имен хостов или IP-адресов, разделенных пробелами, знаками табуляции или комбинацией <CR><LF> (каждый хост - с новой строки). Если вы хотите использовать StdIn в качестве источника информации о хостах, укажите вместо имени файла символ '-'. Более подробная информация о форматах выражений приведены в разделе "Способы задания целевого хоста".
-iR(input Random) - если вы укажете эту опцию, Nmap будет сканировать случайно выбранные им хосты, адреса которых получены с помощью генератора случайных величин. Этот процесс будет длиться, пока вы его не остановите. Функция может пригодиться для статистического исследования Internet.
-p <диапазон(ы)_портов>(ports) - эта опция указывает Nmap, какие порты необходимо просканировать. Например, '-p23' означает сканирование 23 порта на целевой машины. Если указано выражение типа '-p 20-30,139,60000-', Nmap будет сканировать порты с номерами с 20 по 30 включительно, 139 и от 60000 и выше (до 65535). По умолчанию Nmap сканирует все порты в диапазоне 1-1024, поскольку все они перечислены в файле services.
-F(Fast scan) - быстрое сканирование. Указывает Nmap на необходимость сканирования портов только тех служб, которые перечислены в файле services. Сканирование проходит гораздо быстрее, чем если бы Nmap сканировал все 65535 портов.
-D <ложный_хост1,[ложный_хост2],[,ME],...> (use Decoy hosts). - В этом режиме Nmap "создает" ложные хосты, адреса которых задаются произвольно и указываются в качестве аргументов. При этом на стороне сканируемого хоста создается видимость, что производится одновременное сканирование с различных хостов (обладающих разными IP-адресами), что очень затрудняет обнаружение вашего реального IP-адреса.
Адреса разделяются запятой. Вы также можете указать свой IP-адрес (аргумент 'ME') в качестве одного из хостов. Однако если вы поместили аргумент 'ME' на шестой позиции и выше, некоторые скан-детекторы (например Solar Designer's Excellent Scanlogd) покажут ваш IP-адрес как наиболее предполагаемый. Если вы явно не указали аргумент 'ME', Nmap поместит вас на случайную позицию. Также вы можете указать имена хостов вместо их IP-адресов. Заметим, что хосты, указанные вами в качестве ложных, должны реально существовать и функционировать, в противном случае вы можете "затопить" сканируемый хост SYN-пакетами. Это также может способствовать обнаружению вашего хоста, потому что если ложные хосты не функционируют, то единственным работающим хостом окажется ваш.
Стоит заметить, что некоторые скан-детекторы блокируют доступ хосту, осуществившему попытку сканирования. Поэтому ложный хост может потерять соединение со сканируемым хостом. Эта ситуация может возникнуть даже в том случае, если вы указали в качестве ложного хоста адрес шлюза или 'localhost'. Поэтому аккуратно используйте эту опцию.
Ложные хосты могут использоваться с любым методом сканирования, а также при определении операционной системы. Если вы указали много ложных хостов, это замедлит процесс сканирования и сделает его менее точным. Некоторые провайдеры могут отфильтровывать ваши пакеты (но еще больше их не отфильтруют), и в этом случае использование ложных хостов не даст вам ожидаемого результата.
-S <IP-адрес>(set Source) - Если Nmap не смог автоматически определить IP-адрес вашего хоста (о чем вы получили соответствующее сообщение), вам необходимо самостоятельно указать IP-адрес, используя его в качестве аргумента данной опции (т.е. адрес интерфейса, который вы хотите использовать). Другое применение данной опции - для создания видимости сканирования целевого хоста кем-то другим. В этом случае вы не сможете получить результат, однако на стороне сканируемого хоста создается видимость сканирования с указанного вами адреса. Для этого совместно с '-S'необходимо использовать опцию '-e'.
-e <интерфейс>(interface) - указывает Nmap, какой интерфейс будет использоваться для приема/передачи пакетов. Имя интерфейса указывается в качестве аргумента опции. Nmap обычно сам определяет интерфейс, однако выдаст вам соответствующее сообщение, если по каким-либо причинам он не смог этого сделать.
-g <номер_порта> - указывает номер порта на вашем компьютере, который будет использоваться Nmap для осуществления сканирования. Многие файрволлы и пакетные фильтры позволяют проходить пакетам DNS (порт 53) и FTP-DATA (порт 20) к защищаемому ими хосту и установить соединение. Этот момент является большой "дырой" в безопасности файрволлов, поэтому атакующему ничего не стоит отправлять нужные ему пакеты через 53-й или 20-й порт.
Для сканирования UDP-портов Nmap пробует сначала 53-й порт, а затем 20-й. Для TCP-портов - наоборот. Заметим, что это влияет на поле "порт источника" в запросе и поэтому не всегда работает. Например, вы не сможете определить характер изменения ISN, всвязи с чем Nmap самостоятельно сменит номер порта для этой цели, даже если вы используете опцию '-g'.
-r(randomize off) - для обеспечения скрытности очередной номер сканируемого хоста Nmap выбирает случайным образом. Эта опция указывает на то, что необходимо отключить случайный выбор портов и производить их последовательное сканирование.
--randomize_hosts - указывает Nmap на необходимость случайной перестановки каждой группы из 2048 хостов перед непосредственным их сканированием. Эта опция делает сканирование менее заметным для различных систем сетевого мониторинга, особенно если вы используете ее совместно с опцией настройки времени, устанавливающей более медленное сканирование.
-M <максимум_сокетов>(Max sockets) - устанавливает максимальное количество сокетов, используемых параллельно в методе TCP connect() сканирования. Установка меньшего значения немного замедляет процесс сканирования, но предотвращает "завал" сканируемого хоста. Для последней цели лучше всего использовать опцию '-sS', так как SYN-сканирование гораздо легче "переносится" операционными системами.