Nmap что за программа

nmap — это аббревиатура от «Network Mapper», на русский язык наиболее корректно можно перевести как «сетевой картограф». Возможно, это не лучший вариант перевода на русский язык, но он довольно точно отображает суть — инструмент для исследования сети и проверки безопасности. Утилита кроссплатформенна, бесплатна, поддерживаются операционных системы Linux, Windows, FreeBSD, OpenBSD, Solaris, Mac OS X.

Рассмотрим использование утилиты в Debian. В стандартной поставке дистрибутива nmap отсутствует, установим его командой

# aptitude install nmap

Nmap умеет сканировать различными методами — например, UDP, TCP connect(), TCP SYN (полуоткрытое), FTP proxy (прорыв через ftp), Reverse-ident, ICMP (ping), FIN, ACK, SYN и NULL-сканирование. Выбор варианта сканирования зависит от указанных ключей, вызов nmap выглядит следующим образом:

Для опытов возьмем специальный хост для экспериментов, созданный самими разработчиками nmap — scanme.nmap.org. Выполним от root’а
Ключи сканирования задавать необязательно — в этом случае nmap проверит хост на наличие открытых портов и служб, которые слушают эти порты.

КАК ПОЛЬЗОВАТЬСЯ NMAP | СКАНИРОВАНИЕ ПОРТОВ | Open Source


Запустим командой:

Через несколько секунд получим результат:
Interesting ports on scanme.nmap.org (74.207.244.221):
Not shown: 998 closed ports
PORT STATE SERVICE
22/tcp open ssh
80/tcp open http

Ничего необычного, ssh на стандартном порту и http на 80. Nmap распознаёт следующие состояния портов: open, filtered, closed, или unfiltered. Open означает, что приложение на целевой машине готово для принятия пакетов на этот порт. Filtered означает, что брандмауэр, фильтр, или что-то другое в сети блокирует порт, так что Nmap не может определить, является ли порт открытым или закрытым.

Closed — не связанны в данный момент ни с каким приложением, но могут быть открыты в любой момент. Unfiltered порты отвечают на запросы Nmap, но нельзя определить, являются ли они открытыми или закрытыми.

# nmap -O scanme.nmap.org

Хинт: Если во время сканирования нажать пробел — можно увидеть текущий прогресс сканирования и на сколько процентов он выполнен. Через несколько секунд получаем ответ, в котором пока что интересна строчка Device type:

Device type: general purpose|WAP|webcam|storage-misc
Running (JUST GUESSING) : Linux 2.6.X|2.4.X (93%), AXIS Linux 2.6.X (89%), Linksys Linux 2.4.X (89%)
Aggressive OS guesses: Linux 2.6.17 — 2.6.28 (93%), Linux 2.6.9 — 2.6.27 (93%), Linux 2.6.24 (Fedora 8) (92%), Linux 2.6.18 (Slackware 11.0) (92%), Linux 2.6.19 — 2.6.26 (92%), OpenWrt (Linux 2.4.32) (91%), Linux 2.6.22 (91%), Linux 2.6.22 (Fedora Core 6) (90%), Linux 2.6.13 — 2.6.27 (90%), Linux 2.6.9 — 2.6.18 (90%)
No exact OS matches for host (test conditions non-ideal).

Вообще, точную версию ядра средствами nmap определить невозможно, но примерную дату «свежести» и саму операционную систему определить можно. Можно просканировать сразу несколько хостов, для этого надо их перечислить через пробел:

Как использовать Nmap. Подробная инструкция

# nmap -O example.com example2.com

Вернемся к нашему подопытному хосту. Хочется узнать поподробнее, какой используется софт. Попробуем уточнить полученные данные с помощью ключей -sV:

# nmap -sV example.com example2.com

PORT STATE SERVICE VERSION
22/tcp open ssh OpenSSH 5.3p1 Debian 3ubuntu7 (protocol 2.0)
80/tcp open http Apache httpd 2.2.14 ((Ubuntu))
Service Info: OS: Linux

