Nmap windows как пользоваться

Обновлено: 06.07.2024

Как установить nmap?

Вы также можете сканировать диапазон IP-адресов:

Наконец, вы можете сканировать всю подсеть:

Опция -iL позволяет вам читать список целевых систем, используя текстовый файл. Это полезно для сканирования большого количества хостов / сетей. Создайте текстовый файл следующим образом:

При сканировании большого количества хостов/сетей вы можете исключить хосты из проверки:

Или исключить список с помощью файла /tmp/exclude.txt

Опция -6 включает сканирование IPv6. Синтаксис:

Вы можете идентифицировать приложения и ОС удаленного хоста, используя опцию -O:

Если брандмауэр блокирует стандартные запросы ICMP, попробуйте следующие методы обнаружения хоста:

Это сканирование обходит брандмауэры, фильтрующие только TCP запросы:

Самые популярные сервисы в интернете работают по протоколу TCP. DNS, SNMP и DHCP являются тремя наиболее распространенными службами UDP. Используйте следующий синтаксис для поиска служб UDP:

Этот тип сканирования позволяет определить, какие протоколы IP (TCP, ICMP, IGMP и т. д.) поддерживаются целевыми машинами:

Следующие типы сканирования используют небольшую лазейку в TCP и подходят для проверки безопасности распространенных атак:

Опция -f заставляет nmap использовать крошечные фрагментированные IP-пакеты. Идея состоит в том, чтобы разделить заголовок TCP на несколько пакетов для усложнения фильтрации пакетов.

Опция -D показывает удаленному хосту, что хосты, которые вы указали в качестве приманок, также сканируют целевую сеть. Таким образом, их IDS могут сообщать о 5-10 сканированиях портов с уникальных IP-адресов, но они не будут знать, какой IP сканировал их, а какие были невинными приманками:

Используйте опцию -T:

Попробуйте zenmap. Установить его можно командой:

Fig.02: zenmap in action

zenmap в действии

Этичный хакинг и тестирование на проникновение, информационная безопасность

Что такое Nmap и для чего он нужен?

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

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

Эта программа первоначально написал Gordon Lyon и она с лёгкостью может ответить на следующие вопросы:

  1. Что за компьютеры работают в вашей локальной сети?
  2. Какие IP используются в локальной сети?
  3. Какие порты открыты на удалённой машине?
  4. Какая операционная система у цели?
  5. Какие службы запущены на целевой машине, какая у них версия?
  6. Узнать, заражена ли система вредоносным кодом или вирусом.
  7. Поиск неавторизованных серверов или сетевых служб в вашей сети
  8. Поиск и удаление компьютеров, которые не соответствуют минимальному уровню безопасности организации.

Улучшение в Nmap 7:

Значительное расширение скриптового движка Nmap (Scripting Engine - NSE)

По мере созревания ядра Nmap, всё больше и больше функциональности вместо добавления в него разрабатывается как часть подсистемы NSE. После шестой версии в Nmap 7 был добавлен 171 новый скрипт и 20 библиотек. Примеры включают irewall-bypass, supermicro-ipmi-conf, oracle-brute-stealth и ssl-heartbleed. И NSE сейчас достаточно мощный, чтобы выполнять основные функции, такие как обнаружение хостов (dns-ip6-arpa-scan), сканирование версий (ike-version, snmp-info и т.д..) и шлифование RPC (rpc-grind).

Зрелая поддержка IPv6

Улучшение сканирования IPv6 было важным аспектом в шестом выпуске Nmap, но Nmap 7 превосходит всех с полной поддержкой IPv6 в указании диапазонов в стиле CIDR, «ленивом» (Idle) сканировании, параллельных обратных запросах DNS и большем покрытии NSE.

Обновление инфраструктуры

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

На протяжении 18 лет Nmap постоянно раздвигает границы скорости синхронного сканирования сети и этот релиз не стал исключением. Новые движки Nsock дают увеличение производительности на системах Windows и BSD, переназначение задач предотвращает неприятные крайние случаи на многосетевых системах, а твики NSE ведут к убыстрению сканирований -sV.

Решение по сканированию SSL/TLS

Безопасность транспортного уровня (TLS), как и его предшественник SSL, являются фундаментом безопасности веба, поэтому когда обнаруживаются большие уязвимости вроде Heartbleed, POODLE и FREAK, Nmap отвечает скриптами NSE для обнаружения уязвимости. Скрипт ssl-enum-ciphers script был полностью переделан под выполнение быстрого анализа проблем с развёрнутыми TLS, и были подкручены зонды для сканирования версий в целях быстрого выявления самых новых версий рукопожатий TLS.

Улучшение в Ncat

