Перейти к содержимому

Port filtered что это

  • автор:

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

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

Рассмотрим использование утилиты в Debian. В стандартной поставке дистрибутива nmap отсутствует, установим его командой

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

# nmap -O scanme.nmap.org

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

Вообще, точную версию ядра средствами 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 -A scanme.nmap.org

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

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

# nmap -sP 192.168.1.0/24

Сканирование проходит довольно быстро, так как по сути это обычный ping-тест, отвечает ли хост на ping. Следует учесть, что хост может не отвечать на ping из-за настроек фаерволла. Если нужный участок сети нельзя ограничить маской, можно указать диапазон адресов, с какого и по какой надо провести сканирование. Например, есть диапазон адресов с 192.168.1.2 до 192.168.1.5. Тогда выполним:

# nmap -sP 192.168.1.2-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 уточнил, что сканирование портов все-таки не является противозаконным.

Nmap для пентестера: статус порта

Nmap для пентестера: статус порта

Сегодня мы рассмотрим один из наиболее универсальных инструментов пентестера — Nmap — культовый кроссплатформенный сканер, который расшифровывается как «Network Mapper». Инструмент сам по себе довольно мощный, но его чаще всего используют в связке с другими утилитами, не предполагая, что, помимо способности сканировать сеть, Nmap имеет массу других возможностей.

Хотя Nmap постоянно наращивала функциональность, изначально утилита разрабатывалась как эффективный сканер портов, и она по-прежнему сохраняет свои основные функции. Простой командой nmap будет произведено сканирование более чем 1660 TCP портов на . В то время как многие сканеры портов традиционно разделяют все порты на закрытые и открытые, Nmap имеет более подробную шкалу деления. Она подразделяет порты на шесть состояний: открыт, закрыт, фильтруется, не фильтурется, открыт|фильтруется или закрыт|фильтруется.

Эти состояния не являются собственно характеристиками самих портов, а лишь описывают, как Nmap видит их. Например, сканирование из той же сети, что и цель, может показать, что порт 135/tcp открыт, в то время как сканирование из Интернета в то же время и с теми же опциями может показать, что порт фильтруется.

Nmap — эталон среди сканеров портов и один из важнейших инструментов пентестера.

Давай начнем

Требование

  • IP атакующего: 192.168.1.109 [Kali Linux]
  • IP-адрес цели: 192.168.1.119 [Ubuntu]

Состояния портов не являются их существенными свойствами; он показывает, как их видит Nmap. В Nmap порт разделен на шесть состояний:

  1. Открыто: это состояние означает, что приложение на целевой машине прослушивает соединения / пакеты на этом порту.
  2. Закрыт: это состояние означает, что на портах нет приложений, которые их прослушивают, хотя они могут открыться в любое время.
  3. Filtered: это состояние означает, что брандмауэр, фильтр или другое сетевое препятствие блокирует порт, поэтому Nmap не может определить, открыт он или закрыт.
  4. Без фильтрации: порты классифицируются как нефильтрованные, если они реагируют на запросы Nmap, но Nmap не может определить, открыты они или закрыты.
  5. Open / Filtered: указывает, что порт был отфильтрован или открыт, но Nmap не смог установить состояние.
  6. Closed / Filtered : указывает, что порт был отфильтрован или закрыт, но Nmap не смог установить состояние.

Открытый порт

В этом случае служба или приложение, работающее на порту, активно принимает соединения TCP, UDP. Мы отправляем TCP-пакеты на 80-й порт целевой машины. Находим, что порт открыт.

nmap -p80 192.168.1.119

, Nmap для пентестера: статус порта

Мы смотрим на wirehark и обнаруживаем, что происходит трехстороннее рукопожатие, как показано ниже.

  • Nmap отправляет SYN-пакет на порт 80
  • Nmap получил пакет SYN, ACK как ответ от порта 80, который означает, что порт 80 открыт.
  • Nmap отправляет пакет RST

к содержанию ↑

Закрытый порт

В этом случае служба или приложение на порту доступны, но на нем не запущено ни одно приложение. Когда порт находится в закрытом состоянии, он отправляет RST с пакетом ACK, когда получает пакет TCP SYN.