Прогресс налицо — мы узнали точные названия используемых служб и даже их версии, а заодно узнали точно, какая операционная система стоит на сервере. С расшифровкой никаких проблем не возникает, все вполне понятно.

Агрессивное сканирование можно провести, указав ключ -A

# nmap -A scanme.nmap.org

Nmap выведет очень много информации, я не стану приводить пример. Сканирование может длится довольно долго, занимая несколько минут.

В локальных сетях или просто имея на руках диапазон ip адресов, удобно проверить их на занятость с помощью ключей -sP:

# nmap -sP 192.168.1.0/24

Сканирование проходит довольно быстро, так как по сути это обычный ping-тест, отвечает ли хост на ping. Следует учесть, что хост может не отвечать на ping из-за настроек фаерволла. Если нужный участок сети нельзя ограничить маской, можно указать диапазон адресов, с какого и по какой надо провести сканирование. Например, есть диапазон адресов с 192.168.1.2 до 192.168.1.5. Тогда выполним:

Читайте также:
Simplicity что за программа

# nmap -sP 192.168.1.2-5

Ответ будет выглядеть так:

Host 192.168.1.2 is up (0.0023s latency)
Host 192.168.1.3 is up (0.0015s latency)
Host 192.168.1.4 is up (0.0018s latency)
Host 192.168.1.5 is up (0.0026s latency)

В моем случае все ip в данный момент были в сети.
Это далеко не все возможности nmap, но уместить их в рамках одной статьи несколько сложновато.

Если вам ближе GUI — есть замечательная утилита Zenmap — графическая оболочка для nmap, умеющая заодно и строить предполагаемую карту сети.

Хочу предупредить, что сканирование портов на удаленных машинах может нарушать закон.
UDPInflame уточнил, что сканирование портов все-таки не является противозаконным.

Источник: habr.com

Прокачай свой nmap! Используем популярный сканер для обхода фаерволов, дирбастинга, DoS-атак и многого другого

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

WARNING

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

Базовые возможности

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

$ nmap 192.168.0.1

Это действительно так, но стоит иметь в виду две особенности реализации Nmap. Первая: запущенный с правами обычного пользователя Nmap крайне неэффективен. Весь процесс сканирования при этом фактически сводится к попытке установить полноценное соединение с каждым из портов. В случае протокола TCP это значит, что Nmap пошлет на удаленную сторону пакет SYN; если запрошенный порт открыт, машина ответит пакетом SYN/ACK, после чего Nmap отправит пакет ACK и только потом закроет соединение с помощью пакета FIN.

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

Совсем по-другому Nmap ведет себя, когда запущен с правами root:

$ sudo nmap 192.168.0.1

В этом случае он полностью берет на себя формирование пакетов и управление соединением. Подключение к открытым портам будет выглядеть так: Nmap посылает SYN, машина отвечает SYN/ACK, Nmap посылает FIN, разрывая наполовину открытое соединение (это называется TCP SYN сканирование). В результате сервис, висящий на порте, не логирует попытку соединения, а Nmap способен обнаружить брандмауэр, который просто отбрасывает SYN-пакеты вместо того, чтобы отправить в ответ SYN/ACK (порт открыт) или FIN (порт закрыт), как это должна делать операционная система по умолчанию. Кроме того, этот способ сканирования намного более производительный.

Вторая особенность Nmap заключается в том, что на самом деле он сканирует не весь диапазон портов (65 536), а только 1000 портов типовых служб, определенных в файле /usr/share/nmap/nmap-services . Так что, если кто-то повесит сервис на нестандартный порт, которого просто нет в этом файле, Nmap его не увидит. Изменить подобное поведение можно при помощи такой команды:

$ sudo nmap -sS -sU -p 1-65535 192.168.0.1

Nmap будет использовать сканирование типа TCP SYN и UDP-сканирование для всего диапазона портов.

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

Одна из интересных особенностей Nmap в том, что он способен не только определить состояние порта (открыт, закрыт, фильтруется), но и идентифицировать имя демона/службы на этом порте, а в некоторых случаях даже его версию. Для этого Nmap может применять несколько разных техник, например подключиться к порту 80 и послать HTTP-запрос для идентификации имени и версии веб-сервера либо использовать информацию о том, как сервис отвечает на те или иные пакеты и запросы.

