• Открыта запись на вторую часть курса по анонимности и безопасности в сети интернет "Paranoid II" от команды codeby. Анонимные роутеры, Подъём, настройка и администрирование Tor-ноды, Работа с железом ПК, Удаление аппаратных закладок, Минимизация рисков, Авторские разработки и многое другое. Подробнее ...

Статья Книга по Nmap на русском

The Codeby

The Codeby

ООО Кодебай
30.12.2015
3 249
4 660
Книга по Nmap на русском

Оглавление
Информация по скриптам Nmap (на английском):
Самая последня версия документации по Nmap (на английском):
Официальная книга по Nmap от создателей Nmap (на английском):
Преамбула

nmap — Утилита для исследования сети и сканер портов

Nmap (“Network Mapper”) это утилита с открытым исходным кодом для исследования сети и проверки безопасности. Она была разработана для быстрого сканирования больших сетей, хотя прекрасно справляется и с единичными целями. Nmap использует сырые IP пакеты оригинальными способами, чтобы определить какие хосты доступны в сети, какие службы (название приложения и версию) они предлагают, какие операционные системы (и версии ОС) они используют, какие типы пакетных фильтров/брандмауэров используются и еще дюжины других характеристик. В тот время как Nmap обычно используется для проверки безопасности, многие сетевые и системные администраторы находят ее полезной для обычных задач, таких как контролирование структуры сети, управление расписаниями запуска служб и учет времени работы хоста или службы.

Выходные данные Nmap это список просканированных целей с дополнительной информацией по каждой в зависимости от заданных опций. Ключевой информацией является “таблица важных портов”. Эта таблица содержит номер порта, протокол, имя службы и состояние. Состояние может иметь значение open (открыт), filtered (фильтруется), closed (закрыт) или unfiltered (не фильтруется). Открыт означает, что приложение на целевой машине готово для установки соединения/принятия пакетов на этот порт. Фильтруется означает, что брандмауэр, сетевой фильт или какая-то другая помеха в сети блокирует порт, и Nmap не может установить открыт этот порт или закрыт. Закрытые порты не связаны ни с каким приложение, так что они могут быть открыты в любой момент. Порты расцениваются как не фильтрованные, когда они отвечают на запросы Nmap, но Nmap не может определить открыты они или закрыты. Nmap выдает комбинации открыт|фильтруется и закрыт|фильтруется, когда не может определить, какое из этих двух состояний описывает порт. Эта таблица также может предоставлять детали о версии программного обеспечения, если это было запрошено. Когда осуществляется сканирование по IP протоколу (-sO), Nmap предоставляет информацию о поддерживаемых IP протоколах, а не об открытых портах.

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

Типичное сканирование с использованием Nmap показано в Примере 1. Единственные аргументы, использованные в этом примере это -A, для определения версии ОС, сканирования с использованием скриптов и трассировки; -T4 для более быстрого выполнения; затем два целевых хоста.

Пример 1. Типичный пример сканирования с помощью Nmap:
Код:
# nmap -A -T4 scanme.nmap.org playground