nmap -p80 192.168.1.119

Теперь мы использовали сканирование SYN для отправки пакетов TCP SYN на порт 80 целевой машины и обнаружили, что цель закрыта . Это потому, что как только он получает пакет TCP SYN, он отправляет обратно пакет TCP RST, ACK.

, Nmap для пентестера: статус порта

Мы проверим wirehark, чтобы найти дополнительную информацию, как и ожидалось, как только целевая машина получила пакет TCP SYN, она ответила TCP RST, и NMAP интерпретировал его как закрытый порт.

  • Nmap отправляет SYN-пакет на порт 80
  • Nmap получил пакет RST, ACK как ответ от порта 80, что означает, что порт 80 закрыт.

Отфильтрованный порт

В этом случае Nmap не может определить, открыт ли порт, потому что фильтрация пакетов не позволяет пакетам достигать порта. Когда пакет отброшен, Nmap повторяет попытку несколько раз на тот случай, если зонд был отброшен из-за перегрузки сети, а не из-за фильтрации. Это резко замедляет сканирование.

Давайте воспользуемся iptables, чтобы отбросить TCP-пакеты на целевой машине.

iptables -I INPUT -p tcp -j DROP

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

nmap -p80 192.168.1.119

Из приведенного ниже изображения вы можете увидеть, что теперь оно показывает состояние «отфильтровано» для порта 80.

, Nmap для пентестера: статус порта

Давайте посмотрим на wirehark и обнаружим, что когда Nmap отправляет TCP SYN-пакет, мы не получаем ответа от целевой машины. Это означает, что фильтр пакетов или брандмауэр отбрасывает наши пакеты.

к содержанию ↑

Нефильтрованный порт

Нефильтрованное состояние означает, что порт доступен, но Nmap не может определить, открыт он или закрыт. Только сканирование ACK, которое используется для сопоставления наборов правил брандмауэра, классифицирует порты в этом состоянии. Сканирование нефильтрованных портов с помощью других типов сканирования, таких как сканирование окон, сканирование SYN или сканирование FIN, может помочь определить, открыт ли порт.

Мы используем iptables для отбрасывания любого TCP-пакета, поступающего на порт 80 на целевой машине.

iptables -I INPUT -p tcp – dport = 80 -j DROP

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

nmap –sA -p22,80 192.168.1.119

Как видно на приведенном ниже изображении, порт без брандмауэра отображается как неотфильтрованный, поскольку Nmap не может определить, открыт он или закрыт.

, Nmap для пентестера: статус порта

Мы можем видеть в wirehark, что для порта 22 мы получаем пакет RST, тогда как в случае порта 80 пакет отбрасывается целевой машиной.

к содержанию ↑

Открыть | Отфильтрованный порт

В этом случае Nmap не может определить, открыт порт или отфильтрован. Это происходит для типов сканирования, при которых открытые порты не отвечают. Отсутствие ответа также может означать, что фильтр пакетов отбросил зонд или любой вызванный им ответ. Таким образом, Nmap не знает наверняка, открыт порт или фильтруется. Сканирование UDP, IP-протокол, FIN, NULL и Xmas позволяет классифицировать порты таким образом.

Давайте воспользуемся nmap Xmas scan для сканирования целевой машины.

nmap -sX -p80 192.168.1.119

Как мы видим, сканирование nmap показывает нам порт, который должен быть открыт | фильтрованный.

, Nmap для пентестера: статус порта

Мы проверим WireShark, чтобы проанализировать пакеты, отправленные Nmap, и увидим, что не получаем ответа, даже если порт открыт.

к содержанию ↑

Закрыто | Отфильтрованный порт

Это состояние используется, когда Nmap не может определить, закрыт порт или отфильтрован. Он используется только для сканирования в режиме ожидания IP-идентификатора .

Мы используем iptables на нашей целевой машине, чтобы отбрасывать входящие TCP-пакеты на целевой машине.

iptables -I INPUT -p tcp -j DROP

Мы проведем сканирование IP ID на целевой машине, используя 192.168.1.107 в качестве нашего зомби.

nmap -p80 -sI 192.168.1.107 192.168.1.119

Как мы видим при сканировании в режиме ожидания зомби, он показывает состояние закрыто | фильтруется для порта 80.

, Nmap для пентестера: статус порта

Сканирование в режиме ожидания состоит из трех шагов, которые повторяются для каждого порта:

  1. Проверьте IP-идентификатор зомби и запишите его.
  2. Создайте SYN-пакет от зомби и отправьте его на нужный порт на цели. В зависимости от состояния порта реакция цели может привести или не привести к увеличению IP-идентификатора зомби.
  3. Еще раз проверьте IP ID зомби. Затем состояние целевого порта определяется путем сравнения этого нового IP-идентификатора с идентификатором, записанным на шаге 1.

Мы проверяем Wireshark и обнаруживаем, что нашли весь процесс.

Nmap (Русский)

Состояние перевода: На этой странице представлен перевод статьи Nmap. Дата последней синхронизации: 10 декабря 2022. Вы можете помочь синхронизировать перевод, если в английской версии произошли изменения.

Nmap (“Network Mapper”) — инструмент с открытым исходным кодом для исследования сети и аудита безопасности. Он был разработан для быстрого сканирования больших сетей, хотя прекрасно работает и с отдельными хостами. Nmap использует raw IP-пакеты для определения, какие хосты доступны в сети, какие сервисы (имя и версия приложения) на них запущены, какие операционные системы (и версии ОС) на них установлены, какие типы пакетных фильтров/межсетевых экранов используются, и десятки других характеристик. Хотя Nmap обычно используется для аудита безопасности, многие системные и сетевые администраторы находят его полезным для выполнения рутинных задач, таких как инвентаризация сети, управление графиком обновления служб и мониторинг времени работы хостов или служб.

Важно: Сканирование чужих сетей является незаконным в довольно многих юрисдикциях. Дважды проверьте, что вы сканируете только свои собственные узлы (смотрите раздел #Сканирование с целью составления списка), или получите разрешение у соответствующего владельца, прежде чем выполнять сканирование!

Установка

Также есть графический интерфейс zenmap AUR , но в этой статье рассматривается только использование командной строки.

Использование

Определение цели сканирования

Совет: Чтобы вывести все пакеты, которые отправляет и получает Nmap, используйте опцию —packet-trace .

Есть несколько способов задать цель, которую Nmap должен будет просканировать. Самый простой способ — написать адрес или домен:

$ nmap scanme.nmap.org $ nmap 74.207.244.221
Определение нескольких целей

С помощью CIDR-нотации можно задать диапазон адресов. Следующий пример будет сканировать все 256 IP-адресов, начинающихся на 10.1.1 :

$ nmap 10.1.1.0/24

Примечание: Число 0 в данном примере ни на что не влияет: nmap 10.1.1.0/24 и, к примеру, nmap 10.1.1.134/24 означают одно и то же.

Можно задать диапазон через дефис. Пример сканирования 10.1.50.1 , 10.1.51.1 и 10.1.52.1 :

$ nmap 10.1.50-52.1

Задать определённые значения через запятую:

$ nmap 10.1.50,51,52,57,59.1
$ nmap 10.1,2.50-52.1/30 10.1.1.1 10.1.1.2

Сканирование с целью составления списка

Опция -sL (list scan) полезна для проверки, что вы задали правильные цели сканирования, перед выполнением реального сканирования:

$ nmap -sL 10.1,2.50-52.1/30 10.1.1.1 10.1.1.2

Запуск с этой опцией просто выведет список всех прописанных адресов без отправки им каких-либо пакетов.

Опции по умолчанию

Если вы укажете только IP-адрес или домен без дополнительных опций:

$ nmap 74.207.244.221

Nmap сделает следующее:

  1. Домен будет преобразован в IP-адрес или, наоборот, IP-адрес будет преобразован в домен с помощью reverse-DNS (для отключения добавьте опцию -n ).
  2. Выполнится пинг-сканирование с использованием TCP ACK:80 и ICMP. Это эквивалентно -PA -PE (для отключения добавьте опцию -PN ).
  3. Выполнится сканирование 1000 самых популярных портов. При запуске от имени root используется скрытное SYN-сканирование. При запуске от имени пользователя используется сканирование с помощью системного вызова connect .

Пинг-сканирование

Пинг-сканирование (ping scan, обнаружение хостов) — это метод определения, работают ли указанные компьютеры. По умолчанию Nmap выполняет пинг-сканирование перед сканированием портов, чтобы не тратить время на хосты, которых даже нет в сети. Чтобы выполнить только пинг-сканирование, используйте опцию:

$ nmap -sn 10.1.1.1/8

Nmap проверит доступность каждого указанного хоста и выведет список ответивших хостов.

Nmap использует разные типы пингования при запуске с правами пользователя или root и при сканировании своей или сторонней подсети:

Внешний IP Локальный IP
Обычный пользователь TCP SYN на портах 80 и 443 TCP SYN на портах 80 и 443 и ARP
Суперпользователь TCP SYN на портах 80 и 443 и IGMP ARP

Типы пинг-сканирования

Опция Тип
-Pn Отключение пинг-сканирования
-PS TCP SYN (по умолчанию на порту 80)
-PA TCP ACK (по умолчанию на порту 80)
-PU UDP
-PY SCTP INIT
-PE ICMP Echo
-PP ICMP timestamp
-PM ICMP address mask
-PO Other IP protocol
-PR ARP сканирование

-Pn полезен, когда сканируемый хост защищён межсетевым экраном, который блокирует доступ к TCP-портам 80 и 443 и IGMP-запросы, но может принимать подключения на других менее распространённых портах.

Сканирование портов

Порт может быть в трёх основных состояниях:

  • открыт ( open ) — на хосте есть программа, которая слушает этот порт и успешно ответила на запрос
  • закрыт ( closed ) — хост ответил, что этот порт никто не слушает
  • фильтруется ( filtered ) — хост вообще не ответил. Это может означать, что запрос был заблокирован межсетевым экраном

В дополнение к ним существует ещё 3 состояния, в которых Nmap может классифицировать порт. Они используются, когда Nmap не может достоверно определить состояние, но подозревает два из трех возможных состояний:

  • open|closed ( unfiltered ) — порт открыт или закрыт (при ACK-сканировании)
  • closed|filtered ) — порт закрыт или фильтруется (при сканировании IP ID idle типа)
  • open|filtered — порт открыт или фильтруется (например, при UDP-сканировании)