Читайте также:
Kyocera print center что это за программа

Все правила идентификации служб и их версий определены в файле /usr/share/nmap/nmap-service-probes , а заставит Nmap их применить флаг -sV :

$ sudo nmap -sV 192.168.0.1

Причем есть возможность даже усилить попытки Nmap определить службу с помощью флага —version-all :

$ sudo nmap -sV —version-all 192.168.0.1

Однако обычно это не повышает качество распознавания.

Nmap не смог определить версию HTTP-сервера, но узнал его имя

Определяем имя и версию ОС

Наверное, это одна из самых известных функций Nmap. Отправляя машине нестандартные пакеты и сопоставляя ее ответ (время ответа, значения полей TTL, MTU, ACK и многое другое) с «базой отпечатков ОС» ( /usr/share/nmap/nmap-os-db ), Nmap способен достаточно точно определить запущенную на машине ОС. Все, что нужно сделать, — это запустить Nmap с флагом -O :

$ sudo nmap -O 192.168.0.1

Однако далеко не всегда Nmap способен на 100% правильно угадать ОС. Если сделать это не получится, Nmap выведет на экран наиболее близкие к правильному варианты, заботливо снабдив их «процентом попадания»: 90%, 82%.

Более того, ты можешь пойти еще дальше и воспользоваться флагом -A , чтобы заставить Nmap попытаться определить версию ОС, версию служб и даже провести более детальный анализ служб с помощью скриптов NSE (о них позже):

$ sudo nmap -A 192.168.0.1

Предположения Nmap о версии ОС сканируемой машины

Повышаем скорость сканирования

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

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

$ sudo nmap -T3 192.168.0.1

В данном случае мы выбрали шаблон номер 3. Это дефолтовое значение, своеобразный компромисс между скоростью и точностью сканирования в медленных сетях. Однако в современных условиях, когда минимальная скорость проводного доступа в сеть уже перешагнула за 30 Мбит/с, лучшим выбором будет -T4 или даже -T5 . Последний стоит применять только в стабильных сетях без провалов скорости.

Более низкие значения предназначены для обхода систем обнаружения вторжений. Например, -T0 отключает многопоточное сканирование и устанавливает задержку между пробами портов в пять минут; потратив весь день (ночь) на сканирование, ты можешь надеяться, что сама попытка сканирования будет не замечена (тем более что Nmap перебирает порты в случайном порядке). Шаблон -T1 — более быстрый режим с задержкой в 15 с, -T2 — 0,4 с, -T3 — 10 мс, -T4 — 5 мс.

Режим -T5 в полтора раза более производительный, чем дефолтовый

Присоединяйся к сообществу «Xakep.ru»!

Членство в сообществе в течение указанного срока откроет тебе доступ ко ВСЕМ материалам «Хакера», позволит скачивать выпуски в PDF, отключит рекламу на сайте и увеличит личную накопительную скидку! Подробнее

Евгений Зобнин

Редактор рубрики X-Mobile. По совместительству сисадмин. Большой фанат Linux, Plan 9, гаджетов и древних видеоигр.

Источник: xakep.ru

Обзор настройка и установка утилиты nmap, а так же примеры использования

Nmap это довольно мощный инструмент для работы в сети который пригодится любому кто сталкивается работой в компьютерных сетях особенно если вы работаете в незнакомой для себя сети, например вы фрилансер а не системный администратор у себя на предприятии. Сегодня познакомимся с установкой этой утилиты и приведём примеры как можно её использовать для самых распространённых задач. […]

Утилита nmap

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

в данной статье рассматривается процесс установки и использования Nmap под операционной системой CentOS Linux release 7.7.1908

В командной строке пишем

yum install nmap

команда установки

процесс установки

процесс установки

Далее можно просканировать нашу сеть и понять какие адреса в ней вообще есть и активны

Читайте также:
Программа лира что это