Starting Nmap ( https://nmap.org/ )
Interesting ports on scanme.nmap.org (64.13.134.52):
(The 1663 ports scanned but not shown below are in state: filtered)
PORT    STATE  SERVICE VERSION
22/tcp  open   ssh     OpenSSH 3.9p1 (protocol 1.99)
53/tcp  open   domain
70/tcp  closed gopher
80/tcp  open   http    Apache httpd 2.0.52 ((Fedora))
113/tcp closed auth
Device type: general purpose
Running: Linux 2.4.X|2.5.X|2.6.X
OS details: Linux 2.4.7 - 2.6.11, Linux 2.6.0 - 2.6.11

Interesting ports on playground.nmap.org (192.168.0.40):
(The 1659 ports scanned but not shown below are in state: closed)
PORT     STATE SERVICE       VERSION
135/tcp  open  msrpc         Microsoft Windows RPC
139/tcp  open  netbios-ssn
389/tcp  open  ldap?
445/tcp  open  microsoft-ds  Microsoft Windows XP microsoft-ds
1002/tcp open  windows-icfw?
1025/tcp open  msrpc         Microsoft Windows RPC
1720/tcp open  H.323/Q.931   CompTek AquaGateKeeper
5800/tcp open  vnc-http      RealVNC 4.0 (Resolution 400x250; VNC port: 5900)
5900/tcp open  vnc           VNC (protocol 3.8)
MAC Address: 00:A0:CC:63:85:4B (Lite-on Communications)
Device type: general purpose
Running: Microsoft Windows NT/2K/XP
OS details: Microsoft Windows XP Pro RC1+ through final release
Service Info: OSs: Windows, Windows XP

Nmap finished: 2 IP addresses (2 hosts up) scanned in 88.392 seconds
Сводка опций

Использование:
nmap [Тип(ы) сканирования] [Опции] {заданные_цели}

ОПРЕДЕЛЕНИЕ ЦЕЛИ СКАНИРОВАНИЯ:
Может работать с именами хостов, IP адресами, сетями и т.д.
Например: scanme.nmap.org, microsoft.com/24, 192.168.0.1; 10.0.0-255.1-254
-iL <ввести_имя_файла>: Импорт из списка хостов/сетей
-iR <количество хостов>: Выбор случайных целей
–exclude <host1[,host2][,host3],…>: Исключить хосты/сети
–excludefile <файл_с_исключениями>: Исключить список из файла
ОБНАРУЖЕНИЕ ХОСТОВ:
-sL: Сканирование с целью составления списка – просто составить список целей для сканирования
-sn: Пинг сканирование – просто определить, работает ли хост
-Pn: Расценивать все хосты как работающие – пропустить обнаружение хостов
-PS/PA/PU/PY[список_портов]: TCP SYN/ACK, UDP или SCTP пингование заданных хостов
-PE/PP/PM: Пингование с использованием ICMP эхо запросов, запросов временной метки и сетевой маски
-PO[список_протоколов]: Пингование с использованием IP протокола
-n/-R: Никогда не производить DNS разрешение/Всегда производить разрешение [по умолчанию: иногда]
–dns-servers <сервер1[,сервер2],…>: Задать собственные DNS сервера
–system-dns: Использовать системный DNS преобразователь
–traceroute: Провести трассировку (проследить путь) до каждого хоста
РАЗЛИЧНЫЕ ПРИЕМЫ СКАНИРОВАНИЯ:
-sS/sT/sA/sW/sM: TCP SYN/с использованием системного вызова Connect()/ACK/Window/Maimon сканирования
-sU: UDP сканирование
-sN/sF/sX: TCP Null, FIN и Xmas сканирования
–scanflags <флаги>: Задать собственные TCP флаги
-sI <зомби_хост[:порт]>: "Ленивое" (Idle) сканирование
-sY/sZ: SCTP INIT/COOKIE-ECHO сканирование
-sO: Сканирование IP протокола
-b <FTP_хост>: FTP bounce сканирование
ОПРЕДЕЛЕНИЕ ПОРТОВ И ПОРЯДКА СКАНИРОВАНИЯ:
-p <диапазон_портов>: Сканирование только определенных портов
Пример: -p22; -p1-65535; -p U:53,111,137,T:21-25,80,139,8080,S:9
-F: Быстрое сканирование – Сканирование ограниченного количества портов
-r: Сканировать порты последовательно – не использовать случайный порядок портов
–top-ports <количество_портов>: Сканировать <количество_портов> наиболее распространенных портов
–port-ratio <рейтинг>: Сканировать порты с рейтингом большим чем <рейтинг>
ОПРЕДЕЛЕНИЕ СЛУЖБ И ИХ ВЕРСИЙ:
-sV: Исследовать открытые порты для определения информации о службе/версии
–version-intensity <уровень>: Устанавливать от 0 (легкое) до 9 (пробовать все запросы)
–version-light: Ограничиться наиболее легкими запросами (интенсивность 2)
–version-all: Использовать каждый единичный запрос (интенсивность 9)
–version-trace: Выводить подробную информацию о процессе сканирования (для отладки)
СКАНИРОВАНИЕ С ИПОЛЬЗОВАНИЕМ СКРИПТОВ:
-sC: эквивалентно опции –script=default
–script=<Lua скрипты>: <Lua скрипты> это разделенный запятыми список директорий, файлов скриптов или категорий скриптов
–script-args=<имя1=значение1,[имя2=значение2,…]>: Передача аргументов скриптам
–script-args-file=filename: Передача NSE скриптам аргументов в файле
–script-trace: Выводить все полученные и отправленные данные
–script-updatedb: Обновить базу данных скриптов
–script-help=<Lua скрипты>: Показ помощи о скриптах. <Lua скрипты>разделённый запятой список скриптов или список категорий скриптов.
ОПРЕДЕЛЕНИЕ ОС:
-O: Активировать функцию определения ОС
–osscan-limit: Использовать функцию определения ОС только для "перспективных" хостов
–osscan-guess: Угадать результаты определения ОС
ОПЦИИ УПРАВЛЕНИЯ ВРЕМЕНЕМ И ПРОИЗВОДИТЕЛЬНОСТЬЮ:
Опции, принимающие аргумент <время>, задаются в миллисекундах, пока вы не добавите 's' (секунды), 'm' (минуты), или 'h' (часы) к значению (напр. 30m).
-T<0-5>: Установить шаблон настроек управления временем (больше – быстрее)
–min-hostgroup/max-hostgroup <кол_хостов>: Установить размер групп для параллельного сканирования
–min-parallelism/max-parallelism <кол_хостов>: Регулирует распараллеливание запросов
–min-rtt-timeout/max-rtt-timeout/initial-rtt-timeout <время>: Регулирует время ожидания ответа на запрос
–max-retries <количество_попыток>: Задает максимальное количество повторных передач запроса
–host-timeout <время>: Прекращает сканирование медленных целей
–scan-delay/–max-scan-delay <время>: Регулирует задержку между запросами
–min-rate <число>: Посылать запросы с интенсивностью не меньше чем <число> в секунду
–max-rate <число>: Посылать запросы с интенсивностью не больше чем <число> в секунду
ОБХОД БРАНДМАУЭРОВ/IDS:
-f; –mtu <значение>: Фрагментировать пакеты (опционально с заданным значениме MTU)
-D <фикт_хост1,фикт_хост2[,ME],…>: Маскировка сканирования с помощью фиктивных хостов
-S <IP_адрес>: Изменить исходный адрес
-e <интерфейс>: Использовать конкретный интерфейс
-g/–source-port <номер_порта>: Использовать заданный номер порта
–proxies <url1,[url2],…>: Ретранслировать соединения через прокси HTTP/SOCKS4
–data-length <число>: Добавить произвольные данные к посылаемым пакетам
–ip-options <опции>: Посылать пакет с заданным ip опциями
–ttl <значение>: Установить IP поле time-to-live (время жизни)
–spoof-mac <MAC_адрес/префикс/название производителя>: Задать собственный MAC адрес
–badsum: Посылать пакеты с фиктивными TCP/UDP/SCTP контрольными суммами
ВЫВОД РЕЗУЛЬТАТОВ:
-oN/-oX/-oS/-oG Выводить результаты нормального, XML, s|<rIpt kIddi3, и Grepable формата вывода, соответственно, в заданный файл
-oA <базовове_имя_файла>: Использовать сразу три основных формата вывода
-v: Увеличить уровень вербальности (задать дважды или более для увеличения эффекта)
-d: Увеличить или установить уровень отладки (до 9)
–reason: Показать причину нахождения порта в определённом состоянии
–open: Показывать только открытые (или возможно открытые) порты
–packet-trace: Отслеживание принятых и переданных пакетов
–iflist: Вывести список интерфейсов и роутеров (для отладки)
–log-errors: Записывать ошибки/предупреждения в выходной файл нормального режима
–append-output: Добавлять в конец, а не перезаписывать выходные файлы
–resume <имя_файла>: Продолжить прерванное сканирование
–stylesheet <путь/URL>: Устанавливает XSL таблицу стилей для преобразования XML вывода в HTML
–webxml: Загружает таблицу стилей с Nmap.Org
–no-stylesheet: Убрать объявление XSL таблицы стилей из XML
РАЗЛИЧНЫЕ ОПЦИИ:
-6: Включить IPv6 сканирование
-A: Активировать функции определения ОС и версии, сканирование с использованием скриптов и трассировку
–datadir <имя_директории>: Определяет место расположения файлов Nmap
–send-eth/–send-ip: Использовать сырой уровень ethernet/IP
–privileged: Подразумевать, что у пользователя есть все привилегии
–unprivileged: Подразумевать, что у пользователя нет привилегий для использования сырых сокетов
-V: Вывести номер версии
-h: Вывести эту страницу помощи
ИНТЕРАКТИВНЫЕ КОМАНДЫ:
СПРАВКА: Не будет работать с “sudo nmap”, поэтому используйте “sudo –i”
Во время работы вы можете делать запросы в nmap следующими ключами:
? Показать эту информацию
v/V увеличить/уменьшить вербальность
d/D увеличить/уменьшить отладку
p/P включить/отключить трассировку пакетов
и другие ключи, которые будут напечатаны в статусе
ПРИМЕРЫ:
nmap -v -A scanme.nmap.org
nmap -v -sn 192.168.0.0/16 10.0.0.0/8
nmap -v -iR 10000 -Pn -p 80
Определение цели сканирования

В командной строке Nmap все, что не является опцией (или аргументом опции), рассматривается как цель сканирования. В простейшем случае для сканирования используется IP адрес или сетевое имя целевой машины.

Иногда необходимо просканировать целую сеть. Для этого Nmap поддерживает CIDR адресацию. Вы можете добавить /<кол-во бит> к IP адресу или сетевому имени и Nmap просканирует каждый IP адрес, для которого первые <кол-во бит> такие же как и у заданного хоста. Например, 192.168.10.0/24 просканирует 256 хостов между 192.168.10.0 (бинарное: 11000000 10101000 00001010 00000000) и 192.168.10.255 (бинарное: 11000000 10101000 00001010 11111111) включительно. 192.168.10.40/24 сделает абсолютно то же самое. Зная, что IP адрес scanme.nmap.org 64.13.134.52, при записи типа scanme.nmap.org/16 будет произведено сканирование 65,536 IP адресов между 64.13.0.0 и 64.13.255.255. Наименьшее допустимое значение /0, при котором будет просканирован весь Интернет. Наибольшее значение /32, при котором будет просканирован только заданный хост или IP адрес, т.к. все адресные биты заблокированы.

CIDR нотация коротка, однако не всегда достаточно гибка. Например, вы хотите просканировать 192.168.0.0/16, но пропустить все IP-ки оканчивающиеся на .0 или .255, т.к. обычно это широковещательные адреса. Nmap может осуществить такое сканирование путем задания диапазонов в октетах. Вместо определния обычного IP адреса, вы можете определить для каждого октета либо разделенный запятыми список чисел, либо диапазон. Например, 192.168.0-255.1-254 пропустит все адреса в диапазоне оканчивающиеся на .0 и .255. Диапазоны не обязательно задавать только в последних октетах: при записи 0-255.0-255.13.37 будет произведено сканирование всех адресов в Интернете оканчивающихся на 13.37. Такой тип сканирования может быть полезен для обозрения просторов Интернета и различных исследований.

IPv6 адреса могут быть определны только в форме, полностью соответствующей правильной форме записи IPv6 адресов. CIDR и использование диапазонов в октетах не применимо к IPv6 адресам, т.к. они редко используются.

Вы можете передавать в командной строке Nmap различные варианты определения целей, не обязательно одного типа. Команда nmap scanme.nmap.org 192.168.0.0/16 10.0.0,1,3-7.0-255 сделает то, что вы ожидаете.

Цели сканирования обычно задаются в командной строке, и существуют различные опции контроля выбора целей:
Код:
-iL <имя_файла> (Ввод из списка)
Считывает цели из <имя_файла>. Хотя передача большого списка хостов для сканирования является обычным явлением, это не удобно. Например, ваш DHCP сервер передают вам список из 10,000 используемых им на данный момент адресов, и вы хотите его просканировать. Или, возможно, вы хотите просканировать все IP адреса, кроме переданных им, чтобы выявить несанкционированное использование статических IP адресов. Просто сгенерируйте список хостов для сканирования и передайте имя файла в Nmap как аргумент для -iL опции. Записи в файле могут находиться в любой приемлимой для Nmap форме (IP адреса, сетевые имена, CIDR, IPv6, или диапазоны в октетах). Каждая запись должна быть отделена пробелом или несколькими, символами табуляции или символами перехода на новую строку. Вы можете передать в качестве аргумента дефис(-) как имя файла, если хотите, чтобы Nmap считывала список хостов из стандартного ввода, а не из файла.
Код:
-iR <кол-во хостов> (Выбирает произвольные цели)
Для сканирования в пределах всего Интернета или каких-либо исследований, вам, возможно, понадобится выбрать цели произвольно. Аргумент <кол-во хостов> определяет сколько необходимо сгенерировать IP адресов. Неподходящие IP адреса, такие как частные, широковещательные или нелокализованные диапазоны адресов автоматически пропускаются. Аргумент 0 может быть передан для бесконечного сканирования. Имейте в виду, что некоторым системным администраторам может не понравиться неразрешенное сканирование их сетей и они могут пожаловаться. Используйте эту опцию на свой страх и риск! Если в дождливый денек вам будет скучно, попробуйте команду nmap -sS -PS80 -iR 0 -p 80 для сканирования произвольных веб-серверов.
Код:
–exclude <хост1>[,<хост2>[,…]] (Исключить хосты/сети)
Определяет разделенный запятыми список целей, которые необходимо исключить из сканирования, даже если они являются частью заданного вами диапазона сканирования. Передаваемый список использует стандартный синтаксис Nmap, поэтому может содержать сетевые имена, CIDR адресацию, диапазоны в октетах и т.д. Эта опция может быть полезна, если сеть, которую вы хотите просканировать, содержит сервера или системы, негативно реагирующие на сканирование портов, или подсети, администрируемые другими людьми.
Код:
–excludefile <имя_файла> (Исключить список из файла)
Эта опция делает то же самое, что и –exclude, за исключением того, что цели для исключения находятся в разделенном пробелами, символами табуляции или символами перехода на новую строку <файле>, а не в командной строке.

К следующей части книги Как обнаружить хосты с помощью nmap
 
GrayFOX

GrayFOX

К удалению 21.01.2019
28.03.2018
1
0
а pdf или другой формат в виде книги будет? было-бы очень полезно, но и за это спасибо!
 
A

am29f010b

а pdf или другой формат в виде книги будет? было-бы очень полезно, но и за это спасибо!
Гуз Александр (Guz Alexander) <kalimatas@gmail.com>

Этот русский вариант Справочного Руководства Nmap является переводом версии 6184 оригинальной английской версии[1]. Хотя я надеюсь, что данный перевод сделает Nmap более доступной для русскоязычных пользователей, я не могу гарантировать, что он является полным или является перевод последней официальной английской версии. Эта работа может модифицироваться или распространяться на основе лицензии Creative Commons Attribution License[2].

 
Мы в соцсетях: