- Как использовать команду nmap
- Установка Nmap
- Установка Nmap в Ubuntu и Debian
- Установка Nmap на CentOS и Fedora
- Установка Nmap на macOS
- Установка Nmap в Windows
- Использование Nmap
- Указание целевых хостов
- Указание и сканирование портов
- Ping сканирование
- Отключение разрешения DNS-имен
- Определение ОС, служб и версий
- Вывод Nmap
- Механизм сценариев Nmap
- Заключение
- HackWare.ru
- Этичный хакинг и тестирование на проникновение, информационная безопасность
- Уроки по Nmap. Урок 1: Для чего нужен Nmap, что нового в версии 7, примеры опций
- Что такое Nmap и для чего он нужен?
- Улучшение в Nmap 7:
- Примеры опций для сканирования Nmap
Как использовать команду nmap
Nmap — это мощный инструмент сетевого сканирования для аудита безопасности и тестирования на проникновение. Это один из основных инструментов, используемых администраторами сети для устранения проблем с подключением к сети и сканирования портов .
Nmap также может определять Mac-адрес, тип ОС , версию службы и многое другое.
В этой статье объясняются основы того, как использовать команду nmap для выполнения различных сетевых задач.
Установка Nmap
Nmap — это многоплатформенная программа, которую можно установить во всех основных операционных системах. Первоначально он был выпущен как инструмент только для Linux, а позже был перенесен на другие системы, такие как BSD, Windows и macOS.
Если вы предпочитаете графический интерфейс, а не командную строку, Nmap также имеет графический пользовательский интерфейс под названием Zenmap.
Официальные бинарные пакеты доступны для загрузки со страницы загрузки Nmap.
Процедура установки проста и зависит от вашей операционной системы.
Установка Nmap в Ubuntu и Debian
Nmap доступен из репозиториев Ubuntu и Debian по умолчанию. Чтобы установить его, запустите:
Установка Nmap на CentOS и Fedora
На CentOS и других производных от Red Hat запускаются:
Установка Nmap на macOS
Пользователи macOS могут установить Nmap, загрузив установочный пакет «.dmg» с сайта Nmap или через Homebrew:
Установка Nmap в Windows
Версия Nmap для Windows имеет некоторые ограничения и, как правило, немного медленнее, чем версия для UNIX.
Самый простой вариант установки Nmap в Windows — это загрузить и запустить самоустанавливающийся exe-файл.
Вы можете запустить Nmap в Windows либо из командной строки, либо запустив программу Zenmap. Для получения дополнительной информации о том, как использовать Nmap в Windows, ознакомьтесь с инструкциями по использованию после установки.
Использование Nmap
Nmap обычно используется для аудита сетевой безопасности, отображения сети, определения открытых портов и поиска сетевых устройств.
Упрощенный синтаксис команды nmap выглядит следующим образом:
Самый простой пример использования Nmap — сканирование одной цели от имени обычного пользователя без указания каких-либо параметров:
При вызове от имени пользователя без полномочий root, у которого нет прав на использование сырых пакетов, nmap запускает сканирование TCP-соединения. Параметр -sT по умолчанию включен в непривилегированном режиме.
Вывод будет выглядеть примерно так, включая основную информацию о сканировании и список открытых и отфильтрованных TCP-портов.
Самым популярным вариантом сканирования является TCP SYN scan ( -sS ), который быстрее, чем вариант подключения, и работает со всеми совместимыми стеками TCP.
-sS включается по умолчанию, когда nmap вызывает пользователь с административными привилегиями:
Для более подробного вывода используйте увеличение детализации с помощью -v или -vv :
Чтобы выполнить сканирование UDP, вызовите команду с параметром ( -sU) от имени пользователя root:
Для получения полного списка методов сканирования портов посетите страницу документации Nmap.
Nmap также поддерживает адреса IPv6. Чтобы указать хост IPv6, используйте опцию -6 :
Указание целевых хостов
Nmap рассматривает все аргументы, которые не являются опциями, как целевые хосты.
Аргументы считаются вариантами, если они начинаются с одинарного или двойного тире ( — , — ).
Самый простой вариант — передать один или несколько целевых адресов или доменных имен:
Вы можете использовать нотацию CIDR, чтобы указать диапазон сети:
Чтобы указать диапазон октетов, используйте символ тире. Например, для сканирования 192.168.10.1, 192.168.11.1и 192.168.12.1:
Другой символ, который вы можете использовать для указания целей, — это запятая. Следующая команда нацелена на те же хосты, что и предыдущая:
Вы можете комбинировать все формы:
Чтобы убедиться, что вы указали правильные хосты перед сканированием, используйте параметр сканирования списка ( -sL ), который перечисляет только цели без запуска сканирования:
Если вы хотите исключить цели, которые включены в указанный вами диапазон, используйте опцию —exclude :
Указание и сканирование портов
По умолчанию Nmap выполняет быстрое сканирование 1000 самых популярных портов. Это не первые 1000 последовательных портов, а 1000 наиболее часто используемых портов в диапазоне от 1 до 65389.
Для поиска всех портов с 1 по 65535 используйте опцию -p :
Каждый порт может находиться в одном из следующих состояний:
- open — программа, запущенная на порту, отвечает на запрос.
- closed — на порту не работает ни одна программа, и хост отвечает на запросы.
- filtered — хост не отвечает на запрос.
Порты и диапазоны портов указываются с помощью опции -p .
Например, чтобы просканировать только порт 443, вы должны использовать следующую команду:
Чтобы указать более одного порта, разделите целевые порты запятой:
Диапазоны портов можно указать с помощью символа тире. Например, чтобы просканировать все порты UDP в диапазоне от 1 до 1024, вы должны запустить:
Порты также можно указать с помощью имени порта. Например, для поиска порта 22, ssh, вы можете использовать:
Ping сканирование
Чтобы выполнить ping-сканирование или обнаружение хоста, вызовите команду nmap с опцией -sn :
Эта опция указывает Nmap только на обнаружение сетевых хостов, а не на сканирование портов. Это полезно, когда вы хотите быстро определить, какой из указанных хостов запущен и работает.
Отключение разрешения DNS-имен
По умолчанию Nmap выполняет обратное разрешение DNS для каждого обнаруженного хоста, что увеличивает время сканирования.
При сканировании больших сетей рекомендуется отключить разрешение обратного DNS и ускорить сканирование. Для этого вызовите команду с опцией -n :
Определение ОС, служб и версий
Nmap может обнаружить операционную систему удаленного хоста с помощью снятия отпечатков стека TCP/IP. Чтобы запустить обнаружение ОС, вызовите команду с опцией -O :
Если Nmap может обнаружить ОС хоста, он напечатает что-то вроде следующего:
Обычно системные службы прослушивают стандартные порты, которые хорошо известны и зарезервированы для них. Например, если порт 22, соответствующий службе SSH, открыт, вы предполагаете, что на хосте работает SSH-сервер. Однако вы не можете быть абсолютно уверены, потому что люди могут запускать службы на любых портах, которые им нужны.
Благодаря обнаружению службы и версии Nmap покажет вам, какая программа прослушивает порт и версию программы.
Для поиска службы и версии используйте опцию -sV :
Вы также можете сканировать ОС, версии и запускать traceroute с помощью одной команды, используя параметр -A :
Вывод Nmap
По умолчанию Nmap выводит информацию на стандартный вывод (stdout).
Если вы сканируете большую сеть или нуждаетесь в информации для дальнейшего использования, вы можете сохранить результат в файл.
Nmap предоставляет несколько типов вывода. Чтобы сохранить вывод в нормальном формате, используйте параметр, за которым следует имя файла -oN :
Самый популярный вариант — сохранить вывод в формате XML. Для этого воспользуйтесь опцией -oX :
Еще один полезный формат — вывод grepable, который можно анализировать с помощью стандартных инструментов Unix, таких как grep , awk и cut . Вывод grepable указывается с опцией -oG :
Механизм сценариев Nmap
Одна из самых мощных функций Nmap — это скриптовый движок. Nmap поставляется с сотнями скриптов , и вы также можете писать свои собственные скрипты на языке Lua.
Вы можете использовать скрипты для обнаружения вредоносных программ и бэкдоров, выполнения атак методом перебора и т.д.
Например, чтобы проверить, скомпрометирован ли данный хост, вы можете использовать:
Заключение
Nmap — это инструмент с открытым исходным кодом, который в основном используется администраторами сети для обнаружения узлов и сканирования портов.
Обратите внимание, что в некоторых странах сканирование сетей без разрешения является незаконным.
Если у вас есть вопросы или замечания, пожалуйста, оставьте комментарий ниже.
HackWare.ru
Этичный хакинг и тестирование на проникновение, информационная безопасность
Уроки по Nmap. Урок 1: Для чего нужен Nmap, что нового в версии 7, примеры опций
Что такое Nmap и для чего он нужен?
Nmap (“Network Mapper”) это утилита с открытым исходным кодом для исследования сети и проверки безопасности. Она была разработана для быстрого сканирования больших сетей, хотя прекрасно справляется и с единичными целями.
Nmap использует сырые IP пакеты оригинальными способами, чтобы определить какие хосты доступны в сети, какие службы (название приложения и версию) они предлагают, какие операционные системы (и версии ОС) они используют, какие типы пакетных фильтров/брандмауэров используются и еще дюжины других характеристик. В тот время как Nmap обычно используется для проверки безопасности, многие сетевые и системные администраторы находят ее полезной для обычных задач, таких как контролирование структуры сети, управление расписаниями запуска служб и учет времени работы хоста или службы.
Эта программа первоначально написал Gordon Lyon и она с лёгкостью может ответить на следующие вопросы:
- Что за компьютеры работают в вашей локальной сети?
- Какие IP используются в локальной сети?
- Какие порты открыты на удалённой машине?
- Какая операционная система у цели?
- Какие службы запущены на целевой машине, какая у них версия?
- Узнать, заражена ли система вредоносным кодом или вирусом.
- Поиск неавторизованных серверов или сетевых служб в вашей сети
- Поиск и удаление компьютеров, которые не соответствуют минимальному уровню безопасности организации.
Улучшение в 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.
Обновление инфраструктуры
Проекту Nmap уже 18 лет, но это не значит, что он застрял в прошлом. Проект Nmap продолжает воспринимать новые технологии для улучшения процесса разработки и обслуживания разрастающейся пользовательской базы. Например, они перевели Nmap.Org на SSL для уменьшения риска от исполнимых троянов и вообще в целом уменьшения возможности перехвата. Они также используют систему контроля версия Git в качестве большей части рабочего процесса и имеют официальное зеркало репозитория исходников Nmap Subversion на Github и там же можно отправить своей код для проекта. Они также создали официальный баг трэкер, который тоже хостится на Github. Отслеживание ошибок и улучшение запросов уже приносит свои результаты.
Ускорение сканирований
На протяжении 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 адресов действительно производилось сканирование, а какие были лишь безвредными ловушками:
Сканирование файервола с подменой MAC адреса
Подмена (спуфинг) MAC адреса
Добавьте другие опции
Используйте случайный MAC адрес
Номер 0 означает, nmap выберет совершенно произвольный MAC адрес
Как сохранить вывод в текстовый файл?