Чи є спосіб побачити, що насправді фільтрує зв'язок 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

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


На цих двох машинах немає активних брандмауерів програмного забезпечення. nmap -p 7000-7020 localhostПоказано, що порти відкриті, і присвячений брандмауер відкрито.
Едуард Флорінеску

4
Наявні вами докази свідчать про те, що щось фільтрує, ми не можемо знати, що це таке, як ми не знаємо вашу конфігурацію. Брандмауери на основі хостів часто дозволяють увесь трафік на інтерфейсі петлі (localhost), тому це може бути оманливим тестом.
користувач9517

Чи є ймовірність використання 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"
  • firewalkСценарій NSE буде посилати пакети з вихідним РРГОМ , що буде час на різних хмелі уздовж маршруту в спробі знайти , де пакети блокуються. Це щось на зразок поєднання двох попередніх методик, і зазвичай працює досить добре.

Наразі не випущена версія розробки Nmap також повідомляє TTL для пакетів відповідей у ​​звичайному текстовому виведенні з -v --reasonпараметрами. Поки що для отримання цієї інформації вам потрібно використовувати вихід XML.

ВИДАЛЕНО ДО ДОДАТИ: Nmap 6.49BETA1 був першим випуском, який показав TTL для пакетів відповідей у ​​текстовому виведенні з -v --reasonабо -vvта був випущений у червні 2015 року.


1
Дуже корисні варіанти +1
Едуард Флоринеску

Так, --script=firewalkце те, що я намагався знайти. Дякую.
ulidtko

5

Коротка відповідь - Ні, немає способу побачити це.

Більш довга відповідь:

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

"відфільтрований Nmap не може визначити, чи відкритий порт, оскільки фільтрація пакетів перешкоджає його зондам потрапляти до порту. Фільтрування може здійснюватися із спеціалізованого пристрою брандмауера, правил маршрутизатора чи програмного забезпечення брандмауера на основі хоста. Іноді вони відповідають на повідомлення про помилки ICMP, такі як код типу 3 (недоступний пункт призначення: спілкування адміністративно заборонено), але фільтри, які просто скидають зонди, не реагуючи, набагато частіше зустрічаються. Це змушує Nmap повторити спробу кілька разів на випадок, якщо зонд був випав через перевантаженість мережі, а не фільтрування. Це різко уповільнює сканування ".

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

Якщо ви перебуваєте в тій самій підмережі, що і цільовий хост, майже напевно брандмауер знаходиться на цільовій машині.


2

Спробуйте порівняти результат tcptrace з одним з відфільтрованих портів з tcptrace з відкритим портом (або зі стандартною касетою). Якщо tcptraces однакові, це означає, що на машині призначення є щось, що фільтрує порти.

Оновлення: я мав на увазі tcptraceroute, у мене це псевдонім.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.