Есть ли способ узнать, что именно фильтрует связь по TCP-порту?

Есть ли способ узнать, что именно фильтрует связь по TCP-порту?
nmap -p 7000-7020 10.1.1.1

Выведет все отфильтрованные порты

Starting Nmap 6.40 ( http://nmap.org ) at 2015-03-04 12:18 EET
Nmap scan report for 10.1.1.1
Host is up (0.00091s latency).
PORT     STATE    SERVICE
7000/tcp filtered afs3-fileserver
7001/tcp filtered afs3-callback
7002/tcp filtered afs3-prserver
7003/tcp filtered afs3-vlserver
7004/tcp filtered afs3-kaserver
7005/tcp filtered afs3-volser
7006/tcp filtered afs3-errors
7007/tcp filtered afs3-bos
7008/tcp filtered afs3-update
7009/tcp filtered afs3-rmtsys
7010/tcp filtered ups-onlinet
7011/tcp filtered unknown
7012/tcp filtered unknown
7013/tcp filtered unknown
7014/tcp filtered unknown
7015/tcp filtered unknown
7016/tcp filtered unknown
7017/tcp filtered unknown
7018/tcp filtered unknown
7019/tcp filtered unknown
7020/tcp filtered unknown

Nmap done: 1 IP address (1 host up) scanned in 2.78 seconds

Есть ли способ узнать, что именно фильтрует эти порты?

решение1

Вот что говорится в документации nmap о filteredсостоянии

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

Единственный способ выяснить, что именно осуществляет фильтрацию, — это узнать, какие «машины» находятся между вами и удаленной целью.

Это можно сделать с помощью утилиты трассировки маршрута, которая пытается определить хосты между вами и целью с помощью специальных TCP-пакетов. В вашем случае команда может выглядеть примерно так:

traceroute 10.1.1.1

Узнав, какие машины находятся между вами и целью, вы исследуете конфигурацию каждой из них, чтобы выяснить, осуществляет ли она фильтрацию, и если да, то каким образом.

решение2

Nmap предоставляет несколько способов получить дополнительную информацию о причине фильтрации:

  • Опция --reasonпокажет тип ответа, который вызвал состояние порта "filtered". Это может быть "no-response" или "admin-prohibited" или что-то еще.
  • TTL ответных пакетов сообщается в выходных данных XML как reason_ttlатрибут элемента stateдля порта. Если TTL для фильтруемого порта отличается от (обычно больше) TTL для открытых портов, то разница между TTL равна сетевому расстоянию между целью и фильтрующим устройством. Существуют исключения, такие как цели, которые используют разные начальные TTL для пакетов ICMP и TCP, или фильтрующее устройство, которое фальсифицирует или перезаписывает информацию TTL.
  • Функция --tracerouteпокажет информацию о переходах по вашему маршруту, любой из которых может фильтровать ваш трафик. В некоторых случаях обратное DNS-имя для одного из переходов будет даже чем-то вроде "firewall1.example.com"
  • ThefirewalkСкрипт NSE будет отправлять пакеты с начальными TTL, которые будут выходить из строя на разных участках маршрута, пытаясь найти, где пакеты блокируются. Это что-то вроде комбинации предыдущих двух методов, и обычно работает довольно хорошо.

Текущая невыпущенная версия разработки Nmap также сообщает TTL для ответных пакетов в обычном текстовом выводе с -v --reasonопциями. Однако на данный момент вам придется использовать вывод XML, чтобы получить эту информацию.

ОТРЕДАКТИРОВАНО ДЛЯ ДОБАВЛЕНИЯ:Nmap 6.49BETA1был первым релизом, показывающим TTL для ответных пакетов в текстовом выводе с помощью -v --reasonили -vv, и был выпущен в июне 2015 года.

решение3

Короткий ответ — нет, вы никак не сможете этого увидеть.

Более развернутый ответ:

От:https://nmap.org/book/man-port-scanning-basics.html

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

Вы можете попробовать определить топологию сети с помощью таких инструментов, как traceroute.ОбычноПорты фильтруются на самом хосте (т. е. в таблицах IP-адресов), на граничном маршрутизаторе целевой сети, на маршрутизаторе ядра целевой сети или на коммутаторе L3, расположенном наверху стойки.

Если вы находитесь в той же подсети, что и целевой хост, то почти наверняка на целевой машине установлен брандмауэр.

решение4

Попробуйте сравнить результат tcptrace для одного из отфильтрованных портов с tcptrace для открытого порта (или стандартного traceroute). Если tcptrace одинаковы, это означает, что на машине назначения есть что-то, фильтрующее порты.

Обновление: я имел в виду tcptraceroute, у меня он псевдонимизирован.

Связанный контент