Для этого нам понадобится опция –sP заодно позволяет узнать имя хоста и мак адрес
так как моя тестовая машина находится в 32 подсети то соответственно команда будет выглядеть следующим образом
nmap -sP 192.168.32.0/24

пример вывода сканирования сети

В nmap присутствует возможность помотреть маршрут по которому пакеты идут до заданного хоста, для этого применяется опция –traceroute

рассировка до яндекса

Так же можно посмотреть какие порты открыты для интересующего вас хоста
В простом виде для этого не требуется никаких дополнительных опций
просканируем хост 192.168.32.143
для этого вводим следующую команду

nmap 192.168.32.143

простое сканирование портов

Так же доступно быстрое сканирование портов с помощью опции –F при котором будут сканироваться только порты указанные в файле /usr/share/nmap/nmap-services
выглядит он следующим образом

nmap-services

Порты бывают в разных состояниях а именно:

  1. open – означает что порт открыт и принимает запросы на ТСР или UDP соединение
  2. closed порт доступен , то есть он отвечает нашей утилите но не используется ничем, такие порты могут дать понять что по заданному адресу вообще есть работающая машина
  3. filtered невозможно определить открыт ли порт по тому что фильтрация пакетов фильтрует все запросы nmap до этого порта , делается это брэндмауером или к примеру настройками фаервола на роутере , на такие порты nmap шлет несколько запросов чтобы убедится что дело именно в фильтрации а не в неполадках в сети

Так же nmap умеет определять версию службы которая находится на открытом порте
для этого используется ключ –sV но стоит отметить что такое сканирование занимает довольно много времени , и не стоит слишком сильно полагается на эти данные , так и на данные о службе вообще, так же с этой опцией выводится и тип операционной системы на хосте
Сейчас nmap может распознать примерно 350 служб , а если видит службу которую не может определить он выдаёт специальную информацию о ней и адрес в сети куда её скинуть, благодоря таким вот записям и создаётся база служб в nmap

сканирование версий

Служб так же есть отдельная функция определения ОС на хостах
включается она опцией –о просканируем нашу машину

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

как видим точно узнать версию ОС не удалось но в таких случаях nmap пытается угадать, а так же предлагает перейти по ссылке и если вы точно знаете какая ОС используется на данном хосте , то наполнить набор её характеристик на сайте, этим вы пополните базу данных nmap.

Так же возможно сканировать порты для хостов для целой сети или её фрагментов пример

nmap 192.168.32.0/24

сканирование открытых портов в у хостов в сети

Имеется возможность сохранять результаты сканирования в файл, для этого используется опция –oN Формат следующий:
nmap -oN , пример :

nmap 192.168.32.0/24 -oN /usr/src/test

сохранение в файл

так он выглядит уже открытый на Windows машине с помощью Notepad++

вывод в блокноте

Так же есть вывод в формате XML

Делается всё точно также как и с простым выводом

вывод в XML

вывод в XML

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

пример использования опции -р

Так же можно сканировать сети исключая заведомо ненужные вам хосты, например те которые заведомо негативно будут реагировать на сканирование например исключим сканирование нашего роутера, для этого нам понадобится опция –exclude таким образо команда сканирования будет выглядеть следующим образом

nmap -sP 192.168.32.0/24 —exclude 192.168.32.1

сканирование сети с исключением хостов

Как видим указанный нами хост пропущен и первый в списке становится 192.168.32.2
Так же есть комплексная опция агрессивного сканирования –А которая включает в себя определение операционной системы (-о),сканирования версий протоколов (-sV), сканирование с использованием скриптов(-sC), а так же трасировку(—traceroute)
Стоит отметить что такое сканирование занимает длительное время даже для одного хоста, в моём случае сканирование одной машины заняло 173 секунды, комплексный анализ выглядит следующим образом:

комплексный анализ хоста

комплексный анализ хоста

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

Книга 101 функция Asterisk

Познакомьтесь с возможностями Asterisk. Найдите инструменты, которые помогут вашей компании развиваться.

Источник: voxlink.ru

Рейтинг
( Пока оценок нет )
Загрузка ...
EFT-Soft.ru