Banner-grab-перевірка сервера
Сканує, які сервіси (HTTP, FTP, SSH, SMTP) працюють на хості.
Про цей інструмент
Server check іде на крок далі за port scan. Ми підключаємось до фіксованого списку поширених сервісних портів — HTTP, HTTPS, SSH, FTP, SMTP, IMAP, POP3, DNS, MySQL, PostgreSQL, Redis, RDP — і читаємо те, що демон каже першим. Більшість текстових сервісів оголошують свій продукт і версію в першому рядку розмови; відкриті повертаються з реальним fingerprint, закриті — чесно, firewalled — таймаутять на 3 секундах.
Для кожного відкритого порту ми записуємо сирий banner, наш парсений вердикт про продукт (наприклад, nginx/1.25.3, OpenSSH_8.9p1) і час dial. HTTP та HTTPS пробуємо реальним HEAD /-запитом, щоб захопити заголовок Server, а не вгадувати з номера порту; HTTPS використовує TLS без перевірки сертифіката, тож self-signed dev-хости теж відповідають.
Що з цим можна робити
- Побачити, що насправді відкрито. Порт може бути
openу port scanner, але server-check скаже, який саме демон слухає — а це часто різниця між «очікувано» та «rogue». - Виявити застарілі версії за секунди. Якщо ваш nginx досі відповідає
Server: nginx/1.18.0після security advisory, у вас проблема CI/CD. - Підтвердити зміну hardening. Затягнули
ServerTokensна Apache або поставилиserver_tokens offна nginx? Перезапуск має показати тількиnginxабоApacheбез версії — доказ, що директива застосована.
Як читати результат
«Open + banner» — золотий випадок: сервіс заговорив, ми його впізнали. «Open + no banner» — нормально для бінарних протоколів (RDP, handshake MySQL, startup PostgreSQL); ми повідомляємо, що порт доступний, але без fingerprint без знання wire-формату. «Closed» означає, що ядро надіслалоRST — сервіс не запущено. «Filtered» — firewall з'їв SYN; багато з цього навмисне (closed-source admin VPN), деяке вказує на misconfig. Результати кешуються 15 хвилин на хост.
Часті запитання
Чим це відрізняється від port checker?
HEAD-запит для HTTP/HTTPS — тож може назвати продукт і (коли не приховано) версію. Port checker швидший для довгого списку нестандартних портів; server check — потрібний інструмент, коли треба знати, що на кожному порту, а не лише що щось є.
Чому деякі відкриті порти без banner?
open без fingerprint. Конфігурації, що приховують banner (Apache ServerTokens Prod, nginx server_tokens off), аналогічно показуються як «open, only product, no version».