mirror of
https://github.com/nmap/nmap.git
synced 2025-12-07 21:21:31 +00:00
1020 lines
49 KiB
Groff
1020 lines
49 KiB
Groff
.\" This definition swiped from the gcc(1) man page
|
||
.de Sp
|
||
.if n .sp
|
||
.if t .sp 0.4
|
||
..
|
||
.TH NMAP 1
|
||
.SH НАЗВАНИЕ ПРОГРАММЫ
|
||
nmap \- the Network Mapper \- инструмент для сканирования и исследования безопасности Сети.
|
||
.SH ИСПОЛЬЗОВАНИЕ
|
||
.B nmap
|
||
[тип(ы) сканирования] [опции] <хост или сеть #1 ... [#N]>
|
||
.SH ОПИСАНИЕ
|
||
Nmap создан для системных администраторов и любопытных индивидуумов для
|
||
того, что бы сканировать сети с любым количеством объектов для
|
||
определения доступности хостов и идентификации сервисов, которые они
|
||
предоставляют.
|
||
.PP
|
||
Nmap поддерживает такие виды сканирования как: UDP, TCP connect(), TCP
|
||
SYN (полуоткрытое соединение), ftp proxy (bounce attack), ICMP (ping),
|
||
FIN, ACK, Xmas Tree, SYN, IP Protocol и NULL.
|
||
.PP
|
||
Смотрите секцию Типы Сканирования для более подробной информации.
|
||
.PP
|
||
Nmap также поддерживает ряд расширенных особенностей, - например
|
||
удалённое определение операционной системы методом снятия отпечатка
|
||
TCP/IP стека, стелс-сканирование, вычисление динамической задержки и
|
||
интервала повторной передачи, параллельное сканирование, определение
|
||
неактивных хостов методом параллельного ping-сканирования, сканирование с
|
||
использованием ложных хостов, обнаружение систем фильтрации трафика (port
|
||
filtering detection), прямое (без использования portmapper) RPC-сканирование, IP-фрагментацию при сканировании, а также произвольное
|
||
указание сканируемых адресов и портов.
|
||
.PP
|
||
Много работы проводилось над адаптацией nmap для пользователей без прав
|
||
root. К сожалению, много критических ядерных интерфейсов (как, например
|
||
raw-сокеты) требуют root-привилегий, так что старайтесь запускать nmap
|
||
именно с этими правами (не setuid root, конечно).
|
||
.PP
|
||
Результатом работы nmap обычно является список отсканированных портов на
|
||
удаленной машине(ах) с указанием номера и состояния порта, типа
|
||
используемого протокола, а также названия службы, закрепленной за этим
|
||
портом. Порт характеризируется возможными состояниями: "открыт"(open),
|
||
"закрыт"(closed), "фильтруемый"(filtered) и "нефильтруемый"(unfiltered).
|
||
Состояние порта "open" означает, что на удалённой машине за этим портом
|
||
закреплён определённый сервис и он может принять соединение на этот порт.
|
||
Состояние порта "close" означает, что соединения на этот порт невозможны.
|
||
Состояние порта "filtered" означает, что фаервол, пакетный фильтр или
|
||
любая другая помеха мешает определить состояние порта. Состояние порта
|
||
"unfiltered" - означает что порт закрыт и система защиты не мешает это
|
||
определить. Такое состояние отображается если большинство портов
|
||
сканируемой машины находится в состоянии filtered. В некоторых случаях
|
||
nmap не может точно определить разницу между состояниями порта filtered,
|
||
open или closed. Например, порт который не отвечает на FIN-сканирование
|
||
может находиться в состоянии как open так и filtered. В подобных случаях
|
||
nmap отображает такие порты как "open|filtered" или "closed|filtered".
|
||
.PP
|
||
В зависимости от указанных опций, nmap также может определить следующие
|
||
характеристики сканируемого хоста: тип ОС, метод генерации TCP ISN, имя
|
||
пользователя (username) владельца процесса, зарезервировавшего
|
||
сканируемый порт, символьные имена, соответствующие сканируемым IP-адресам и т.п.
|
||
.SH ОПЦИИ
|
||
Большинство опций могут комбинироваться друг с другом. Одни опции
|
||
предназначены для выбора определенного метода сканирования, другие
|
||
указывают на использование дополнительных возможностей или служат для
|
||
настройки различных параметров сканирования. Nmap предупреждает
|
||
пользователя о недопустимом сочетании указанных им опций.
|
||
.Sp
|
||
Если вы немедленно хотите начать работу с nmap, можете пропустить этот
|
||
раздел и перейти к изучению примеров вызова nmap в конце данного
|
||
руководства. Вы можете также запустить программу nmap с ключом '
|
||
.B -h'
|
||
для получения краткой справки по всем опциям.
|
||
.TP
|
||
.B ТИПЫ СКАНИРОВАНИЯ
|
||
.TP
|
||
.B \-sS
|
||
Сканирование методом SYN. Этот метод называется "полуоткрытое"
|
||
сканирование, поскольку полное TCP-соединение с портом сканируемой
|
||
машины не устанавливается. Nmap посылает SYN-пакет, как бы
|
||
намереваясь открыть настоящее соединение, и ожидает ответ. Флаги
|
||
SYN|ACK в ответе указывают на то, что порт удаленной машины
|
||
открыт. Флаг RST указывает на то, что порт удалённой машины
|
||
закрыт. Если nmap принял пакет SYN|ACK, то в ответ немедленно
|
||
отправляется (операционной системой) RST-пакет для сброса еще не
|
||
установленного соединения. Очень немного сайтов способны
|
||
обнаружить такое сканирование, однако хорошо настроенный фаервол
|
||
на это способен. Пользователь должен иметь root-привилегии
|
||
для формирования поддельного SYN-пакета. Этот тип сканирования
|
||
является применимым по-умолчанию для привилегированных
|
||
пользователей.
|
||
.TP
|
||
.B \-sT
|
||
Сканирование методом TCP connect(). Наиболее простой метод
|
||
сканирования TCP-портов. Системный вызов connect(), присутствующий
|
||
в любой ОС, позволяет создать соединение с любым портом удаленной
|
||
машины. Соединение происходит методом стандартного "tcp-рукопожатия", - сканирующая машина отправляет на сканируемую
|
||
пакет с флагом SYN, если в ответ приходит пакет с флагом RST - то
|
||
порт закрыт, если SYN|ACK, то сканирующая отправляет ACK и тогда
|
||
соединение установлено). Если порт открыт и прослушивается
|
||
сканируемой машиной, то результат выполнения connect() будет
|
||
успешным (т.е. соединение будет установлено), в противном случае
|
||
указанный порт является закрытым или доступ к нему блокируется.
|
||
Единственным преимуществом данного метода является то, что его
|
||
можно использовать без root-привилегий.
|
||
.Sp
|
||
Этот метод сканирования легко обнаружим, поскольку в log-файле на
|
||
сканируемой машине сохранятся записи о многочисленных попытках
|
||
соединения и об ошибках выполнения данной операции службами, к
|
||
которым производилось подключение, а затем мгновенное завершение
|
||
соединения. Этот тип сканирования является применимым по-умолчанию
|
||
для непривилегированных пользователей.
|
||
.TP
|
||
.B \-sF \-sX \-sN
|
||
Сканирование методом stealth-FIN, Xmas Tree или NULL. Эти методы
|
||
используются в случае, если SYN-сканирование по каким-либо
|
||
причинам не дало ожидаемого результата. Некоторые фаерволы и
|
||
пакетные фильтры ожидают SYN-пакеты на защищаемые ими порты, и
|
||
программы типа Synlogger или Courtney способны отследить SYN-сканирование. Вышеуказанные типы сканирования могут быть не
|
||
замечены системами защиты.
|
||
.Sp
|
||
FIN-сканировании в качестве запроса используется FIN-пакет. В Xmas
|
||
Tree используется пакет с набором флагов FIN|URG|PSH, а NULL-сканирование использует пакет без флагов. Согласно RFC 793
|
||
стр.64, закрытый порт должен ответить на один из таких посланных
|
||
нами пакет пакетом с флагом RST. Фильтруемые порты обычно не
|
||
отвечают на такие пакеты, поэтому nmap обозначает такой порт
|
||
"open|filered". Если добавить опцию распознавания версии (-sV),
|
||
nmap попытается определить точно ли такие порты открыты. К
|
||
несчастью, Microsoft как всегда решила полностью игнорировать все
|
||
общепринятые стандарты и пойти своим путём. Поэтому любая ОС
|
||
семейства Windows не посылает в ответ RST-пакет, и данные методы
|
||
не будут работать с этими ОС. С другой стороны в nmap этот признак
|
||
является основным для различения операционных систем, если данные
|
||
типы сканирования нашли открытые порты - скорее всего сканируемая
|
||
машина работает не под управлением windows. К сожалению, Windows
|
||
не единственная ОС, обладающая этим недостатком. К таким ОС
|
||
относятся также Cisco, BSDI, IRIX, HP/UX и MVS. Все эти ОС не
|
||
отправляют RST-пакеты. Но это не так важно, поскольку nmap может
|
||
определять операционную систему другими методами автоматически.
|
||
.TP
|
||
.B \-sP
|
||
Ping-сканирование: Иногда вам необходимо лишь узнать какие хосты
|
||
активны в сканируемой сети. Nmap может сделать это, послав ICMP-сообщение "эхо запрос" на каждый IP-адрес, который вы укажете.
|
||
Хост, отправивший ответ на эхо, является активным. Некоторые сайты
|
||
(например microsoft.com) блокируют пакеты с эхо запросом. Поэтому
|
||
nmap также посылает TCP АСК-пакет на 80-й порт сканируемого хоста
|
||
(по умолчанию). Если в ответ мы получили RST-пакет, - хост
|
||
активен. Третий метод посылает SYN-пакет и ожидает в ответ RST
|
||
либо SYN|ACK. Для пользователей, не обладающих статусом
|
||
root, используется метод connect().
|
||
.Sp
|
||
Для привилегированных пользователей nmap по умолчанию использует
|
||
параллельно оба метода - ICMP и ACK. Вы можете изменить это,
|
||
используя опцию '
|
||
.B \-P
|
||
', описанную ниже.
|
||
.Sp
|
||
Обратите внимание, что ping-сканирование по умолчанию выполняется
|
||
в любом случае и только активные хосты подвергаются сканированию.
|
||
Используйте эту опцию только в случае, если вы хотите произвести
|
||
только ping-опрос, не сканируя порты.
|
||
.B \-sV
|
||
Включить режим определения версий служб, за которыми закреплены
|
||
сканируемые порты. После сканирования TCP и/или UDP-портов любым
|
||
методом, nmap попытается определить привязанный к этим открытым
|
||
портам протокол службы (ftp, ssh, telnet, http), имя приложения
|
||
(ISC Bind, Apache httpd, Solaris telnetd), номер версии и
|
||
дополнительные детали (например, открыт ли Х сервер для
|
||
подключений или версию протокола SSH). Файл, названный nmap-service-probes используется для определения оптимальтых тестов, с
|
||
помощью которых можно получить максимально точную информацию в
|
||
данных условиях. Если nmap скомпилирован с поддержкой OpenSSL, он
|
||
подключится к SSL-серверу с попыткой определить, какая служба
|
||
работает за шифрованием. Если обнаружена служба RPC, nmap
|
||
предпримет атаку на RPC по методу "грубой силы" для определения
|
||
номера программы RPC и номера версии. Некоторые UDP-порты остаются
|
||
в состоянии "open|filtered" если UDP-сканирование не сможет точно
|
||
определить в каком состоянии находится порт. Определитель версии
|
||
попытается соединиться на такой порт, и если он открыт, то его
|
||
состояние изменится на open. Опция '-A' также включает этот режим.
|
||
При использовании опции '--version_trace' nmap будет отображать
|
||
всю информацию о происходящем процессе определения версии (это
|
||
некоторая разновидность информации которую можно получить при
|
||
включении опции '--packet_trace').
|
||
.TP
|
||
.B \-sU
|
||
UDP-сканирование: этот тип сканирования используется для
|
||
определения открытых UDP (User Datagram Protocol, RFC 768) портов
|
||
на сканируемой машине. Nmap посылает 0-байтный UDP-пакет на каждый
|
||
порт сканируемой машины. Если в ответ получено сообщение ICMP
|
||
"port unreachable" (ICMP порт недоступен), то сканируемый порт
|
||
закрыт, если что-то другое - то открыт. Если ответ вообще не
|
||
приходит, то nmap помечает порт состоянием "open|filtered", и это
|
||
значит что порт открыт, но фаервол или другой пакетный фильтр
|
||
блокирует доступ к данному порту. Включение режима определения
|
||
версий служб (-sV) может помочь точно распознать открытые и
|
||
фильтруемые порты.
|
||
.Sp
|
||
Некоторые пользователи считают сканирование UDP-портов бесполезным
|
||
занятием. Мы обычно в этом случае напоминаем об известной дыре в
|
||
демоне rpcbind ОС Solaris. Rpcbind может быть обнаружен на любом
|
||
из недокументированных UDP-портов с номером, больше 32770. Если вы
|
||
обнаружите его, то будет уже не важно, блокируется ли 111-й порт
|
||
фаерволом или нет. Но как вы можете обнаружить на каком именно из
|
||
30,000 портов запущен rpcbind? Конечно же с помощью UDP-сканирования. Также недокументированные (свыше 1024 номера) порты
|
||
часто используются троянами или DDoS-клиентами. Очень часто такие
|
||
UDP-сервисы как snmp, tftp, NFS также имеют уязвимости.
|
||
.Sp
|
||
К сожалению, сканирование UDP-портов очень медленный процесс,
|
||
поскольку практически все ОС следуют рекомендации RFC 1812 (раздел
|
||
4.3.2.8) по ограничению скорости генерирования ICMP-сообщений
|
||
"порт недоступен". Например, ядро Linux (файл - net/ipv4/icmp.h)
|
||
ограничивает генерирование таких сообщений до 80 за 4 секунды с
|
||
простоем 0,25 секунды, если это ограничение было превышено. У ОС
|
||
Solaris еще более жесткое ограничение (2 сообщения в секунду), и
|
||
поэтому сканирование Solaris проходит еще более медленно. Nmap
|
||
определяет параметры этого ограничения, и соответственно уменьшает
|
||
количество генерируемых запросов, предотвращая тем самым
|
||
затопление сети ненужными пакетами, которые игнорируются
|
||
сканируемой машиной.
|
||
.Sp
|
||
Как обычно, Microsoft проигнорировала рекомендации RFC, и не
|
||
использует в своих ОС никаких ограничений. Поэтому nmap может
|
||
очень быстро просканировать все 65535 UDP-портов хоста,
|
||
работающего под управлением ОС Windows. :-)
|
||
.TP
|
||
.B \-sO
|
||
Сканирование протоколов IP. Данный метод используется для
|
||
определения IP-протоколов, которые поддерживает сканируемый хост.
|
||
Метод заключается в отправке хосту IP-пакетов без заголовка для
|
||
каждого сканируемого протокола. Если получено сообщение ICMP
|
||
"protocol unreachable" (протокол недоступен), то данный протокол
|
||
хостом не используется. В противном случае nmap предполагает, что
|
||
протокол хостом поддерживается. Стоит заметить, что некоторые ОС
|
||
(AIX, HP-UX, Digital UNIX) и фаерволы могут блокировать передачу
|
||
сообщений "ICMP protocol unreachable". По этой причине все
|
||
сканируемые протоколы nmap обозначает как "open" (т.е.
|
||
поддерживаются).
|
||
.Sp
|
||
Поскольку описанная техника схожа со сканированием UDP-портов, то
|
||
и соответственно есть лимит скорости генерации ICMP-сообщений.
|
||
Однако поле "тип протокола" IP-заголовка состоит всего лишь из 8
|
||
бит, поэтому 256 протоколов будут отсканированы за приемлемое
|
||
время.
|
||
.TP
|
||
.B \-sI <зомби-хост[:порт]>
|
||
Idle-сканирование - позволяет произвести абсолютно невидимое
|
||
сканирование портов. Это означает, что никакие пакеты с вашего
|
||
реального ip-aдреса не отправляются на сканируемую машину. Метод
|
||
IdleScan использует сторонний канал для сканирования, которое
|
||
проходит через хост-зомби, и основано на методе предугадывания
|
||
генерируемого на хосте-зомби значения "IP fragmentation ID".
|
||
Системы защиты на сканируемом хосте определят источником
|
||
сканирования хост-зомби, который вы используете.
|
||
.Sp
|
||
Кроме абсолютной невидимости, этот тип сканирования позволяет
|
||
определить политику доверия между сканируемыми машинами на уровне
|
||
протокола IP. Листинг результатов сканирования отображает порты
|
||
открытые для хоста-"зомби". Таким образом, можно просканировать
|
||
цель с использованием нескольких "зомби", которым цель может
|
||
"доверять", в обход фаерволов и пакетных фильтров. Такого рода
|
||
информация может быть самой важной при выборе приоритетных целей
|
||
для атаки.
|
||
.Sp
|
||
Вы можете указать конкретный порт для проверки изменения IPID на
|
||
хосте-"зомби". В ином случае nmap будет использовать номер порта
|
||
по умолчанию для "tcp ping".
|
||
.Sp
|
||
Что бы узнать, можно ли использовать хост в качестве зомби,
|
||
- нужно запустить nmap c дополнительными опциями "-O -v", и в поле
|
||
IPID Sequence Generation будет указан тип генерирования. Если
|
||
"Incremental" - то этот хост можно использовать как зомби.
|
||
.TP
|
||
.B \-sA
|
||
Сканирование методом ACK. Этот метод обычно используется для
|
||
определения набора правил фаервола. В частности, он помогает
|
||
определить защищен ли сканируемый хост фаерволом или просто
|
||
используется пакетный фильтр, блокирующий входящие SYN-пакеты.
|
||
.Sp
|
||
Этот метод сканирования подразумевает отправку ACK-пакета (со
|
||
случайными значениями полей acknowledgement number и sequence
|
||
number) на порт сканируемого хоста. Если в ответ пришел RST-пакет,
|
||
порт обозначается как "unfiltered" (нефильтруемый). Если ответа не
|
||
последовало (или пришло ICMP-сообщение "port unreachable"), порт
|
||
обозначается как "фильтруемый". Заметим, что обычно nmap не
|
||
отображает нефильтруемые порты в результатах, поэтому если после
|
||
сканирования методом АСК не обнаружено ни одного открытого порта,
|
||
то это означает, что все порты являются нефильтруемыми (в ответ
|
||
пришел RST-пакет). Этот метод никогда не показывает состояние
|
||
порта "open" в результатах сканирования.
|
||
.TP
|
||
.B \-sW
|
||
Cканировать методом TCP Window. Этот метод очень похож на ACK-сканирование, за исключением того, что иногда с его помощью можно
|
||
определить открытые порты точно так же, как и
|
||
фильтруемые/нефильтруемые, проверяя значение поля window size TCP-пакета, возвращаемого хостом в ответ на посланный ему запрос,
|
||
поскольку есть некоторые аномалии обработки данного поля у
|
||
некоторых ОС. Список уязвимых операционных систем включает в себя
|
||
несколько версий AIX, Amiga, BeOS, BSDI, Cray, Tru64 UNIX, DG/UX,
|
||
OpenVMS, Digital UNIX, FreeBSD, HP-UX, OS/2, IRIX, MacOS, NetBSD,
|
||
OpenBSD, OpenStep, QNX, Rhapsody, SunOS 4.X, Ultrix, VAX и
|
||
VxWorks. Для более подробной информации смотрите архив конференции
|
||
nmap-hackers.
|
||
.TP
|
||
.B \-sR
|
||
RPC-сканирование. Метод работает только в комбинации с другими
|
||
методами сканирования. Все предварительно отсканированные открытые
|
||
порты затопляются NULL-командами программы SunRPC, для того чтобы
|
||
определить какие из этих портов являются RPC-портами, и какие за
|
||
ними закрепленные программы. Таким образом, вы легко получаете
|
||
информацию, которую могли бы получить с помощью команды 'rpcinfo
|
||
-p', даже если portmapper сканируемого хоста закрыт фаерволом или
|
||
TCP-wrapper'ом. Этот тип сканирования включается также при выборе
|
||
опции '-sV' (режим определения версий служб).
|
||
.TP
|
||
.B \-sL
|
||
Cоставить список сканирования. Этот метод просто генерирует список
|
||
IP-адресов или имён хостов без любого их сканирования. Имена
|
||
хостов определяются по-умолчанию, но это можно отменить опцией -n.
|
||
.TP
|
||
.B \-b <ftp relay host>
|
||
Прорыв через FTP. Интересной "возможностью" протокола FTP (RFC
|
||
959) является поддержка proxy ftp-соединений. Другими словами, с
|
||
доверенного хоста evil.com можно соединиться с ftp-сервером
|
||
target.com и отправить файл, находящийся на нем, на любой адрес в
|
||
Интернет! Заметим, что данная возможность известна с 1985 года,
|
||
когда был написан этот RFC. Nmap использует эту уязвимость для
|
||
сканирования портов с proxy ftp-сервера. Итак, вы можете
|
||
подключиться к ftp-серверу за фаерволом и затем просканировать
|
||
заблокированные порты, например 139-й. Если ftp-сервер
|
||
позволяет читать и записывать данные в какой-либо каталог
|
||
(например /incoming), вы также можете отправить любые данные на
|
||
эти порты. (но nmap за вас это делать не будет).
|
||
.Sp
|
||
Аргумент, указываемый после '-b', это URL сервера ftp,
|
||
используемого в качестве proxy. Формат URL следующий:
|
||
имя_пользователя:пароль@сервер:порт. Адрес сервера нужно указать
|
||
обязательно, остальное - опционально. Нужно заметить, что в данное
|
||
время этот вид сканирования не эффективен, потому как почти во
|
||
всех приложениях уязвимость, используемая данным методом,
|
||
устранена.
|
||
.TP
|
||
.B НАСТРОЙКА ДОПОЛНИТЕЛЬНЫХ ПАРАМЕТРОВ СКАНИРОВАНИЯ
|
||
Ни одна из нижеуказанных опций не является необходимой, но некоторые могут быть очень полезными.
|
||
.TP
|
||
.B \-P0
|
||
Вообще не производить ping-опрос хостов перед их сканированием.
|
||
Эта опция позволяет просканировать сети, блокирующие обработку
|
||
ICMP-эха с помощью фаерволов. Примером такой сети является
|
||
microsoft.com, и вы всегда должны использовать опцию '
|
||
.B \-P0
|
||
' или '
|
||
.B \-PS80
|
||
' (см. ниже), когда сканируете такую сеть. Заметьте, что в
|
||
этом случае "ping" Обозначает несколько больше, чем традиционный
|
||
ICMP echo request пакет. Nmap использует разные комбинации TCP,
|
||
UDP и ICMP пакетов для того, что бы определить активен ли хост.
|
||
По-умолчанию nmap посылает ICMP echo request и TCP ACK пакет на
|
||
порт 80.
|
||
.TP
|
||
.B \-PA [порт(ы)]
|
||
Использовать TCP ACK ping для определения присутствия хоста в
|
||
сети. Вместо того, что бы отправлять ICMP echo request пакет и
|
||
ждать ответа, мы отправляем TCP ACK пакет на сканируемый хост.
|
||
Если в ответ мы получим RST-пакет, значит сканируемый хост
|
||
активен. Эта опция помогает избежать сканирования неактивных
|
||
хостов в сети, блокирующей ICMP-пакеты. Для непривилегированных
|
||
пользователей используется connect() метод, при котором активность
|
||
хоста фактически определяется его ответом на посланный нами SYN-пакет. Что бы указать порт(ы) назначения для нашего сканирования
|
||
- используйте '-PA[,port2][...]'. По-умолчанию используется
|
||
80-ый порт, поскольку чаще всего он не фильтруется.
|
||
.TP
|
||
.B \-PS [порт(ы)]
|
||
Использовать SYN-пакет (запрос на соединение) вместо ACK-пакетов
|
||
для привилегированных пользователей. Активные хосты должны
|
||
ответить на наш пакет RST-пакетом (или что уже редко - SYN|ACK).
|
||
Можно указать порты назначения точно так же как и в '-PA' опции.
|
||
.TP
|
||
.B \-PR
|
||
Использовать raw ethernet ARP ping. Когда сканируемый хост
|
||
находится в одном физическом сегменте сети со сканирующим, можно
|
||
более быстро и надёжно (ARP-пакеты не фильтруются фаерволом или
|
||
другим IP-фильтром) определить активен ли он. Nmap посылает IPv4-to-Ethernet ARP-запрос для каждого сканируемого хоста и смотрит
|
||
за приходящими ARP-ответами. Эта опция не может комбинироваться с
|
||
остальными типами ping-опроса.
|
||
.B \-PU [порт(ы)]
|
||
Эта опция отправляет UDP-запрос на сканируемый хост. Если в ответ
|
||
приходит сообщение "ICMP port unreachable", или UDP-ответ (порт
|
||
открыт), то сканируемый хост активен. Поскольку многие UDP-сервисы
|
||
не отвечают на пустой пакет, лучше указывать предположительно
|
||
закрытый порт.
|
||
.TP
|
||
.B \-PE
|
||
Использовать "настоящий" ping (посылать на сканируемый хост "ICMP
|
||
echo request" пакет). При включении этой опции ищутся активные
|
||
хосты и broadcast-адреса (адреса которые доступны внешне, и
|
||
транслируют приходящие IP-пакеты всем хостам внутренней сети).
|
||
Такие адреса могут использоваться для организации DoS-атак. (Атака
|
||
типа отказ в обслуживании)
|
||
.TP
|
||
.B \-PP
|
||
Использовать пакет ICMP "timestamp request (type 13)" для определения активных хостов.
|
||
.TP
|
||
.B \-PM
|
||
Использовать пакет ICMP "netmask request (type 17)" для определения активных хостов.
|
||
.TP
|
||
.B \-PB [порт(ы)]
|
||
Это тип ping-опроса по-умолчанию. Он параллельно использует ACK
|
||
(
|
||
.B -PA
|
||
) и "ICMP echo request" пакет (
|
||
.B -PE
|
||
). Этим путем можно обойти
|
||
фаервол который фильтрует один из этих пакетов.
|
||
.TP
|
||
.B \-O
|
||
(Operating system detection) - эта опция позволяет определить
|
||
операционную систему сканируемого хоста с помощью снятия
|
||
отпечатков стека TCP/IP. Другими словами, nmap активизирует мощный
|
||
алгоритм, функционирующий на основе анализа свойств сетевого стека
|
||
установленной на хосте ОС. В результате сканирования получается
|
||
"отпечаток", состоящий из стандартных тестовых запросов и
|
||
"ответов" хоста на них. Затем полученный отпечаток сравнивается с
|
||
имеющейся базой стандартных ответов известных ОС, хранящейся в
|
||
файле nmap-os-fingerprinting, и на основании этого принимается
|
||
решение о типе и версии ОС сканируемого хоста.
|
||
.Sp
|
||
Если nmap не смог определить OC сканируемой машины, потому что
|
||
такого отпечатка ещё нет в базе, но получение отпечатка
|
||
представляется возможным (на машине хотя бы один открытый порт)
|
||
nmap укажет url, на котором вы сможете отправить отпечаток для
|
||
внесения его разработчиками в базу отпечатков, если вы точно
|
||
знаете что за ОС используется на сканируемом хосте. Заметьте, если
|
||
вы укажете ip-адрес машины, для которой вы прислали отпечаток, то
|
||
при внесении его в базу эта машина будет ещё раз просканирована
|
||
для подтверждения результатов.
|
||
.Sp
|
||
Опция '-О' также инициализирует несколько других тестов. Один из
|
||
таких как использование "TCP timestamp" опции (RFC 1323) для
|
||
определения времени активности хоста с момента его последней
|
||
перезагрузки. Эта информация предоставляется только с разрешения
|
||
сканируемого хоста.
|
||
.Sp
|
||
Другой тест, инициализируемые опцией '-O' - это "TCP Sequence
|
||
Predictability Classification" - классификация предсказуемости
|
||
последовательности TCP. Его суть в том, что бы определить
|
||
насколько тяжело установить поддельное соединение с удалённой
|
||
машиной. Эта информация может использоваться для обхода прав
|
||
доступа к удалённой машине или скрытия источника атаки. Эта
|
||
информация отображается при включенной опции '-v'.
|
||
.Sp
|
||
Когда опция '-v' используется вместе с '-O', - частота генерации
|
||
IPID также отображается. Большинство машин отображаются как
|
||
"incremental", что означает изменение поля "ID" в заголовке IP для
|
||
каждого отправленного пакета на одинаковую величину, что делает их
|
||
уязвимыми для некоторых углублённых методов сбора информации и
|
||
spoof-атак.
|
||
.TP
|
||
.B \--osscan_limit
|
||
Определение ОС сканируемой машины значительно эффективнее, если
|
||
найдены хотя бы один закрытый и открытый порт. Используйте эту
|
||
опцию и nmap не будет пробовать определять ОС, если таковых портов
|
||
не найдено. Это может сократить время сканирования, например при
|
||
-P0 сканировании множества хостов. Эта опция используется только
|
||
вместе с '-O' или '-A' опциями.
|
||
.TP
|
||
.B \-A
|
||
Эта опция включает режим Additional Advanced и Aggressive,
|
||
объединяя опции '-O' и '-sV'. В будущем эта опция планируется для
|
||
объединения многих опций, для того что бы меньше запоминать. ;-)
|
||
.TP
|
||
.B \-6
|
||
Эта опция включает поддержку протокола IPv6. Все сканируемые хосты
|
||
должны поддерживать IPv6 при использовании этой опции, и могут
|
||
быть указаны путем нормального имени DNS (запись AAAA) или
|
||
литеральным IP-адресом, например
|
||
3ffe:501:4819:2000:210:f3ff:fe03:4d0. На данный момент,
|
||
поддерживаются только методы TCP connect()-сканирование и TCP
|
||
connect() Ping-сканирование. Если Вас интересует UDP или другой
|
||
тип сканирования, посетите http://nmap6.sourceforge.net/.
|
||
.TP
|
||
.B \--send_eth
|
||
Эта опция заставляет nmap отсылать пакеты на канальном уровне
|
||
(data link layer) вместо сетевого уровня (network layer). По-умолчанию nmap сам выбирает на каком уровне отправлять пакеты в
|
||
зависимости от используемой платформы. Raw-сокеты (сетевой
|
||
уровень) более эффективно использовать на UNIX машинах, однако на
|
||
канальном уровне лучше функционируют ОС семейства Windows, в
|
||
которых Microsoft отключила поддержку raw-сокетов. Nmap однозначно
|
||
будет использовать raw-сокеты если нет другого выбора (например в
|
||
не локальной сети).
|
||
.TP
|
||
.B --send_ip
|
||
Эта опция заставляет nmap отсылать пакеты на сетевом уровне
|
||
(network layer) вместо канального (data link layer). Это
|
||
противоположная опция к '--send_eth'.
|
||
.TP
|
||
.B \--spoof_mac [mac, prefix, or vendor substring]
|
||
Эта опция заставляет nmap использовать заданный MAC-адрес во всех
|
||
отправляемых пакетах канального уровня. Адрес может задаваться в
|
||
нескольких форматах. Если это просто строка "0", nmap выберет
|
||
полностью случайный MAC-адрес для этой сессии. Если заданный адрес
|
||
- набор шестнадцатеричных чисел, с разделителем в виде двоеточия,
|
||
nmap будет использовать эту строку как МАС-адрес. Если задано
|
||
меньше 12 шестнадцатеричных чисел, nmap сам заполнит недостающие
|
||
случайными значениями. Если заданный аргумент не 0 и не
|
||
шестнадцатеричная строка, то nmap будет искать в файле nmap-mac-prefixes похожее значение в именах производителей сетевого
|
||
оборудования. Если такой производитель будет найден, nmap возьмет
|
||
OUI (3байтный префикс) производителя и дополнит его случайными 3
|
||
байтами, в результате получится поддельный МАС-адрес определённого
|
||
производителя. Правильными аргументами --spoof_mac будут, например: "Apple", "0", "01:02:03:04:05:06", "deadbeefcafe", "0020F2", и "Cisco".
|
||
.TP
|
||
.B \-f
|
||
(fragment packets) - эта опция используется совместно с SYN, FIN,
|
||
Xmas или NULL-сканировании и указывает на необходимость
|
||
использования IP-фрагментации. Идея заключается в том, чтобы
|
||
разбить TCP-заголовок исходящего пакета на несколько фрагментов.
|
||
Сканируемый хост дефрагментирует эти IP-фрагменты в один TCP-пакет. Фрагментирование значительно усложняет фильтрацию пакетов,
|
||
работу систем обнаружения и других подобных средств защиты, и
|
||
позволяет nmap скрыть свои действия. Однако следует осторожно
|
||
использовать данную опцию, поскольку некоторые старые или
|
||
непрофессиональные новые программы, например снифферы, просто
|
||
зависают при попытке собрать такие маленькие фрагменты. Укажите
|
||
эту опцию один раз и nmap будет разбивать пакеты на 8байтовые или
|
||
меньше пакеты, исключая IP-заголовок. Например, 20-байтовый TCP
|
||
заголовок будет разбит на 3 пакета - на 2 по 8байт и один на 4.
|
||
Конечно же, каждый фрагмент имеет собственный IP-заголовок.
|
||
Укажите опцию '-f' ещё раз и пакеты будут разбиваться
|
||
соответственно на 16байтные фрагменты. Или вы можете указать свой
|
||
собственный размер фрагмента, используя опцию '--mtu'. Не
|
||
используйте эти (-f и --mtu) опции вместе, и не забывайте, что
|
||
размер фрагмента должен быть кратен 8.
|
||
.Sp
|
||
Заметьте, что некоторые ОС, например Linux c включенным модулем ip
|
||
tables connection tracking, дефрагментируют исходящие пакеты на
|
||
уровне ядра. Просмотрите генерируемый nmap фрагментированный
|
||
трафик сниффером, что бы выяснить работает ли опция '-f'.
|
||
.TP
|
||
.B \-v
|
||
(verbose output) - использовать режим подробного отчета. Если вы
|
||
укажете эту опцию, nmap будет подробно сообщать о ходе выполнения
|
||
текущей операции. Для получения лучшего эффекта можно указать ее
|
||
дважды. Можете ещё несколько раз указать опцию '
|
||
.B \-d
|
||
', но в таком случае от скроллинга экрана вам может поплохеть. ;-)
|
||
.TP
|
||
.B \-h
|
||
(help) - показывает краткую инструкцию по использованию nmap
|
||
с указанием опций и краткого их описания, не запуская саму
|
||
программу.
|
||
.TP
|
||
.B \-oN <имя_файла>
|
||
(output Normal) - записывает результаты сканирования в удобной для
|
||
пользователя форме в файл, указанный в качестве аргумента.
|
||
.TP
|
||
.B \-oX <имя_файла>
|
||
(output XML) - записывает результаты сканирования в формате
|
||
.B XML
|
||
в файл, указанный в качестве аргумента. Это позволяет программам
|
||
легче обрабатывать вывод nmap'а. Вы можете использовать аргумент
|
||
'-' (без кавычек) для вывода на stdout. Нормальный вывод в этом
|
||
случае не используется. Внимательно следите за сообщениями об
|
||
ошибках, потому как они выводятся на stderr. Document Type
|
||
Definition (DTD), объясняющий структуру вывода результатов nmap в
|
||
формате XML доступен здесь: http://www.insecure.org/nmap/nmap.dtd.
|
||
.TP
|
||
.B \--stylesheet <имя_файла>
|
||
Nmap обращается к XSL таблице стилей, которая называется nmap.xsl,
|
||
для просмотра или транслирования XML вывода в HTML формат. Если вы
|
||
желаете указать другую таблицу стилей - используйте эту опцию. В
|
||
качестве аргумента указывается полный путь или url, например '--stylesheet http://www.insecure.org/nmap/data/nmap.xsl', что
|
||
укажет браузеру загрузить последнюю версию таблицы стилей с
|
||
сервера insecure.org. Эта таблица может использоваться для
|
||
просмотра nmap XML-вывода на машине где nmap не установлен. По
|
||
умолчанию, в целях безопасности, используется локальная копия
|
||
nmap.xsl.
|
||
.TP
|
||
.B \--no_stylesheet
|
||
Указывает nmap не использовать никакой XSL таблицы стилей для
|
||
отображения XML-вывода.
|
||
.TP
|
||
.B \-oG <имя_файла>
|
||
(output Grepable) - записывает результаты сканирования в удобной
|
||
для программы grep форме в файл, указанный в качестве аргумента.
|
||
Вы можете использовать аргумент '-' (без кавычек) для вывода на
|
||
stdout. Нормальный вывод в этом случае не используется.
|
||
Внимательно следите за сообщениями об ошибках, потому как они
|
||
выводятся на stderr. В нынешнее время рекомендуется использовать
|
||
XML-вывод (-oX).
|
||
.TP
|
||
.B \-oA <имя_базы>
|
||
(output All) - записывает результаты во всех основных форматах
|
||
(нормальном, grep и XML). Вы указываете базовое имя, например
|
||
base, и выходные файлы будут называться base.nmap, base.gnmap и
|
||
base.xml.
|
||
.TP
|
||
.B \-oS <имя_файла>
|
||
thIs l0gz th3 r3suLtS of YouR ScanZ iN a
|
||
.B s|<ipT kiDd|3
|
||
f0rM iNto THe fiL3 U sPec\|fy 4s an arGuMEnT! U kAn gIv3
|
||
the 4rgument "-" (wItHOUt qUOteZ) to sh00t output iNT0
|
||
stDouT!@!!
|
||
.TP
|
||
.B \--resume <имя_файла>
|
||
Если сканирование было прервано нажатием комбинации [Ctrl+C],
|
||
сетевым сбоем и т.п., то оно может быть продолжено включением этой
|
||
опции. Если результаты прерванного сканирования записывались в
|
||
лог-файл с помощью опций '-oG' или '-oN', просто запустите nmap с
|
||
указанием этой опции и имени лог-файла, в который производилась
|
||
запись предыдущего сеанса. Не указывайте никаких других опций,
|
||
поскольку при возобновлении сканирования будут использоваться
|
||
опции, указанные в предыдущем сеансе. Nmap продолжит сканирование
|
||
с адреса, следующего за последним отсканированным.
|
||
.TP
|
||
.B \--exclude <хост1 [,хост2][,хост3],...">
|
||
Исключить из списка сканирования цели (хосты, сетевые диапазоны),
|
||
которые не должны сканироваться.
|
||
.TP
|
||
.B \--excludefile <имя_файла>
|
||
Смысл этой опции такой же, как и '--exclude', только цели для
|
||
исключения задаются файлом, каждая запись - в отдельной строке.
|
||
.TP
|
||
.B \--allports
|
||
Опция используется вместе с режимом определения версий служб (-sV)
|
||
и разрешает работать со всеми найденными открытыми портами, даже с
|
||
теми, которые помечены как опасные в файле nmap-service-probes.
|
||
.TP
|
||
.B \--append_output
|
||
Дописывать результаты сканирования в лог-файл, а не затирать
|
||
предыдущую информацию в нём.
|
||
.TP
|
||
.B \-iL <имя_файла>
|
||
(input List) - считывать список хостов для сканирования из файла,
|
||
заданного в качестве аргумента. Файл должен содержать список имен
|
||
хостов или IP-адресов, разделенных пробелами, знаками табуляции
|
||
или что бы каждая запись была в отдельной строке. Что бы nmap
|
||
считал список хостов с StdIn, укажите вместо имени файла символ
|
||
'-'. Более подробная информация о форматах выражений приведены в
|
||
разделе "Способы задания цели".
|
||
.TP
|
||
.B \-iR <количество_хостов>
|
||
Если указать эту опцию, то nmap будет сканировать хосты выбранные
|
||
случайным образом. Используйте 0 в качестве заданной цели для
|
||
сканирования, и nmap будет сканировать пока вы его не остановите.
|
||
Эта опция может быть использована для статистических исследований
|
||
Интернета. Если вам действительно скучно - запускайте "nmap -sS -PS80 -iR 0 -p 80" что бы найти некоторые веб-сервера, которые
|
||
могут вас заинтересовать.
|
||
.TP
|
||
.B \-p <диапазон_портов>
|
||
Этой опцией вы можете задать порты, которые вы хотите сканировать.
|
||
Для примера, если задать "-р 23", то будет сканироваться только 23
|
||
порт на хосте. "-р 20-30,139,60000-" просканирует порты от 20 до
|
||
30, 139 порт, и все порты, номера которых больше 60000. По
|
||
умолчанию сканируются порты от 1 до 1024, и те, которые указаны в
|
||
файле nmap-services. Для сканирования протоколов IP (-sO) эта
|
||
опция указывает какой протокол просканировать (0-255).
|
||
.Sp
|
||
Когда сканируются как TCP так и UDP порты, можно указать диапазон
|
||
для каждого типа портов отдельно, используя префиксы "Т:" и "U:"
|
||
соответственно. Например, если задать аргумент "-р
|
||
U:53,111,137,T:21-25,80,139,8080" то будут сканироваться 53, 111,
|
||
и 137 UDP-порты, и указанные ТСР-порты. Заметьте, что бы
|
||
просканировать UDP и ТСР порты, нужно указать -sU и хотя бы один
|
||
из методов ТСР-сканирования (-sS, -sF, -sT).
|
||
.TP
|
||
.B \-F
|
||
Быстрое сканирование. Если указать эту опцию, то nmap будет
|
||
сканировать порты только тех служб, которые перечислены в файле
|
||
nmap-services (или nmap-protocols для '-sO'). Сканирование
|
||
проходит гораздо быстрее, чем если бы nmap сканировал все 65535
|
||
портов хоста.
|
||
.TP
|
||
.B \-D <ложный_хост1,[ложный_хост2],[,ME],...>
|
||
Эта опция используется для сокрытия реального источника
|
||
сканирования, используя ложные хосты. Вместе с нашими пакетами на
|
||
сканируемый хост отсылаются такие же пакеты, но с поддельными
|
||
адресами источника. Защитная программа на сканируемом хосте может
|
||
отобразить 5-10 попыток сканирования с разных источников, но
|
||
узнать с какого именно хоста производится истинное сканирование
|
||
сложно, особенно если указать много ложных хостов.
|
||
.Sp
|
||
Указывайте ложные хосты через запятую, и используйте "МЕ" для
|
||
обозначения своего хоста в этой цепочке. Например, если указать
|
||
"МЕ" на 5 позиции, то истинные пакеты будут отправлены после
|
||
предыдущих четырех ложных. Если не указать "ME", nmap выберет
|
||
позицию для вашего хоста случайным образом.
|
||
.Sp
|
||
Учтите, что хосты, которые вы укажете как ложные, должны быть в
|
||
активном состоянии, иначе вы можете случайно затопить сканируемую
|
||
цель SYN-пакетами, или будет очень легко определить источник
|
||
сканирование, если только ваша машина окажется активной. Также
|
||
предпочтительно использовать ip-адреса вместо dns-имён, иначе на
|
||
сервере имён ложных хостов в лог-файле сохранятся записи о ваших
|
||
обращениях к ним.
|
||
.Sp
|
||
Стоит заметить, что некоторые детекторы сканирования портов
|
||
блокируют доступ хосту, осуществившему попытку сканирования.
|
||
Поэтому ложный хост может потерять соединение со сканируемым
|
||
хостом. Эта ситуация может возникнуть даже в том случае, если вы
|
||
указали в качестве ложного хоста адрес шлюза или сервера имён.
|
||
Поэтому используйте эту опцию очень осторожно.
|
||
.Sp
|
||
Ложные хосты можно использовать в любом методе сканирования а
|
||
также при определении операционной системы удалённого хоста (-O).
|
||
.Sp
|
||
Если вы укажете много ложных хостов, процесс сканирования
|
||
замедлится и станет менее аккуратным. Некоторые провайдеры
|
||
фильтруют поддельные исходящие пакеты, так что данный вид
|
||
сканирования может вообще не достичь желаемого результата.
|
||
.TP
|
||
.B \-S <ip-адрес>
|
||
При некоторых обстоятельствах nmap не сможет определить ваш ip-адрес (nmap сообщит вам об этом). В таких случаях можно
|
||
использовать эту опцию для явного указания вашего ip-адреса.
|
||
.Sp
|
||
Другой вариант использования этой опции - отправка пакетов с
|
||
поддельным ip-адресом. Это может использоваться для создания
|
||
видимости сканирования целевого хоста кем-то другим, однако в
|
||
таком случае результат сканирования можно получить лишь
|
||
прослушивая трафик, проходящий между целевым хостом и хостом,
|
||
пакеты которого вы подделываете. Что бы использовать данный метод,
|
||
необходимо так же включить опцию '-e'.
|
||
.TP
|
||
.B \-e <интерфейс>
|
||
Если nmap не может определить какой интерфейс использовать для
|
||
приёма и отправки пакетов, то этой опцией можно указать его явно.
|
||
.TP
|
||
.B \--source_port <номер_порта>
|
||
Использовать порт отправки с определённым номером. Много
|
||
непрофессиональных фаерволов и пакетных фильтров позволяют
|
||
пакетам, отправленным с таких портов как например 53 (DNS) или 20
|
||
(FTP-DATA), свободно инициализировать соединения на защищаемом
|
||
хосте. Соответственно, изменив наш порт отправки на разрешенный
|
||
фаерволом порт мы можем устанавливать соединения с защищённой этим
|
||
фаерволом машиной. Для UDP сканирования попробуйте сначала
|
||
установить 53 порт, а для TCP - 20. Однако эта техника не всегда
|
||
работает, вы не сможете определить характер изменения ISN, в связи
|
||
с чем nmap самостоятельно сменит номер порта для этой цели, даже
|
||
если вы указали эту опцию.
|
||
.TP
|
||
.B \--data_length <количество_байт>
|
||
Обычно nmap использует минимальные по размеру пакеты, которые
|
||
содержат только заголовок. TCP пакеты обычно размером в 40 байт, а
|
||
ICMP эхо запрос - всего 28. Эта опция указывает nmap дополнять
|
||
отсылаемые пакеты заданным количеством байт случайной информации.
|
||
Пакеты используемые при определении ОС сканируемого хоста не
|
||
изменяются.
|
||
.TP
|
||
.B \-n
|
||
Указывает nmap никогда не преобразовывать ip-адреса активных
|
||
хостов в DNS-адресa. Увеличивает скорость сканирования и
|
||
предотвращает появление записей о dns-запросах nmap в лог-файле
|
||
на сервере имен.
|
||
.TP
|
||
.B \-R
|
||
Указывает nmap всегда преобразовывать ip-адреса хостов в DNS-адресa. Обычно это происходит только если сканируемые машины
|
||
находятся в активном состоянии.
|
||
.TP
|
||
.B \-r
|
||
Указывает nmap не изменять порядок номеров сканируемых портов случайным образом.
|
||
.TP
|
||
.B \-\-ttl <значение>
|
||
Устанавливать в поле TTL отправляемых пакетов IPv4 заданное значение.
|
||
.TP
|
||
.B \-\-privileged
|
||
Указывает nmap, что пользователь имеет достаточные привилегии для
|
||
таких операций как использование raw-сокетов, прослушивание
|
||
трафика, и т.п. Эта опция используется в таких системах, где
|
||
непривилегированным пользователям ядро разрешает использовать
|
||
функции, которые доступны только привилегированным, например в
|
||
специально сконфигурированной ОС Linux. Nmap не может этого
|
||
определить, так как использует функцию getuid(), и в этом случае
|
||
используется данная опция, которую необходимо указывать перед
|
||
всеми остальными опциями. В качестве альтернативы --privileged
|
||
можно использовать переменную NMAP_PRIVILEGED.
|
||
.TP
|
||
.B \-\-interactive
|
||
Запускает nmap в интерактивном режиме. Эту опцию полезно
|
||
использовать в многопользовательских системах, так как, например,
|
||
в истории командной строки не остаётся указанных вами параметров.
|
||
.TP
|
||
.B \-\-randomize_hosts
|
||
Указывает nmap сканировать хосты в случайной последовательности.
|
||
Используются группы до 2048 хостов. Эта опция делает сканирование
|
||
менее заметным для различных систем сетевого мониторинга, особенно
|
||
если вы используете ее совместно с опциями настройки временных
|
||
параметров.
|
||
.TP
|
||
.B \-M <максимальное_количество_сокетов>
|
||
Устанавливает максимальное количество сокетов, используемых
|
||
параллельно в методе TCP connect() сканирования. Эту опцию можно
|
||
использовать для замедления процесса сканирования и предотвращения
|
||
выведения из строя сканируемого хоста.
|
||
.TP
|
||
.B --packet_trace
|
||
Указывает nmap отображать все принимаемые и передаваемые пакеты в
|
||
формате TCPDump. Эта опция может использоваться для отладки работы
|
||
nmap и сети, а также в обучающих целях.
|
||
.TP
|
||
.B --datadir [имя_директории]
|
||
При запуске nmap считывает данные из файлов nmap-service-probes,
|
||
nmap-services, nmap-protocols, nmap-rpc, nmap-mac-prefixes и nmap-os-fingerprints. Сначала nmap ищет эти файлы в директории
|
||
указанной в опции --nmapdir. Если файлы не найдены - проверяется
|
||
переменная окружения NMAPDIR, после чего ~/nmap, а затем путь
|
||
наподобии /usr/local/share/nmap или /usr/share/nmap. И наконец,
|
||
nmap ищет эти файлы в текущем каталоге. Этой опцией можно задать
|
||
явное имя директории где расположены эти файлы.
|
||
.TP
|
||
.B НАСТРОЙКА ВРЕМЕННЫХ ПАРАМЕТРОВ
|
||
Обычно nmap автоматически настраивает временные параметры при
|
||
запуске, в соответствии с характеристиками сканируемой сети, что
|
||
бы произвести сканирование как можно быстрее и точнее. Но иногда
|
||
бывают случаи, когда самостоятельная настройка временных
|
||
параметров nmap вас не устраивает. В этом случае вы можете
|
||
воспользоваться следующими опциями:
|
||
.TP
|
||
.B -T <Paranoid|Sneaky|Polite|Normal|Aggressive|Insane>
|
||
Возможность установления режимов сканирования с готовыми наборами
|
||
правил по установке временных интервалов.
|
||
.B Paranoid
|
||
режим - сканирование происходит очень медленно для того что бы системы
|
||
защиты не распознали его. Пакеты посылаются последовательно, с
|
||
интервалом в 5 минут. Режим
|
||
.B Sneaky
|
||
похож на режим Paranoid.
|
||
Разница лишь в том, что интервал между посылкой пакетов составляет
|
||
15 секунд. Режим
|
||
.B Polite
|
||
используется в случае, когда необходимо
|
||
что бы нагрузка на сеть была минимальной. В этом режиме пакеты
|
||
отправляются последовательно с интервалом минимум 0,4 секунды.
|
||
Режим
|
||
.B Normal
|
||
используется nmap по умолчанию. В этом режиме
|
||
сканирование производится с максимальной скоростью, и по
|
||
возможности без перегрузки сети и потери пакетов. Режим
|
||
.B Aggressive
|
||
используется для быстрого сканирования хорошо фильтруемых сетей,
|
||
особенно если используется SYN-сканирование. Режим
|
||
.B Insane
|
||
рекомендуется использовать или в очень быстрых сетях, или если вы
|
||
точно знаете, что пакеты не затеряются. Время сканирования одного
|
||
хоста - 15 минут, а ожидание ответа на запрос - 0,3 секунды.
|
||
.Sp
|
||
Каждому режиму присвоен определённый номер от 0 до 5, и его можно
|
||
указать вместо полного названия режима. Например, опция '-T0'
|
||
означает режим Paranoid, а '-T5' - Insane. Если вы хотите
|
||
использовать такие опции как --max_rtt_timeout или --host_timeout,
|
||
располагайте их в командной строке после любых '-T' опций.
|
||
.TP
|
||
.B --host_timeout <миллисекунды>
|
||
Устанавливает время, отводимое nmap на сканирование одного хоста,
|
||
прежде чем он перейдет к очередному IP-адресу. По умолчанию этот
|
||
параметр не имеет ограничения.
|
||
.TP
|
||
.B --max_rtt_timeout <миллисекунд>
|
||
Устанавливает максимальное количество времени, в течение которого
|
||
nmap ожидает ответ на посланный запрос, прежде чем повторить
|
||
запрос или считать его утерянным. По умолчанию это значение
|
||
установлено равным 9000 миллисекунд.
|
||
.TP
|
||
.B --min_rtt_timeout <миллисекунд>
|
||
Если сканируемый хост очень быстро отвечает на запросы, nmap будет
|
||
автоматически уменьшать интервал между посылаемыми запросами. Это
|
||
ускоряет сканирование, но может привести к потере пакетов с
|
||
ответами, пришедшими позже, чем обычно. Эта опция определяет
|
||
сколько времени nmap должен ждать перед отправкой очередного
|
||
пакета.
|
||
.TP
|
||
.B --initial_rtt_timeout <миллисекунд>
|
||
Устанавливает время, отводимое на определение активности хоста.
|
||
Эта опция используется в основном для сканирования хостов,
|
||
защищенных фаерволом, совместно с опцией '-P0'. Обычно nmap
|
||
автоматически выбирает оптимальное значение этого параметра после
|
||
отправки ping и первых сканирующих пакетов на хост. Значение по
|
||
умолчанию составляет 6000 миллисекунд.
|
||
.TP
|
||
.B --max_hostgroup <количество_хостов>
|
||
Устанавливает максимальное количество хостов, которое nmap может
|
||
сканировать параллельно. Большинство техник сканирования портов
|
||
используют одновременное сканирование нескольких хостов, что
|
||
позволяет работать быстрее. Но что бы дождаться всех результатов
|
||
сканирования вам необходимо ждать, пока будут просканированы все
|
||
хосты. Если вы хотите, что бы хосты сканировались поочерёдно и
|
||
результаты выводились относительно каждого хоста без задержки
|
||
- используйте 1 в качестве аргумента. Заметьте, что ping
|
||
-сканирование группирует хосты по-своему и игнорирует этот
|
||
параметр.
|
||
.TP
|
||
.B --min_hostgroup <количество_хостов>
|
||
Устанавливает минимальное количество хостов, которое nmap должен
|
||
сканировать параллельно. (см. --max_hostgroup)
|
||
.TP
|
||
.B --max_parallelism <количество>
|
||
Устанавливает максимальное количество параллельных процессов
|
||
сканирования nmap. Установка этого параметра равным 1 означает,
|
||
что nmap никогда не будет сканировать более одного порта в один
|
||
момент времени. Этот параметр также влияет и на ping-сканирование,
|
||
RPC-сканирование и т.п.
|
||
.TP
|
||
.B --min_parallelism <количество>
|
||
Устанавливает минимальное количество параллельных процессов
|
||
сканирования nmap. Увеличивает скорость прохождения пакетов через
|
||
некоторые фаерволы, однако если установить слишком большое
|
||
значение, - результаты сканирования будут ненадёжными.
|
||
.TP
|
||
.B --scan_delay <миллисекунды>
|
||
Устанавливает минимальное время задержки между отправкой пакетов.
|
||
Эта опция используется для снижения нагрузки на сеть и уменьшения
|
||
вероятности обнаружения сканирования. Nmap иногда может
|
||
увеличивать это значение самостоятельно, если обнаруживает
|
||
значительные потери пакетов. Например, ОС Solaris отвечают только
|
||
одним ICMP port unreachable пакетом в секунду при UDP-сканировании. Nmap старается определить это и увеличить
|
||
минимальное время задержки до одной секунды.
|
||
.TP
|
||
.B --max_scan_delay <миллисекунды>
|
||
Как отмечено выше, nmap может автоматически изменять время
|
||
задержки между отправкой пакетов. Это может давать лучшие
|
||
результаты при сканировании, но значительно замедлять его. По
|
||
умолчанию (без включенной '-Т' опции), nmap может изменять время
|
||
задержки между отправкой пакетов до 1 в секунду. Эта опция
|
||
позволяет установить большее или меньшее максимальное значение.
|
||
.SH СПОСОБЫ ЗАДАНИЯ ЦЕЛИ
|
||
Всё, что не является опцией (или аргументом опции) nmap интерпретирует
|
||
как адрес сканируемой цели. Простейший вариант - указать имена или ip-адреса хостов в командной строке. Если вы хотите просканировать подсеть
|
||
ip-адресов, вы можете дополнить
|
||
.B /маску
|
||
сети к ip-адресу. Маска должна
|
||
быть в диапазоне от 0 (сканировать весь Интернет) до 32 (сканировать
|
||
единственный хост). Используйте /24 для сканирования целой сети класса
|
||
"С" и /16 для сети класса "В".
|
||
.Sp
|
||
Nmap также позволяет более гибко указать целевые IP-адреса, используя
|
||
списки и диапазоны для каждого их элемента. Например, чтобы
|
||
просканировать подсеть класса "B" с адресом 192.168.*.*. в командной
|
||
строке вы можете указать "
|
||
.B 192.168.*.*
|
||
" или "
|
||
.B 192.168.0-255.0-255
|
||
" или даже "
|
||
.B 192.168.1-50,51-255.1,2,3,4,5-255
|
||
". И, конечно же, вы можете
|
||
использовать маску - "
|
||
.B 192.168.0.0/16"
|
||
. Если вы используете астериск
|
||
("*"), помните, что некоторые командные интерпретаторы требуют указывать
|
||
"\" перед этим символом, или другие спецсимволы.
|
||
.Sp
|
||
Ещё одним вариантом задания адресов является использование префикса.
|
||
Например, что бы просканировать все адреса в сети, заканчивающиеся на
|
||
.6.7 можно задать "*.*.6.7".
|
||
.SH ПРИМЕРЫ
|
||
В этом разделе приводятся некоторые примеры использования nmap, от
|
||
простых до более сложных.
|
||
.Sp
|
||
.B nmap -v target.example.com
|
||
.Sp
|
||
Сканировать все зарезервированные TCP-порты на хосте target.example.com.
|
||
Опция '-v' означает включить режим подробного отчета о ходе процесса
|
||
сканирования.
|
||
.Sp
|
||
.B nmap -sS -O target.example.com/24
|
||
.Sp
|
||
Запускает SYN-сканирование (-sS) всех 255(маска /24) машин с адресами
|
||
класса "C", одной из которых является target.example.com. Также
|
||
осуществляется определение ОС (-O) каждого из сканируемых хостов. Для
|
||
выполнения этих действий вам необходим статус root.
|
||
.Sp
|
||
.B nmap -sX -p 22,53,110,143,4564 198.116.*.1-127
|
||
.Sp
|
||
Запускает Xmas-сканирование (-sX) первой половины адресов (0-127) каждой
|
||
из 255 подсетей класса "B" адресного пространства 128.210.*.*. На этих
|
||
хостах сканируются 22, 53, 110, 143 и 4564 порты. Заметьте, что Xmas-сканирование работает с ОС Windows, CISCO, IRIX, HP/UX и BSDI машинами.
|
||
.Sp
|
||
.B nmap -v --randomize_hosts -p 80 *.*.2.3-5
|
||
.Sp
|
||
Вместо сканирования конкретных адресных диапазонов, иногда бывает
|
||
интересно сканировать хосты, выбранные случайным образом. Эта команда
|
||
ищет веб-сервера, ip-адрес которых оканчивается на .2.3, .2.4 и .2.5.
|
||
Если ваш статус root, вы также можете просканировать порты обнаруженных
|
||
хостов, указав опцию '-sS'. Вы можете найти много интересных машин,
|
||
адреса которых начинаются на 127. Для этого укажите вместо первого
|
||
астериска '127-222'.
|
||
.Sp
|
||
.B host -l company.com | cut -d -f 4 | ./nmap -v -iL -
|
||
.Sp
|
||
Просмотреть серверы DNS зоны и найти хосты в домене company.com, передав
|
||
затем в nmap их адреса. Так выглядит команда для GNU/Linux, но для других
|
||
ОС она может выглядеть несколько иначе.
|
||
.SH ОШИБКИ
|
||
Ошибки? Какие ошибки? Если вы нашли ошибки - просьба незамедлительно
|
||
сообщить о них. (желательно присылать и исправления :-) ). Не забывайте
|
||
также присылать новые отпечатки ОС для пополнения общей базы. Отправляйте
|
||
информацию на e-mail fyodor[@]insecure.org или в конференцию http://seclists.org/#nmap-dev.
|
||
.SH АВТОР
|
||
.Sp
|
||
Fyodor
|
||
.I <fyodor@insecure.org>
|
||
.SH РАСПРОСТРАНЕНИЕ
|
||
Новейшую версию nmap вы можете скачать по адресу http://www.insecure.org/nmap/
|
||
.Sp
|
||
Права на Nmap Security Scanner принадлежат 1996-2004 Insecure.Com LLC.
|
||
Nmap также является зарегистрированной торговой маркой Insecure.Com LLC.
|
||
Эта программа является бесплатным программным обеспечением. Вы можете
|
||
свободно распространять и/или модифицировать ее в соответствии с
|
||
требованиями GNU General Public License, опубликованной Free Software
|
||
Foundation; Версия 2. Если вы хотите использовать технологии nmap в
|
||
частных программных продуктах - мы можем продать альтернативные лицензии.
|
||
Обращайтесь на sales@insecure.com
|
||
.Sp
|
||
ЭТА ПРОГРАММА ПОСТАВЛЯЕТСЯ БЕЗ ПРЕДОСТАВЛЕНИЯ КАКИХ-ЛИБО ГАРАНТИЙ.
|
||
.Sp
|
||
Этот продукт также включает в себя программное обеспечение произведённое
|
||
Apache Software Foundation (http://www.apache.org/)
|
||
.Sp
|
||
Авторские права на библиотеку PCRE (Perl Compatible Regular Expressions),
|
||
созданную Philip Hazel, принадлежат Кэмбриджскому Университету. Подробнее - http://www.pcre.org/
|
||
.Sp
|
||
Библиотека Libpcap распространяется вместе с nmap и авторские права на
|
||
неё принадлежат Van Jacobson, Craig Leres и Steven McCanne, Национальная
|
||
лаборатория Lawrence Berkley Калифорнийского университета, Беркли,
|
||
Калифорния. Сейчас эта библиотека сопровождается http://www.tcpdump.org.
|
||
.Sp
|
||
Nmap опционально может быть скомпилирован с поддержкой OpenSSL. Подробнее - http://www.openssl.org/.
|
||
.Sp
|
||
Перевод руководства пользователя на русский : Айви Ризз 5B43694E5D |