Утилита Ncat (она входит в пакет Nmap) была принята семейством дистрибутивов Red Hat/Fedora в качестве пакета по умолчанию для команд “netcat” и “nc”. Авторы Nmap очень этому рады. Это сотрудничество позволило победить многие баги и улучшить совместимость с опциями Netcat. Также добавлен встроенный интерпретатор Lua для создания простых, кроссплатформенных демонов и фильтров трафика.

Экстремальная портативность

Nmap является кроссплатформенной программой, которая работает на самых разных необычных и древних системах. Но разработчики поставляют актуальные исполнимые файлы для популярных операционных систем. Nmap 7 чисто работает на Windows 10 и на всех промежуточных версиях вплоть до Windows Vista. По многочисленным просьбам разработчики даже собрали его под Windows XP, хотя этим пользователям рекомендуют обновить их системы. Mac OS X поддерживается с 10.8 Mountain Lion через 10.11 El Capitan. Плюс обновлена поддержка для Solaris и AIX. А у пользователей Linux, как всегда, всё просто.

Примеры опций для сканирования Nmap

Далее небольшая памятка по самым популярным функциям Nmap. Крайне рекомендуется справочный раздел по Nmap на сайте Kali.Tools. Там сделан перевод мануала для Nmap седьмой версии.

Сканирование единичного хоста или IP адреса (IPv4)

Сканировать единичный IP адрес

Сканировать хост по имени

Сканировать хост по имени в вербальном режиме (больше информации)

Сканировать множество IP адресов или подсеть (IPv4)

работа с однотипными подсетями, например 192.168.1.0/24

Вы также можете просканировать диапазон IP адресов:

Вы можете просканировать диапазон IP адресов используя подстановочный символ:

Наконец, вы можете просканировать всю подсеть:

Прочитать список хостов, сетей из файла (IPv4)

Опция -iL позволяет вам прочитать список системных целей используя текстовый файл. Это полезно при большом количестве хостов/сетей. Создайте текстовый файл:

Исключение хостов, сетей (IPv4)

При сканировании большого числа хостов, сетей, вы можете исключить хосты из сканирований:

Или исключите список, который взят из файла названного /tmp/exclude.txt

Составление списка работающих хостов без сканирования портов

Включить скрипт определения ОС и версии ПО (IPv4)

Узнать, защищён ли хост/сеть файерволом

Сканирование хоста при защите файерволом

Просканировать IPv6 хост/адрес

Опция -6 включает IPv6 сканирование. Синтаксис следующий:

Просканировать сеть и узнать, какие сервера и устройства работают

Обнаружение хостов или пинг сканирование (без выполнения сканирования портов - только определение, какие хосты онлайн):

Как выполнить быстрое сканирование?

Показать причину, по которой порт в конкретном состоянии

Показать интерфейсы и маршруты хоста

Как просканировать конкретный порт?

Просканировать 80й порт

Просканировать TCP порт 80

Просканировать UDP порт 53

Просканировать два порта

Просканировать диапазон портов

Скомбинировать все опции

Просканировать все порты

Просканировать порты с наивысшими рейтингами (самые распространённые), рейтинг указывается целым числом больше 1

Как узнать удалённую операционную систему?

Как узнать номер версии удалённых служб (сервер / демон)?

Самый быстрый способ сканирования всех устройств/компьютеров на открытые порты

Показать только открытые (или возможно открытые) порты

Показать все отправленные и полученные пакеты

Сканировать хост используя TCP ACK (PA) и TCP Syn (PS) пинг

Если файервол блокирует стандартные ICMP пинги, попробуйте следующие методы обнаружения хостов:

Просканировать хост используя пинг протоколов IP

Просканировать хост используя UDP пинг

Это сканирование обходит файерволы и фильтры, которые отражают только TCP:

Узнайте самые часто используемые порты TCP, используя сканирование TCP SYN

Сканирование по умолчанию (более быстрое и менее заметное)

Проверить самые популярные TCP порты используя сканирование TCP подключение (предупреждение: заметное и медленное)

Проверить на использование самых распространённых TCP портов используя TCP ACK сканирование

Проверить на использование самых распространённых TCP портов используя Window сканирование

Проверить на использование самых распространённых TCP портов используя TCP Maimon сканирование

Сканирование хоста на UDP службы (UDP сканирование)

Самые популярные службы в Интернете работают по TCP протоколу. DNS, SNMP и DHCP – это три самых популярных UDP службы. Используйте следующий синтаксис для определения UDP служб:

Сканирование IP протокола

Этот тип сканирования позволяет вам определить, какие IP протоколы (TCP, ICMP, IGMP и т.д.) поддерживаются на целевой машине:

Сканирование файервола на проблемы безопасности

