IP & Network

Verifica server con banner-grab

Scansiona quali servizi (HTTP, FTP, SSH, SMTP) sono attivi sull'host.

Informazioni su questo strumento

Una verifica del server (Server Check) va un passo oltre la scansione delle porte. Ci colleghiamo a una lista fissa di porte di servizio comuni sul vostro host — HTTP, HTTPS, SSH, FTP, SMTP, IMAP, POP3, DNS, MySQL, PostgreSQL, Redis, RDP — e leggiamo qualsiasi cosa il demone dica per primo. La maggior parte dei servizi in chiaro annuncia il proprio prodotto e versione nella prima riga della conversazione; quelli aperti restituiscono un fingerprint reale, quelli chiusi rispondono onestamente e quelli filtrati vanno in timeout a 3 secondi.

Per ogni porta aperta registriamo il banner grezzo, il verdetto parsato sul prodotto (es. nginx/1.25.3, OpenSSH_8.9p1, vsFTPd 3.0.5) e quanto tempo è durato il dial. HTTP e HTTPS sono sondati con una vera richiesta HEAD / così da catturare l'header Server piuttosto che indovinare dal numero di porta; HTTPS usa TLS senza validazione del certificato così che gli host di sviluppo self-signed possano comunque rispondere.

Cosa puoi farci

  • Vedere cosa è effettivamente esposto. Una porta può essere open in un port scanner, ma il server-check indica esattamente quale demone è in ascolto — che spesso è la differenza tra "atteso" e "non autorizzato".
  • Individuare versioni obsolete in pochi secondi. Se il vostro nginx risponde ancora Server: nginx/1.18.0 dopo l'advisory di sicurezza che avete letto, c'è un problema CI/CD da risolvere.
  • Verificare una modifica di hardening. Stretto ServerTokens su Apache o impostato server_tokens off su nginx? Una nuova esecuzione dovrebbe ora riportare solo nginx o Apache senza versione — prova che la direttiva è stata applicata.

Leggere il risultato

"Open + banner" è il caso d'oro: un servizio ha parlato e l'abbiamo riconosciuto. "Open + no banner" è normale per i protocolli binari (RDP, handshake MySQL, startup PostgreSQL) — riportiamo che la porta è raggiungibile ma non possiamo fare fingerprint senza parlare il formato del wire. "Closed" significa che il kernel ha risposto RST — il servizio non è in esecuzione. "Filtered" significa che un firewall ha mangiato il SYN — molti di questi sono intenzionali (VPN admin closed-source), alcuni indicano misconfiguration. I risultati sono cached per 15 minuti per host così i ricaricamenti non rieseguono il dial.

Domande frequenti

Come si differenzia dalla Verifica delle porte?

Il port checker chiede solo "l'handshake TCP si sta completando?". Il server check va oltre: esegue un vero banner-grab — leggendo il greeting che SSH/FTP/SMTP/POP3/IMAP inviano alla connessione, più una vera richiesta HEAD per HTTP/HTTPS — così da poter nominare il prodotto e (quando non rimossa) la versione. Il port checker è più veloce per una lunga lista di porte personalizzate; il server check è lo strumento giusto quando si vuole sapere cosa c'è su ciascuna porta, non solo che qualcosa ci sia.

Perché alcune porte aperte non hanno banner?

I protocolli binari — RDP, handshake pre-auth MySQL, startup PostgreSQL, Redis raw senza greeting RESP — non inviano una riga umanamente leggibile alla connessione. Li marchiamo come open senza fingerprint. Per identificare le versioni di questi servizi serve un client protocol-aware (es. mysqladmin, nmap -sV con lo script giusto). Configurazioni che nascondono i banner (ServerTokens Prod di Apache, server_tokens off di nginx) compaiono allo stesso modo come "open, solo prodotto, nessuna versione".

Sono supportati gli IP privati?

No. Gli intervalli privati RFC 1918, loopback, link-local (169.254/16), CGN (100.64/10) e gli endpoint di metadata cloud sono rifiutati — stessa policy SSRF del resto dei nostri strumenti. Il server check è per host pubblicamente raggiungibili. Per fare audit di un host interno, eseguire uno strumento di banner-grab dall'interno della propria rete.

Perché HTTPS viene riportato anche con un certificato non valido?

Disabilitiamo deliberatamente la validazione del certificato. Lo scopo del controllo è scoprire cosa c'è sulla porta, non validare la fiducia — molti host di sviluppo e self-signed non hanno una chain pubblica valida ma sono comunque target di scansione legittimi. Per un verdetto di fiducia, il prossimo strumento SSL Checker esegue validazione completa della chain, scadenza e controlli sull'emittente; questo strumento legge solo l'header Server:.