Nmap (Network Mapper) — универсальная программа для сканирования сети. Большой плюс в том, что она применима как на Windows , так и на Linux-системах.
Nmap можно использовать как для помощи в администрировании сети, так и для проверки сети на уязвимости, узнать как порты открыты и что можно узнать по данным портам.
В данной статье мы расскажем про наиболее интересные команды, которые могут вам пригодиться.

Nmap показывает состояния по портам:
open — порт открыт для определенного сервиса или приложения;
filtered — порт блокируется фаерволлом;
closed — порт закрыт;
unfiltered — невозможно точно определить статус порта;

Перейдем к самим командам и ключам Nmap на примерах.

Для примера мы находимся в локальной сети 192.168.0.0/24 и будем ее сканировать, но так же можно сканировать любой внешний адрес или доменное имя.
Установка namp командой:

yum install nmap
Сканирование с помощью NMAP.

Сканируем подсеть на c выводом состояния подключений на каждом ip-адресе.
Если в момент сканирования нажать «Пробел», то видим в процентах сколько уже про сканировано.

#nmap -sL 192.168.0.0/24

Если нам нужно отобразить только адреса в состоянии UP, то команда будет выглядеть следующим образом:

#nmap -sn 192.168.0.0/24

Команда nmap с ключом -sL сканирует заданную подсеть и выводит информацию о обнаруженных активных хостах в виде списка.
Можно также сканировать несколько подсетей одной командой, например подсети 192.168.0.0/24 и 10.34.100.0/24

#nmap -sL 192.168.0.0/24 10.34.100.0/24

либо, первые 100 адресов подсети 192.168.0.0/24

#nmap -sL 192.168.0.0-100
#nmap -sP 192.168.0.0/24

Если задать ключ -sP, то nmap выводит более подробную информацию о ip-адресе в виде:

# nmap -sP 192.168.0.0/24
Nmap scan report for Dlink-Router.Dlink (192.168.0.1)
Host is up (0.0020s latency).
MAC Address: BC:F6:XX:XX:XX:XX (D-Link International)

Мы можем также узнать операционную систему узла 192.168.0.50, через команду:

# nmap -O 192.168.0.50
Сканирование по портам с помощью NMAP.

Можно указать диапазон портов, например 1000-1010 для сканирования адреса 192.168.0.100:

#nmap -p 1000-1010 192.168.0.100

если мы хотим просканировать только tcp-порты, то используем перед портами T:, если UDP-порты, то пишем U:. Например, сканируем только порты U:53, T:23,22 для хоста 192.168.0.0/24:

#nmap -p U:53, T:23,22 192.168.0.0/24

либо с именем сервиса-порта:

#nmap -p ftp 192.168.0.0/24

Ключ «-p-» сканировать все 65 тысяч портов, по-умолчанию сканируется только около 1000-топ портов.

#nmap -p- 192.168.0.100
Как узнать информацию о запущенных сервисах на сайте или узле локальной сети?

Для поиска информации о сервисах используется ключ -sV.

#nmap -sV 192.168.0.201

Который расскажет нам историю про порт (80/tcp), состояние порта (open, closed), имя сервиса (http) и его версию (nginx).
Если вводить команду nmap 192.168.0.201 без каких-либо ключей, то мы видим почти одинаковый вывод как и с ключом -sV, только без колонки VERSION.

Показать только открытые порты.

#nmap 192.168.0.100 --open
Работа NMAP со скриптами.

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

#find /usr/share/nmap/scripts/

Как использовать библиотеку скриптов в nmap?
Через предыдущую команду мы видим в списке скрипт vnc-brute.nse, который по своей библиотеке будет перебирать учетные записи(логи-пароль) для получения доступа к узлу.
Например командой

nmap 192.168.0.100 --open

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

#nmap -sC 192.168.0.10

0, которая прогонит адрес всеми скриптами в библиотеке, или

#nmap --script vnc-brute.nse 192.168.0.100

Обновить базу скриптов можно командой:

#nmap --script-updatedb
Далее примеры nmap и возможности коротко, сборки с интернета:
#nmap -p- -PS80,443 -n -T4 -p- -sS --reason 192.168.0.100

-p- сканирует весь диапазон портов;
-PS80,443 доступность адреса только если проходит ping по доступности tcp-портов 80,;
-n не делать DNS-resolve;
-T4 — быстрое сканирование;
-vvv — порты будут отображаться в онлайн-режиме сканирования, а не по окончанию;
— reason — выясняет почему nmap вывел порт в определенном состоянии

#nmap -v -iR 10 -PN -p 22 192.168.0.200

сканируем случайные 10 адресов по 22 порту;
-PN пропускаем обнаружение хостов.

#nmap -sV -p 22,80,443 192.168.0.100-150

сканер по портам 22,80,443 50 адресов с выводом информации о работающей службе по данным портам.

#nmap --traceroute adminwin.ru

показывает трасировку до хоста.

Дополнительные ключи для обходи систем защиты:
-f; —mtu <значение>: Фрагментировать пакеты (опционально с заданным значением MTU).
-D <фикт_хост1,фикт_хост2[,ME],…>: Маскировка сканирования с помощью фиктивных хостов.
-S <IP_адрес>: Изменить исходный адрес.
-e <интерфейс>: Использовать конкретный интерфейс.
-g/—source-port <номер_порта>: Использовать заданный номер порта.
—data-length <число>: Добавить произвольные данные к посылаемым пакетам.
—ip-options <опции>: Посылать пакет с заданным ip опциями.
—ttl <значение>: Установить IP поле time-to-live (время жизни).
—spoof-mac <MAC_адрес/префикс/название производителя>: Задать собственный MAC адрес.
—badsum: Посылать пакеты с фиктивными TCP/UDP контрольными суммами.

One thought on “Сканирование сети с помощью Nmap.

  1. И не вздумайте использовать ключ -A для сканирования машин на которых стоит Oracle i8: если таковой там был, ляжет. Забыли написать про очень важный параметр — -P0 — сканирует неотвечающие хосты. И вообще — думаю 80% людей на хабре — знают как пользоваться nmap.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *

Этот сайт использует Akismet для борьбы со спамом. Узнайте, как обрабатываются ваши данные комментариев.