Следующие типы сканирования используют тонкую лазейку в TCP и хороши для тестирования безопасности распространенных атак:

Сканирование TCP Null чтобы одурачить файервол на генерацию ответа

Не устанавливает какие-либо биты (TCP флаг заголовка 0)

Сканирование TCP Fin для проверки файервола

Устанавливает просто TCP FIN бит

Сканирование TCP Xmas для проверки файервола

Устанавливает флаги FIN, PSH и URG, разукрашивая пакеты как новогоднюю ёлку

Сканирование файервола фрагментами пакетов

Опция -f приводит к тому, что затребованное сканирование (включая пинг сканирование) использует фрагменты IP пакетов. Идея разделить TCP заголовок на несколько пакетов заключается в том, чтобы усложнить фильтрам, системам обнаружения вторжений и другим неприятностям выявить, чем вы занимаетесь.

Установите свой собственный размер смещения опцией --mtu

Маскировка сканирования с помощью фиктивных хостов

Производится сканирование с использованием фиктивных хостов; в этом случае цель сканирования считает, что заданные вами фиктивные хосты также производят ее сканирование. Хотя IDS цели может сообщить о том, что было произведено 5-10 сканирований портов с каждого IP адреса, система не сможет узнать, с какого из этих IP адресов действительно производилось сканирование, а какие были лишь безвредными ловушками:

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

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

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

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

nmap scanning

Я не буду углубляться в теоретические глубины принципов работы Nmap. Потому что тогда эта статья получится безразмерной. В глубины мы заглянем в других материалах (или уже заглянули, можешь глянуть статьи на сайте). Но некоторые пояснения о том как Nmap получает те или иные результаты я постараюсь дать там где это, на мой взгляд, важно. А сейчас перейдем сразу к практике и примерам, потому что рассказать и показать предстоит довольно много.

Использование Nmap

Если запустить nmap без каких либо параметров, то мы увидим файл справки:

Логика использования утилиты довольно проста. Как видно из справки:

Запуская утилиту nmap мы сразу можем задать цель сканирования, с нужными нам настройками. Тут важно понимать, что всё что не является функционалом программы т.е. опциями и аргументами, nmap будет расценивать как цель. А значит мы можем вводить несколько объектов в качестве целей. А целями могут быть сетевые адреса, ip адреса, диапазоны ip адресов, сети, подсети и т.д.

Также важный момент. Для выполнения многих видов сканирования нужны права суперпользователя. Я буду стараться помечать команды для выполнения которых это обязательное условие, но лучше начинать работать с Nmap сразу с повышенными правами, дабы не нервничать каждый раз когда он будет просить root.

Статус состояния портов

СТАТУСЧТО ОЗНАЧАЕТ
1. открыт
open
Приложение принимает на порт пакет или запросы на соединение
2. закрыт
closed
Порт отвечает на запросы, но не используется ни каким приложением
3. фильтруется
filtered
Запросы не доходят до этого порта, а значит невозможно определить открыт он или нет
4. не фильтруется
unfiltered
Порт доступен, но Nmap не может определить закрыт он или открыт. Как правило помогает использование другого способа сканирования
5. открыт|фильтруется
open|filtered
Не получается определить открыт порт или фильтруется. Возникает если открытый порт не отвечает. Как правило помогает использование другого способа сканирования
6. закрыт|фильтруется
closed|filtered
Не получается определить закрыт порт или фильтруется. Как правило помогает использование другого способа сканирования

В самом начале работы с какай-либо целью мы, как правило, знаем о ней очень мало, а значит нам нужно получить первичные данные, сократить либо расширить список интересующих целей (зависит от задачи) и определиться с дальнейшим направление движения. Для каждой конкретной задачи алгоритм действий может меняться и рецептов гарантирующих успех не существует. Но есть базовый набор действий которые стоит знать прям хорошо. Я постараюсь сосредоточится именно на таких и не залезать в дебри.

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

Как, мы видим из справки Nmap первым пунктом идет обнаружение хостов. Само по себе это понятие довольно широкое, и состоит из первоначального обнаружения активных IP адресов. Этот этап ещё принято называть пинг сканированием. Тут нужно понимать что можно сканировать как, всем привычными, ICMP запросами, так и комбинируя их с TCP, UDP и ARP запросами. Обнаружив хост Nmap автоматически просканирует его порты если не задан параметр отменяющий это действие.

Опции Nmap для обнаружения хостов:

  • -sL
    Сканирование с целью составления списка.
    При выборе данной опции будет перечислен весь диапазона IP адресов в сети с присвоенными им именами (если такие есть). В конце списка будет отображено общее количество найденных IP. Если в качестве цели будет задано доменное имя то будет показан IP и его Reverse DNS.

