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 адресов действительно производилось сканирование, а какие были лишь безвредными ловушками:
Nmap. Начало использования
Вы когда-нибудь интересовались откуда атакующий знает какие порты открыты в системе? Или как узнать, какие приложения запущены на сервере, не спрашивая об этом администратора? Вы можете сделать все это и даже больше вместе с небольшим инструментом под названием Nmap.
Что такое Nmap? Название Nmap это сокращение от “network mapper”, сам nmap это набор инструментов для сканирования сети. Он может быть использован для проверки безопасности, просто для определения сервисов запущенных на узле, для идентификации ОС и приложений, определения типа фаерволла используемого на сканируемом узле.
Nmap это знаменитый инструмент. Как только вы узнаете больше о Nmap, вы поймете, что он делает в эпизодах таких фильмов как Матрица Перезагрузка, Ультиматум Борна, Хоттабыч, и других.
В этом руководстве будут описаны основы использования Nmap и приведены некоторые примеры, которые вы сможете использовать.
Где взять Nmap?
Если Вы используете Linux, то можете найти пакеты Nmap в репозиториях для большинства дистрибутивов. Последний релиз Nmap вышел в начале 2010, поэтому самой свежей версии может не быть в текущих стабильных ветках. Найти исходники и некоторые бинарные сборки можно на странице загрузки.Там есть и windows версия.
Основы использования Nmap.
Синтаксис Nmap следующий:
nmap Опции_сканирования Цель_сканирования.
Допустим Вы хотите сканировать узел и узнать какая операционная система на нем работает. Чтобы сделать это выполните следующее:
nmap -O target.host.com
Заметим что Nmap требует привилегий суперпользователя для запуска подобного типа сканирования. Процесс сканирования может занять около минуты, так что будьте терпеливы. Когда процесс закончится вы увидите что то похожее на это:
Starting Nmap 5.21 ( nmap.org ) at 2010-02-27 23:52 EST
Nmap scan report for 10.0.0.1
Host is up (0.0015s latency).
Not shown: 997 closed ports
PORT STATE SERVICE
53/tcp open domain
5009/tcp open airport-admin
10000/tcp open snet-sensor-mgmt
MAC Address: 00:11:24:6B:43:E2 (Apple Computer)
Device type: WAP|printer
Running: Apple embedded, Canon embedded, Kyocera embedded, Xerox embedded
OS details: VxWorks: Apple AirPort Extreme v5.7 or AirPort Express v6.3; Canon imageRUNNER printer (5055, C3045, C3380, or C5185); Kyocera FS-4020DN printer; or Xerox Phaser 8860MFP printer
Network Distance: 1 hop
Как вы видите Nmap предоставляет множество информации. Здесь он отображает предположение об операционной системе, которая была запущена на узле. В данном случае выполнялось сканирование маршрутизатора Apple Airport Extrime. В качестве дополнительного бонуса Nmap сообщил, что устройство на расстоянии одного прыжка, а также MAC адрес устройства и производителя сетевой карты, открытые порты и сколько времени выполнялось сканирование.
Ниже приведены результаты другого сканирования, домашнего компьютера с запущенной Ubuntu 9.10:
Starting Nmap 5.21 ( nmap.org ) at 2010-02-28 00:00 EST
Nmap scan report for 10.0.0.6
Host is up (0.0039s latency).
Not shown: 999 closed ports
PORT STATE SERVICE
22/tcp open ssh
MAC Address: 00:17:08:2A:D6:F0 (Hewlett Packard)
Device type: general purpose
Running: Linux 2.6.X
OS details: Linux 2.6.19 — 2.6.31
Network Distance: 1 hop
OS detection performed. Please report any incorrect results at nmap.org/submit .
Nmap done: 1 IP address (1 host up) scanned in 3.40 seconds
Здесь мы видим, что система имеет сетевую карту HP, запущено Linux между версиями 2.6.19 и 2.6.31. Кстати, Вы не сможете явно идентифицировать дистрибутив, только версию Linux ядра.
Сканирование чужих узлов.
В примерах выше для сканирования были выбраны локальный маршрутизатор и одна из рабочих станций, потому что мы имели право на их сканирование. Однако, будет плохой идеей запуск множественного сканирования чужого узла, если вы их не контролируете или не имеете прав для сканирования. Для экспериментов Nmap имеет общедоступный тестовый сервер scanme.nmap.org который Вы можете использовать.
Многие администраторы не любят несанкционированного сканирования их серверов, так что лучшим вариантом будет ограничение сканирования узлов своей локальной сети или тех для которых у вас есть права на сканирование. Также в некоторых случаях вы можете нарушить договор с вашим провайдером, при использовании некоторых особо агрессивных методов сканирования Nmap, поэтому будьте осторожны.
Сканирование нескольких узлов.
Вы можете сканировать больше чем один узел за раз, используя nmap. Если вы производите сканирование по IP-адресу вы можете определить диапазон 10.0.0.1-6 или 10.0.0.0/24.Используя диапазон 10.0.0.1-6 будут сканироваться узлы от 10.0.0.1 до 10.0.0.6. Используя определение /24 будет сканироваться весь диапазон узлов от 10.0.0.0 до 10.0.0.255. Для примера, если нужно просканировать узлы от 10.0.0.1 до 10.0.0.42 и узнать какая ОС вероятно запущена используйте:
Если у вас есть некоторый список доменных имен вместо IP адресов, вы можете разделить их в командной строке, вот так:
nmap -O host1.target.com host2.target.com
Проверка открытых портов
Если вы запустите nmap вообще без опций и укажите какой то узел, то он будет сканировать порты и покажет все найденные открытые порты и сервисы запущенные на них. Например запустите:
nmap target.hostname.com
после чего он должен выдать что то похожее на это:
Interesting ports on target.hostname.com (10.0.0.88):
Not shown: 1711 closed ports
PORT STATE SERVICE
22/tcp open ssh
80/tcp open http
3306/tcp open mysql
Nmap done: 1 IP address (1 host up) scanned in 0.228 seconds
Nmap выдаст больше информации если использовать опцию -v (verbose).
Сканирование запущенных сервисов
Если вы хотите узнать какой сервис возможно запущен попробуйте опцию –sV. Эта опция произведет более агрессивное сканирование и попытается выяснить какая версия сервисов запущена на данном узле, а также может помочь более точно определить какая ОС запущена. Для пример запустим nmap –sV на тестовый сервер и получим следующий ответ:
Starting Nmap 5.21 ( nmap.org ) at 2010-02-28 00:15 EST
Nmap scan report for test.host.net (XX.XXX.XXX.XX)
Host is up (0.090s latency).
Not shown: 965 closed ports, 33 filtered ports
PORT STATE SERVICE VERSION
22/tcp open ssh OpenSSH 4.7p1 Debian 8ubuntu1.2 (protocol 2.0)
80/tcp open http Apache httpd 2.2.8 ((Ubuntu) PHP/5.2.4-2ubuntu5.10 with Suhosin-Patch)
Service Info: OS: Linux
Service detection performed. Please report any incorrect results at nmap.org/submit .
Nmap done: 1 IP address (1 host up) scanned in 11.43 seconds
Как вы видите, Nmap может проанализировать пакеты и определить версию запущенного приложений на SSH и HTTP портах. Здесь вы можете увидеть что опрашиваемая система это Ubuntu с Apache 2.2.8 и OpenSSH 4.7p1. Эта информация может быть полезна по ряду причин. Nmap сканирование может идентифицировать систему под управлением устаревших сервисов которые могут быть уязвимы для известных эксплойтов.
Кто в моей сети?
Не знаете сколько онлайн узлов находятся в вашей сети? Попробуйте использовать nmap –sP который запустит ping сканирование указанной сети. Для примера, nmap –sP 10.0.0.0/24 сканирует 256 узлов от 10.0.0.0 до 10.0.0.255 проверит доступны ли они и доложит об этом. Так же вы можете использовать диапазон, например:
nmap –sP 10.0.0.1-15
Zenmap
Наконец, если все эти радости командной строки не для вас, nmap имеет GUI который вы можете использовать для построения и выполнения команд. Называется Zenmap. Он позволит выбрать цель, запустить сканирование, отобразить результаты, а также сохранить их и сравнить с другими.
GUI Zenmap это хороший способ познакомиться с Nmap, но лучше знать как использовать Nmap в командной строке, если вы собираетесь работать с ним часто.
В будущем руководстве мы более глубоко познакомимся с Nmap и конкретными задачами которые вы сможете решить.
Данный пост это вольный перевод статьи Beginner’s Guide to Nmap. Спасибо за внимание.
Nmap: Discover your network
Nmap («Network Mapper») is a free and open source utility for network discovery and security auditing. Many systems and network administrators also find it useful for tasks such as network inventory, managing service upgrade schedules, and monitoring host or service uptime. Nmap uses raw IP packets in novel ways to determine what hosts are available on the network, what services (application name and version) those hosts are offering, what operating systems (and OS versions) they are running, what type of packet filters/firewalls are in use, and dozens of other characteristics. It was designed to rapidly scan large networks, but works fine against single hosts. Nmap runs on all major computer operating systems, and official binary packages are available for Linux, Windows, and Mac OS X. In addition to the classic command-line Nmap executable, the Nmap suite includes an advanced GUI and results viewer (Zenmap), a flexible data transfer, redirection, and debugging tool (Ncat), a utility for comparing scan results (Ndiff), and a packet generation and response analysis tool (Nping).
Nmap was named “Security Product of the Year” by Linux Journal, Info World, LinuxQuestions.Org, and Codetalker Digest. It was even featured in twelve movies, including The Matrix Reloaded, Die Hard 4, Girl With the Dragon Tattoo, and The Bourne Ultimatum.
- Nmap Security Port Scanner
- Flexible : Supports dozens of advanced techniques for mapping out networks filled with IP filters, firewalls, routers, and other obstacles. This includes many port scanning mechanisms (both TCP & UDP), OS detection, version detection, ping sweeps, and more. See the documentation page.
- Powerful : Nmap has been used to scan huge networks of literally hundreds of thousands of machines.
- Portable : Most operating systems are supported, including Linux , Microsoft Windows , FreeBSD , OpenBSD , Solaris , IRIX , Mac OS X , HP-UX , NetBSD , Sun OS , Amiga , and more.
- Easy : While Nmap offers a rich set of advanced features for power users, you can start out as simply as «nmap -v -A targethost «. Both traditional command line and graphical (GUI) versions are available to suit your preference. Binaries are available for those who do not wish to compile Nmap from source.
- Free : The primary goals of the Nmap Project is to help make the Internet a little more secure and to provide administrators/auditors/hackers with an advanced tool for exploring their networks. Nmap is available for free download, and also comes with full source code that you may modify and redistribute under the terms of the license.
- Well Documented : Significant effort has been put into comprehensive and up-to-date man pages, whitepapers, tutorials, and even a whole book! Find them in multiple languages here.
- Supported : While Nmap comes with no warranty, it is well supported by a vibrant community of developers and users. Most of this interaction occurs on the Nmap mailing lists. Most bug reports and questions should be sent to the nmap-dev list, but only after you read the guidelines. We recommend that all users subscribe to the low-traffic nmap-hackers announcement list. You can also find Nmap on Facebook and Twitter. For real-time chat, join the #nmap channel on Freenode or EFNet.
- Acclaimed : Nmap has won numerous awards, including «Information Security Product of the Year» by Linux Journal , Info World and Codetalker Digest. It has been featured in hundreds of magazine articles, several movies, dozens of books, and one comic book series. Visit the press page for further details.
- Popular : Thousands of people download Nmap every day, and it is included with many operating systems (Redhat Linux, Debian Linux, Gentoo, FreeBSD, OpenBSD, etc). It is among the top ten (out of 30,000) programs at the Freshmeat.Net repository. This is important because it lends Nmap its vibrant development and user support communities.
Communication
Nmap users are encouraged to subscribe to the Nmap-hackers mailing list. It is a low volume (6 posts in 2017), moderated list for the most important announcements about Nmap, Insecure.org, and related projects. You can join more than 128,000 current subscribers by submitting your email address here:
We also have a development list for more hardcore members (especially programmers) who are interested in helping the project by helping with coding, testing, feature ideas, etc. New (test/beta) versions of Nmap are sometimes released here prior to general availability for QA purposes. You can subscribe at the Nmap-dev list info page.
Sorry, you have been blocked
This website is using a security service to protect itself from online attacks. The action you just performed triggered the security solution. There are several actions that could trigger this block including submitting a certain word or phrase, a SQL command or malformed data.
What can I do to resolve this?
You can email the site owner to let them know you were blocked. Please include what you were doing when this page came up and the Cloudflare Ray ID found at the bottom of this page.
Cloudflare Ray ID: 7a267d24abd222fb • Your IP: Click to reveal 88.135.219.175 • Performance & security by Cloudflare