What is nmap in linux

Команда Nmap в Linux: сканирование сетевых портов

Сетевой сканер Nmap известен благодаря фильму «Матрица»: он использовался для взлома сетей. Статья расскажет подробнее о приложении и кратко опишет, как им пользоваться. Все действия производятся на ОС Ubuntu 18.04.3.

Что за команда Nmap?

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

Приложение расширяется за счет использования собственного языка скриптов. В 95% случаев администраторы самостоятельно дорабатывают решение под свои задачи. Такой подход делает утилиту незаменимым помощником.

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

Установка и синтаксис Nmap

По умолчанию программа недоступна в дистрибутивах ОС семейства Linux. Установим ее из официального репозитория.

sudo apt-get install nmap

Инсталляция займет не более 4 минут. Запуск утилиты осуществляется командой nmap с дополнительными ключами. Если требуется ознакомиться с синтаксисом и возможностями, вводим наименование ПО в терминале и нажимаем Enter.

Общий вид команды для сканирования выглядит следующим образом:

Key – опция, с которой проводится сканирование. Утилита обладает множеством возможностей.

Target – конечная точка. Это может быть сайт, имя компьютера, IP-адрес и т.д.

Разработчики программы создали специальный веб-ресурс для тестирования возможностей Nmap. Его адрес: http://scanme.nmap.org

Для начала проверим работоспособность Nmap на сайте без опций.

Изображение выше показывает, что на ресурсе открыт порт 80 по протоколу TCP. Через него работает служба HTTP.

Поле State принимает четыре значения. Open означает, что порт открыт, а Closed – закрыт, т.е. ни одна программа не использует его. Третий вариант – Filtred, т.е. порт блокируется межсетвым экраном или фильтром. Последнее значение Unfiltered обозначает, что Nmap не определил, открыт ли порт или закрыт.

Опции

Расскажем про наиболее востребованные ключи, которые используются при работе с утилитой.

  1. sL. Находит все рабочие станции, подключенные к сети, не сканирует на наличие уязвимостей или другой информации. nmap -sL
  2. sP. Альтернатива команды ping: проверяет доступность узла. nmap –sP hostname Hostname – имя узла, IP-адрес или сайт. Пример использования ключа ниже.
Читайте также:  Draw io install linux

3. -sS/sT/sA/sW/sM – любой из ключей запускает сканирование по протоколу TCP.

4. –sU использует протокол UDP для сканирования.

5. –O определяет операционную систему, которая установлена на конечной точке.

sudo nmap –O scanme.nmap.org

Важно! Ключ –O работает только с правами root.

6. Для сканирования определенных портов указывают ключ –p. Он задает диапазон, по которому работает nmap.

7. Также можно регулировать скорость работы утилиты. Для этого используется параметр –T. Он принимает значения от одного до пяти. Синтаксис выглядит следующим образом:

nmap –sL –T[2] scanme.nmap.org

8. Опция –sV детектирует имя службы, которая запущена на определенном порту. Если задать без уточнения, то nmap выдаст список всех найденных портов.

nmap –sV scanme.nmap.org

9. Использование функции –A активирует агрессивный режим сканирования. В этом случае nmap подключает встроенные скрипты для выполнения указанных функций совместно с ключом.

Важно! Использование данного режима в большинстве случаев воспринимается клиентской стороной как сетевая атака. Рекомендуется аккуратно использовать опцию –A.

10. Утилита может сменить физический адрес указанного сетевого адаптера. Для этого вводим ключ —spoof-mac, а после него прописываем новый адрес.

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

Приведем небольшой пример, как работать с nmap. В качестве примера используем ресурс scanme.nmap.org.

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

Для начала просканируем свободные порты, чтобы определить, для чего используется данный хост.

nmap –sT scanme.nmap.org

У сайта открыта только служба HTTP, т.е. он используется как веб-сервер. Теперь определим, какую операционную систему он использует.

sudo nmap –sV -O scanme.nmap.org

Учитывая, что Ubuntu запущена под виртуальной машиной, программа определяет ОС как VirtualBox.

Как понятно из картинки выше, на источнике закрыты порты, которые работают по протоколу FTP, HTTPS и HTTP-Proxy. На открытом порте установлено программное обеспечение Apache 2.4.7 под управлением операционной системой Ubuntu.

Если же указать в качестве конечно точки localhost, то утилита покажет версию ядра ОС.

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

Проверить доступность

Если требуется произвести сбор информации по определенным адресам, то просто перечислим их через ключ –sP. Он определит какие доступны в сети, а какие – отключены. Например, администратору необходимо проверить доступность компьютеров с адресами 5-15. Задаем следующую команду:

Аналогично в качестве фильтра устанавливают маску подсети, если она доступна.

Графическая оболочка

Логично предположить, что со временем разработали графический интерфейс nmap для более комфортного использования. Оболочка называется Zenmap. Она доступна в официальных репозиториях Linux. Вводим в терминале команду:

Читайте также:  Удалить файл ссылку linux

sudo apt-get install zenmap

Важно! Запускаем оболочку только с правами администратора, т.к. часть опций nmap доступна только привилегированным пользователям.

Интерфейс простой и понятный.

Источник

Nmap — руководство для начинающих

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

Рассмотрим использование утилиты в Debian. В стандартной поставке дистрибутива 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 проверит хост на наличие открытых портов и служб, которые слушают эти порты.
Запустим командой:

Через несколько секунд получим результат:
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, но нельзя определить, являются ли они открытыми или закрытыми.

Хинт: Если во время сканирования нажать пробел — можно увидеть текущий прогресс сканирования и на сколько процентов он выполнен. Через несколько секунд получаем ответ, в котором пока что интересна строчка 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).

Читайте также:  How to install xfce on linux mint

Вообще, точную версию ядра средствами 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 выведет очень много информации, я не стану приводить пример. Сканирование может длится довольно долго, занимая несколько минут.

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

Сканирование проходит довольно быстро, так как по сути это обычный ping-тест, отвечает ли хост на ping. Следует учесть, что хост может не отвечать на ping из-за настроек фаерволла. Если нужный участок сети нельзя ограничить маской, можно указать диапазон адресов, с какого и по какой надо провести сканирование. Например, есть диапазон адресов с 192.168.1.2 до 192.168.1.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 уточнил, что сканирование портов все-таки не является противозаконным.

Источник

Оцените статью
Adblock
detector