nmap

  • -sP
    Пинг сканирование.
    Эта опция определяет активные хосты т.е. те которые отвечают на запросы и выводит их список. Если запустить эту опцию с правами root, то, также будут задействованы ARP запросы. Благодаря этому мы узнаем mac-адреса работающих устройств в сети.

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

nmap

  • -PO
    Команда для получения списка протоколов пингованием с использованием IP протокола (для запуска необходим root). В этом случае должны приходить ответы по протоколу указанному в запросе. Это означает что протокол активен. Если приходит ответ что хост не достижим, это даёт понять, что протокол не поддерживается.

nmap

  • -PR
    Это ARP пингование. Наиболее оптимальный способ сканирования, позволяющий определить активные хосты, службы и порты ими использующиеся (для запуска необходим root).

ARP пингование

трасоровка

Приёмы сканирования

Мы подошли к разделу посвященному приемам сканирования портов. Почти все указанные в этом разделе опции требуют для запуска root, это нужно учитывать. Также единовременно можно использовать только один метод (исключение UDP сканирование (-sU) его можно комбинировать с любым видом TCP сканирования.

TCP SYN сканирование

nmap

  • -sA
    TCP ACK сканирование которое используется для определения правил брандмауэров и фильтруемых ими портов.

nmap

nmap

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

Иногда возникает необходимость просканировать какой-то конкретный порт или диапазон портов. Причём если сразу известно какие порты являются целью, лучше так и делать, это может серьёзно сократить время и оставит меньше следов. Если не указывать порты которые мы хотим сканировать, то Nmap, по-умолчанию, будет сканировать все порты до 1024 включительно и все порты указанные в файле */nmap/nmap-services для протокола который будет сканироваться.

Для того чтобы вручную выбрать порты или диапазон портов для сканирования, используется параметр:
-p
означающий, что мы хотим сканировать только определенные порты. Мы должны сначала указать тип сканирования, а потом порты которые хотим сканировать, также можно указать протокол TCP (опция T:) или UDP (опция U:) (если не указывать задействуются оба), при этом не забывай, что чтобы применялось UDP сканирование должна использоваться опция -sU, а для TCP сканирования использоваться опция -sS (или аналогичная), например:

nmap

Примечание
Также есть чуть менее распространенные способы определения целевых портов, если мы укажем параметр -F, то будет просканировано 100 самых распространенных портов, а если -p-, то все 65535.

Определение служб, их версий и операционной системы

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

nmap

определение операционной системы

Примечание:
Я рассказал про параметры определения версий и ОС потому, что про них нужно знать и для полноты обзора, при этом на практике, в большинстве случаев, в место них лучше использовать опцию -А, которая сразу включает определение ОС, версий, трассировку и сканирование с использованием скриптов.

Одна из ключевых возможностей Nmap это использование скриптов при сканировании. Скриптов в комплекте поставляется огромное количество. Их около 600 и лежат они в */nmap/scripts, в том же каталоге лежит база данных скриптов в файле script.db. Для удобства использования все скрипты разбиты на категории. Фишка в том, что можно запускать скрипты сразу по категориям (по одной или по несколько). Это избавляет от необходимости запоминания названий отдельных скриптов, хотя некоторые скрипты стоит запомнить (но об этом позже). Также важно помнить, что некоторые скрипты оставляют много следов на целевой системе, а потому использовать их стоит аккуратно и помня про средства анонимизации.

С полным списком скриптов и их описанием можно ознакомится здесь.

Категории скриптов Nmap:

Использование скриптов Nmap

Не смотря на огромное количество доступных скриптов логика их использования достаточно проста и понятна. При этом в большинстве случаев запускать сканирование на основе скриптов стоит вместе с сканированием портов. Потому что некоторые скрипты срабатывают в зависимости от того или иного состояния порта.

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

nmap

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

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

Самих шаблонов существует 6. Их можно так и выбирать, просто указывая цифру от 0 до 6:

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

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

nmap

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

Если не указывать никаких параметров вывода результатов Nmap выедет полученные данные в терминале. Это вполне приемлемо для сканирования одиночной цели, но не всегда удобно (а точнее всегда не удобно) для анализа больших массивов данных. Для нашего удобства разработчики сделали возможность сохранять результаты сразу в файл, причем есть несколько вариантов:

Различные опции Nmap

Сканирование уязвимостей с помощью Nmap. Использование Vulscan

В скрипт уже интегрированы базы данных уязвимостей:

В случае необходимости, их можно обновить с сайта разработчиков:

Скачанные обновления нужно будет поместить в каталог: nmap\scripts\vulscan\

Запуск этого скрипта происходит точно также, как и любого другого, единственное что нужно помнить, что его нужно совмещать с командой определения версий (-sV):

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

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

Читайте также: