Nmap : сканирование портов — как это работает?

Сканирование портов через Nmap .

сканирование портов Nmap предназначена для сканирования сетей и вычленения компьютера-хоста, что делает инструмент незаменимым на некоторых этапах тестирования на проникновение. В своих возможностях nmap не ограничена лишь сбором информации и составлением реестра компьютеров в сетке. Она используется как «определялка» уязвимостей и сканер безопасности. Последнее и очень важное – идёт на всех операционных системах (в Линуксе, на мой взгляд, гораздо быстрее).

СРАЗУ. Если вам срочно потребовалось проверить какой-то сайт, а вы не собираетесь тратить время на поиски и установку программы, или просто хотите ознакомиться с предварительными результатами работы сканера, вы можете воспользоваться он-лайн сервисами по сканированию портов. Результаты будут схожи с теми, что выводит на экран Nmap. Вот один из них:

https://hackertarget.com/nmap-online-port-scanner/

Укажите в строке ввода адрес сайта на манер сайт.ru и увидите результаты по 6 основным портам требуемого сайта. В статье же я описываю работу Nmap с машинами в локальной сети: здесь нет надобности пробивать роутер, брутить к нему пароль. Здесь быстрые скорости. Вы, создав на компьютере множество виртуальных машин, вольны практиковаться c командами вдоволь.

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

Что такое nmap?

Сокращение от словосочетания Network Mapping (вольный перевод — составление сетевой карты). Её основные функции — найти рабочий компьютер в сети, определить версию ОС и открытые порты, запущенные на удалённом хосте службы; и самая главная фишка Nmap — скриптовое взаимодействие с системой. А значит…

Что умеет nmap ? Она поможет:

И это всё усилиями одной лишь Nmap.



Как использовать сканирование портов через nmap эффективно?

Nmap умеет использовать сразу несколько отличных друг от друга техник, с помощью которых сканирование портов пройдёт успешно. Самое трудное, что нас поджидает, это обход фаервола и (сейчас внимание!) внедрение программы в систему противника. Учтём и тот факт, что скрипты Nmap постоянно пополняются, и просто невозможно охватить все её возможности. Но это в другой раз, а сейчас только про порты. Да, и не забываем — по умолчанию программа сканирует только первую тысячу портов.

В каждой утилите, в том числе и Nmap, существуют ходовые и проторенные варианты, которые могут значительно облегчить жизнь начинающему. Если что-то не получается, обратитесь к статье Тихое сканирование Nmap или как остаться незамеченным.

Простые команды Nmap.

Самый прямой способ узнать в сети компьютер или нет, это тот самый пинг. Он используется во всех самых простых и самых сложных (по умолчанию) утилитах сканирования. Пинг — это не что иное как ICMP запрос с ожиданием эха (одна из целей его создания, один из главных принципов — машина должна на него ответить). Ping адрес-сайта — самая простая и знакомая всем команда. Её суть — начало простого диалога с компьютером («Ты здесь? — Да/Нет»). Своим названием она обязана сонару, исследующему подводные объекты. В компьютерах сетях всё тоже самое. Большинство наиболее применимых команд Nmap можно найти в статье Самые употребляемые команды Nmap.

Кстати, для начала стоит убедиться, установлена ли сама Nmap. Для этого в терминале Линукс наберите:

nmap --version

Терминал вернёт номер текущей версии продукта. В Кали Nmap предустановлена.

Если нужно просканировать одиночную сеть, используйте команду:

nmap ваша_цель
# nmap ваша_цель.ru
# nmap 192.168.1.1

где ваша_цель — ресурс, который вы сканируете. Эта команда проверит состояние самых используемых портов на этом хосте, запустив сканер TCP портов.

Несмотря на всю кажущуюся простоту, Nmap проводит огромную работу. И это можно немного изменить. Так, утилита начинает с того, что конвертирует имя хоста, приводя его в  IPv4 вид, используя DNS. Вы можете использовать иной DNS сервер, например DNS Google:

nmap --dns-servers 8.8.8.8 site.com

Для чего я это всё пишу… Это и следующее движение можно вообще пропустить. Делается это установкой флага -n . Ведь следующим шагом Nmap будет обратная конвертация IPv4 адреса в имя хоста на латинице. Повторяю, это «дело» можно пропустить:

nmap -n site.com

В итоге целевой компьютер пингуется на предмет «жив» этот хост (работает) или спит, то есть выключен. Но и этот шаг можно пропустить (зачем — рассмотрим подробнее потом), используя опцию -PN:

nmap -PN site.com

И вот запускается само сканирование TCP портов и, чтобы указать, какие порты вас интересуют, можно придать команде вид типа:

nmap -p1-30 site.com #сканирует с 1 по 30 порты
nmap -p- site.com #сканирует все порты
nmap -p[1-65535] site.com #сканирует также все порты

Если нужно отсканировать фрагмент сети или всю, как во второй команде, подсеть, используйте команды:

nmap site.com/cdir
nmap 192.168.1.1/24

Если вы нацелились на ещё куда более обширный объём работ, можете опускать целые ранги в указанных диапазонах с помощью символа * (этот символ прекрасно «прокатывает» в поисковых сиситемах, если вы не уверены в вводимых символах, которые ищете):