По умолчанию Nmap сканирует 1000 самых популярных портов, указанных в файле /usr/share/nmap/nmap-services . Можно задать сканирование другого количества популярных портов:

$ nmap --top-ports 1000 10.1.1.1

Чтобы задать свои номера портов, используйте опцию -p :

$ nmap -p -25,135-137 10.1.1.1

Определение портов с дефисами и запятыми работает так же, как и #Определение цели сканирования. Кроме того, можно указать все порты до/после заданного, пропуская начальный/конечный порт при использовании дефиса. Например, для сканирования всех возможных 65535 портов (кроме порта 0):

$ nmap -p -

Типы сканирования

Опция Тип
-sP Только пинг-сканирование
-sS TCP SYN (скрытное) (По умолчанию при запуске суперпользователем)
-sT TCP с системным вызовом connect (По умолчанию при запуске обычным пользователем)
-sA TCP ACK
-sF TCP FIN
-sX TCP FIN, SYN, ACK
-sW TCP window
-sM TCP сканирование Мэймона (Maimon)
-sU UDP-сканирование
-sI «Ленивое» idle сканирование
-b FTP bounce сканирование
-sO Сканирование других IP-протоколов

Методы борьбы со сканированием

Модуль PSD для iptables

PSD — модуль расширения для iptables. Он также применяется в некоторых коммерческих маршрутизаторах, использующих Linux.

У него есть 4 параметра:

  • —psd-weight-threshold порог , по умолчанию: 21
  • —psd-delay-threshold задержка , по умолчанию: 300 (3 секунды)
  • —psd-lo-ports-weight вес , по умолчанию: 3
  • —psd-hi-ports-weight вес , по умолчанию: 1

Принцип действия PSD простой. Если запросы с одного IP набрали суммарный вес, превышающий заданный порог в течение заданной задержки, то IP классифицируется как сканер портов. В математическом выражении:

lo_ports_weight * REQUESTS_LOW + hi_ports_weight * REQUESTS_HIGH >= threshold 
REQUESTS_LOW = число запросов к привилегированным (от 0 до 1023) портам в течение заданной задержки REQUESTS_HI = число запросов к непривилегированным (от 1024 до 65535) портам в течение заданной задержки

Примеры при использовании параметров по умолчанию:

  • Если хост обратился как минимум к 7 привилегированным портам в течение 3 секунд, он считается сканером портов.
  • Если хост обратился как минимум к 21 непривилегированным портам в течение 3 секунд, он считается сканером портов.
  • Если хост обратился к 4 привилегированным и к 9 непривилегированным портам в течение 3 секунд, он считается сканером портов, потому что 4*3 + 9*1 >= 21 .

Избегание обнаружения

Простейший способ обойти PSD — просто сканировать медленно. Для параметров PSD по умолчанию достаточно добавить такую опцию:

$ nmap --scan-delay 3.1 192.168.56.1

Ещё одним интересным фактом о PSD является то, что он не определяет запрос как сканирование порта, если установлены флаги ack или rst (смотрите функцию is_portscan в xt_psd.c).

Также, если вы сканируете порт хоста, а на нём запущена служба HTTP(S), nmap по умолчанию будет использовать User-Agent Mozilla/5.0 (compatible; Nmap Scripting Engine; https://nmap.org/book/nse.html) . Таким образом, ваши действия будут легко обнаружены, особенно если администратор или робот следят за появлением такого User-Agent в журналах сервера. К счастью, nmap позволяет нам легко изменить эту строку: просто добавьте опцию -script-args http.useragent . Источник

Советы и рекомендации

Ограничение скорости сканирования

Сканирование Nmap происходит быстро. Хотя это обычно желательно, иногда это может стать проблемой. Например, когда вы хотите протестировать межсетевой экран вашей системы, не отключая активированные правила обнаружения флуда, или когда вы хотите провести длительное тестирование для определённого порта/сервиса. Следующие опции определяют скорость, с которой Nmap отправляет пакеты.

Чтобы отправлять пакеты не чаще, чем каждые 3,333 секунды:

$ nmap --max-rate 0.3 192.168.56.1

Чтобы отправлять пакеты раз в 3,1 секунды:

$ nmap --scan-delay 3.1 192.168.56.1

Есть и другие опции, которые подробно описаны в nmap(1) .

Считывание целей из файла

Если нужно просканировать большое количество несмежных адресов, то прописывать их все в командной строке обычно неудобно. По этой причине Nmap поддерживает чтение целей из файла с помощью опции -iL (input from a list file):

addresses.txt
10.1.1.1 10.1.1.2 10.1.1-10.3 10.3.1.3 10.3.1.50 10.3.2.55 10.1.1.100 .
$ nmap -iL addresses.txt

Адреса нужно разделять пробельными символами.

Также можно считывать список из стандартного ввода ( — означает стандартный ввод во многих консольных инструментах):

$ echo "10.1.1.1 10.1.1.2 10.1.1-10.3" | nmap -iL -

Исключение целей из сканирования

$ nmap 10.1.1.1-10 --exclude 10.1.1.5,7

Или считывание из файла:

$ nmap 10.1.1.1-10 --excludefile excludeaddr.txt

Подмена

Подмена исходящего IP-адреса:

$ nmap -S 192.168.56.35 -e vboxnet0 192.168.56.11
$ nmap --spoof-mac 01:02:03:04:05:06 192.168.56.11

Подмена исходящего порта:

$ nmap --source-port 22 192.168.56.11

Ускорение сканирования

По умолчанию nmap выполняет DNS/reverse-DNS запросы. Чтобы отключить это, используйте опцию -n :

$ nmap -n 192.168.56.0/24

Это ускоряет сканирование примерно в 2 раза.

Сканирование порта 0

По умолчанию порт с номером 0 не сканируется, даже если указать опцию -p — . Чтобы просканировать и его тоже, явно задайте диапазон с его использованием. Например, чтобы просканировать абсолютно все порты:

$ nmap -p 0-65535

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

Форматы вывода файлов

Помимо вывода в терминал, Nmap умеет записывать результаты сканирования в файл:

  • -oN файл
  • -oX файл
  • -oG файл
  • -oA имя

Например, чтобы записать вывод в терминал, в файл и в XML-файл:

$ nmap -oN output.txt -oX output.xml scanme.nmap.org

Смотрите также

  • Wikipedia:ru:nmap
  • Официальный сайт
  • Nmap Network Scanning book

Port filtered что это

Хотя Nmap постоянно наращивала функциональность, изначально утилита разрабатывалась как эффективный сканер портов, и она по-прежнему сохраняет свои основные функции. Простой командой nmap будет произведено сканирование более чем 1660 TCP портов на . В то время как многие сканеры портов традиционно разделяют все порты на закрытые и открытые, Nmap имеет более подробную шкалу деления. Она подразделяет порты на шесть состояний: открыт , закрыт , фильтруется , не фильтурется , открыт|фильтруется или закрыт|фильтруется .

Эти состояния не являются собственно характеристиками самих портов, а лишь описывают, как Nmap видит их. Например, сканирование из той же сети, что и цель, может показать, что порт 135/tcp открыт, в то время как сканирование из Интернета в то же время и с теми же опциями может показать, что порт фильтруется .

Шесть состояний портов распознаваемых Nmap

Приложение принимает запросы на TCP соединение или UDP пакеты на этот порт. Обнаружение этого состояния обычно является основной целью сканирования. Люди разбирающиеся в безопасности знают, что каждый открытый порт это прямой путь к осуществлению атаки. Атакующие хотят использовать открытые порты, а администраторы пытаются закрыть их или защитить с помощью брадмауэров так, чтобы не мешать работе обычных пользователей. Октрытые порты также интересны с точки зрения сканирования, не связанного с безопасностью, т.к. они позволяют определить службы доступные в сети.

Закрытый порт доступен (он принимает и отвечает на запросы Nmap), но не используется каким-либо приложением. Они могут быть полезны для установления, что по заданному IP адресу есть работающий хост (определение хостов, ping сканирование), или для определения ОС. Т.к. эти порты достижимы, может быть полезным произвести сканирование позже, т.к. некоторые из них могут открыться. Администраторы могут заблокировать такие порты с помощью брандмауэров. Тогда их состояние будет определено как фильтруется, что обсуждается далее.

Nmap не может определить, открыт ли порт, т.к. фильтрация пакетов не позволяет достичь запросам Nmap этого порта. Фильтрация может осуществляться выделенным брадмауэром, правилами роутера или брандмауэром на целевой машине. Эти порты бесполезны для атакующих, т.к. предоставляют очень мало информации. Иногда они отвечают ICMP сообщениями об ошибке, такими как тип 3 код 13 (destination unreachable: communication administratively prohibited (цель назначения недоступна: связь запрещена администратором)), но чаще встречаются фильтры, которые отбрасывают запросы без предоставления какой-либо информации. Это заставляет Nmap совершить еще несколько запросов, чтобы убедиться, что запрос был отброшен фильтром, а не затором в сети. Это очень сильно замедляет сканирование.

Это состояние означает, что порт доступен, но Nmap не может определить открыт он или закрыт. Только ACK сканирование, используемое для определения правил брандмауэра, может охарактеризовать порт этим состоянием. Сканирование не фильтруемых портов другими способами, такими как Window сканирование, SYN сканирование или FIN сканирование может помочь определить, является ли порт открытым.

Nmap характеризует порт таким состоянием, когда не может определить октрыт порт или фильтруется. Это состояние возникает при таких типах сканирования, при которых открытые порты не отвечают. Отсутствие ответа также может означать, что пакетный фильтр не пропустил запрос или ответ не был получен. Поэтому Nmap не может определить наверняка открыт порт или фильтруется. При сканировании UDP, по IP протоколу, FIN, NULL, а также Xmas порт может быть охарактеризован таким состоянием.

Это состояние используется, когда Nmap не может определить закрыт порт или фильтруется. Используется только при сканировании IP ID idle типа.

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

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