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

10
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

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

Эдуард Флоринеску
источник

Ответы:

11

Это то, что говорят nmap о filteredсостоянии

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

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

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

traceroute 10.1.1.1

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

user9517
источник
На этих двух машинах нет активных программных брандмауэров, nmap -p 7000-7020 localhostпоказаны открытые порты и, как сообщается, выделенный брандмауэр открыт.
Эдуард Флоринеску
4
У вас есть доказательства того, что что-то фильтруется, мы не можем знать, что это такое, поскольку мы не знаем вашу конфигурацию. Брандмауэры на основе хоста часто пропускают весь трафик через интерфейс loopback (localhost), так что это может быть ошибочным тестом.
user9517
Есть ли вероятность, что вы используете Linux с iptables "-j DROP"? То, что документация nmap называется фильтрованной, на самом деле является отброшенным пакетом любого протокола.
risyasin
Это программное обеспечение на самом деле связано с внешним IP? Если все это связано с 127.0.0.1, это может вызвать это. Проверьте netstat
devicenull
12

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

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

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

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

bonsaiviking
источник
1
Очень полезные варианты +1
Эдуард Флоринеску
Да, --script=firewalkэто то , что я пытался найти. Спасибо.
ulidtko
5

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

Более длинный ответ:

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

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

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

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

Maciek Sawicki
источник
2

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

Обновление: я имел в виду tcptraceroute, у меня есть псевдоним.

Makdaam
источник