nmap 192.168.1.*

и даже

nmap 192.168.*.*

Вариаций куча. Множественные, но выборочные цели сканировать нетрудно; нужно просто разделить цели в набираемой команде с помощью пробела:

nmap цель1 цель2 цель3
# nmap 192.168.1.1 192.168.1.8

Если нужно «проверить» список IP адресов, но не всю сетку, используйте команду типа:

nmap site.com-100

Или

# nmap 192.168.1.1-100

Далее. Допустим, у вас целый список машин, которые вы собираетесь атаковать. Сканер можно заставить просканировать весь список:

# nmap -iL список_целей.txt

…если вы, конечно, абсолютно уверены, что составленный список корректен.

Флаги в Nmap.

Если вы хотите увидеть весь список компьютеров-хостов, которые сканируете, используйте в команде другой параметр:

nmap -sL target/cdir

# nmap -sL 192.168.1.1/24

А вот иногда хакеру нужно просканировать сеть ЗА ИСКЛЮЧЕНИЕМ некоторых адресов (для него это может быть опасно – об этом потом). Тогда в команде нужно использовать параметр исключения:

# nmap 192.168.1.1/24 -exclude 192.168.1.1

Соответственно, если есть файл, который содержит в себе целый список исключений (IP адресов, которые вы хотите исключить из процесса), команда примет вид:

# nmap 192.168.1.1/24 -exclude file target.txt

Подберёмся чуть ближе. Сканируем порты. Если нужно «понюхать» конкретные порты на известных машинах (например, на предмет работы протоколов HTTP, FTP, Telnet – это всё реже), используйте в команде параметр релевантности:

# nmap -p80,21,23 192.168.1.1

Как вы поняли, в сканируемой сети будут исследоваться порты 80, 21 и 23.

 

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

Проблема сервисов (в смысле посканировать) UDP состоит в том, что с ними трудно установить связь. Порой для того, чтобы установить соединение, необходимо использовать специальный протокол, чтобы удалённая машина хоть что-то нам ответила. Плюс ко всему время: сканирование UDP сервисов отнимает времени гораздо больше, нежели на обычные TCP порты. Однако многие VPN открывают для «прослушки» только именно порты UDP. Похожим образом действуют NTP и DNS. И здесь можно применить такую стратегию: сначала работаем порты TCP, вторым заходом — UDP. Эффект — чисто психологический: собираем предварительный урожай из TCP портов, а потом фоном тратим МНОГО времени на UDP сервисы.

Команда сканирования UDP имеет вид (кстати, процесс требует root прав):

nmap -sU 192.168.0.101

Времени потребуется много, так что сразу лучше вспомнить конкретные номера портов, на которых сидят UDP службы:

nmap -sU 192.168.0.101 -p123

Какие команды сканирования портов доступны?

Как вы поняли, ключевым параметром скриптового движка Nmap при сканировании портов (NSE) является добавление именно флага -p. Вот какие вариации с этим флагом возможны:

# nmap -p80,443 цель.com

Сканирует два порта — 80 и 443

nmap -p1-100 цель.com

Сканирует порты с первого по сотый

nmap -p- цель.com

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

nmap -pT:25,U:53 цель.com

Сканирует порт 25 TCP и 53 UDP

nmap -p smtp цель.com

Сканирует порты на предмет запущенного сервиса (в нашем случае smtp)

nmap -p[1-65535] цель.com

Сканирование портов из числа тех, что зарегистрированны только в службах Nmap

Немного поглубже или виды сканирования

Программа Nmap несёт в себе сразу несколько техник сканирования. В том числе сканирование по методу соединения по протоколу TCP. Рассмотрим метод поближе.

К СВЕДЕНИЮ

Обычно, когда запускается сканер Nmap, и начинается скнирование портов, сначала идёт запрос пингом, а затем поэтапно сканируются и порты. В этом и смысл защиты: не ответив на пинг, хост сканироваться не будет (что искать по адресу, который не в сети?). Вот, в Nmap для пропуска первоначального пинга добавим флаг -Pn и вектор сканирования будет смещён. Предупреждаю, это отнимет время: сканер будет принудительно «шерстить» действительно отключённые машины. Однако порой для сканирования машин, которые Nmap обычным пингованием пропустила бы, такой вариант может оказаться полезным. Особенно это касается сканирования большого количества адресов в сетях класса B — можно выцепить некоторые компьютеры, которые маскируются под DEAD. Сюда же можно отнести и использование флага -sL, с помощью которого можно обнаружить спрятавшиеся поддомены.

И, наконец, нельзя не упомянуть о сканировании пингованием TCP SYN. Он, в отличие от простого пинга (запроса ICMP) щупает хосты на предмет ответа порта на SYN запрос. Например, если мы сканируем целый блок IP адресов, на которых запущены SSL серверы, добавления флага -PS 443 пощупает указанный порт на вероятность ответа.

Запись опубликована в рубрике Linux, Полезные программы. Добавьте в закладки постоянную ссылку.

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

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

четырнадцать + шесть =