Tecniche di Rilevamento Host e Enumerazione di Rete

Scoperta ARP vs. Scoperta Host a Livello IP: Il Confine del Segmento Locale

La scoperta host di Nmap opera attraverso due meccanismi fondamentalmente diversi a seconda della topologia di rete. La scoperta ARP (-PR) domina sui segmenti Ethernet locali perché interroga direttamente il livello data-link, bypassando completamente il filtraggio dello stack IP. Quando si prende di mira 192.168.1.0/24 dallo stesso dominio di broadcast, Nmap invia richieste ARP e attende risposte—nessuna porta, nessun protocollo, solo risoluzione degli indirizzi MAC. Questo ha successo anche contro host con firewall personali aggressivi che bloccano tutto il traffico IP, poiché ARP è prerequisito per il funzionamento TCP/IP.

La limitazione è assoluta: ARP non attraversa i router. Per le reti remote, Nmap ricorre alla scoperta host a livello IP, dove i pacchetti devono attraversare l'infrastruttura di routing e affrontare il filtraggio ad ogni hop. Questo cambiamento riduce drasticamente i tassi di successo. I sistemi operativi moderni complicano ulteriormente la situazione: Windows 10/11 con Windows Defender Firewall predefinito blocca tutte le richieste di echo ICMP in entrata non sollecitate e ignora la maggior parte delle sonde TCP verso porte chiuse senza risposte RST, mentre le distribuzioni Linux con iptables/nftables o ufw abilitati silenziano analogamente il traffico di scoperta. La tua strategia deve adattarsi a questa eterogeneità.

Tecniche Basate su ICMP: Richieste Echo, Timestamp e Address Mask

Nmap fornisce tre famiglie di sonde ICMP, ciascuna con caratteristiche distinte di evasione firewall:

| Flag | Tipo di Sonda | Tasso di Successo Tipico | Note sull'Evasione | |------|--------------|--------------------------|-------------------| | -PE | Richiesta echo (Tipo 8 → 0) | Basso (ampiamente bloccato) | Primo obiettivo delle regole firewall; spesso scartato senza logging | | -PP | Richiesta timestamp (Tipo 13 → 14) | Moderato | Frequentemente permesso per sistemi dipendenti da NTP; Windows risponde per default | | -PM | Richiesta address mask (Tipo 17 → 18) | Molto basso | Raramente implementato; quasi universalmente bloccato |

Le differenze di comportamento concrete contano. Gli host Windows rispondono alle richieste ICMP timestamp (-PP) anche quando le richieste echo sono bloccate, perché il firewall Windows predefinito permette le risposte timestamp per compatibilità legacy. Linux con nftables predefinito o iptables -P INPUT DROP tipicamente blocca tutte e tre. La richiesta address mask (-PM) sopravvive principalmente su sistemi Unix antichi e dispositivi embedded; includila solo quando si effettua audit di reti di controllo industriale legacy.

Quando ICMP è interamente filtrato, la tua strategia di scoperta deve puntare sulle alternative TCP/UDP. Combina esplicitamente sonde per la difesa in profondità:

nmap -PE -PP -PM -PS22,80,443 -PA80,443 -PU53,161,40125 10.0.0.0/24

Questo inonda i target con molteplici tipi di sonde, massimizzando la possibilità di ottenere qualsiasi risposta.

TCP SYN Ping, TCP ACK Ping e Strategie di Sonda UDP

TCP SYN ping (-PS) invia pacchetti SYN verso porte specificate, attendendo SYN-ACK (host attivo) o RST (host attivo, porta chiusa). La selezione della porta determina il successo:

  • Porta 22 (SSH): Universale sui server Linux; raramente filtrata per la gestione remota
  • Porta 80/443 (HTTP/HTTPS): Presente su praticamente ogni sistema; i web application firewall possono scartare SYN senza flussi stabiliti
  • Porta 445 (SMB): Specifico di Windows; spesso filtrato ai confini di rete per il rischio ransomware
  • Porta 3389 (RDP): Specifico di Windows; frequentemente bloccato dalle policy aziendali
  • Porte alte (49152–65535): Range effimero; utile contro dispositivi NAT dove il port forwarding crea listener inaspettati

TCP ACK ping (-PA) invia pacchetti ACK, sfruttando il comportamento dei firewall stateful. Gli ACL stateless lasciano passare gli ACK (corrispondono a regole "established"), rivelando host dietro router malconfigurati. I firewall stateful e i firewall host scartano ACK senza stato di connessione corrispondente, producendo falsi negativi. Windows risponde con RST agli ACK su porte chiuse a meno che la modalità "stealth" di Windows Defender Firewall sia abilitata (default sulle versioni più recenti). iptables di Linux con regole --tcp-flags può scartare silenziosamente.

UDP ping (-PU) prende di mira porte dove le risposte ICMP port unreachable indicano la presenza dell'host. La selezione delle porte è critica e controintuitiva:

# Strategia per ambiente misto Windows/Linux
nmap -PU53,67,68,69,111,123,137,138,161,162,500,1900,5353,40125 172.16.0.0/20
  • Porta 53 (DNS): Risponditori UDP comuni; assenza di port unreachable = host attivo
  • Porta 67/68 (DHCP): Infrastruttura broadcast; i client Windows ascoltano
  • Porta 161 (SNMP): Dispositivi di rete, stampanti, server; target di scoperta ad alto valore
  • Porta 40125 (alta casuale): Improbabile utilizzo; ICMP unreachable indica definitivamente che l'host esiste

La modalità di fallimento UDP è ambigua: nessuna risposta significa host attivo con porta filtrata, host inattivo, o ICMP administratively prohibited. Combina con -PS o -PA per conferma.

IP Protocol Ping per Ambienti Esotici

Il flag -PY invia sonde con numeri di protocollo IP variabili nell'intestazione IP (non TCP/UDP/ICMP). I target che rispondono con ICMP protocol unreachable (Tipo 3, Codice 2) confermano l'esistenza dell'host. Numeri di protocollo comuni da testare:

nmap -PY1,2,4,6,17,47,50,51,94,132,136 192.168.100.0/24
  • Protocollo 1 (ICMP): Ridondante con -PE, ma bypassa alcuni filtri a livello applicazione
  • Protocollo 6 (TCP): Incapsulamento insolito; può scivolare oltre ACL semplici basati su protocollo
  • Protocollo 17 (UDP): Alternativa a -PU quando le porte UDP sono specificamente filtrate ma il campo protocollo non è verificato
  • Protocollo 47 (GRE): Tunnel VPN; la presenza indica concentratori VPN
  • Protocollo 50 (ESP) / 51 (AH): IPsec; gli endpoint VPN attivi rispondono

Il successo è di nicchia: principalmente valutabile contro reti MPLS, reti militari/governative con routing specifico per protocollo, e dispositivi embedded/IoT con stack IP minimi che rispondono in modo errato a protocolli inaspettati. La maggior parte dei firewall aziendali normalizza o scarta protocolli sconosciuti.

List Scanning e Nessuna Scansione Porte: Inventario Senza Intrusione

List scan (-sL) esegue lookup DNS inversi senza inviare pacchetti agli host target:

nmap -sL 203.0.113.0/24

L'output rivela i record PTR dove configurati, costruendo mappe di rete dalla sola infrastruttura DNS. Rischio di intrusione zero—nessun pacchetto raggiunge gli endpoint. Limitazione: richiede zone DNS inverse funzionanti, sempre meno comuni negli ambienti cloud (AWS, Azure) dove le allocazioni IP mancano di mapping DNS persistenti.

Nessuna scansione porte (-sn, precedentemente -sP) esegue la scoperta host senza scansione porte:

nmap -sn -PE -PS22,443 -PA80 -PU53,161 --traceroute 10.0.0.0/8

Questo scopre host attivi, esegue DNS inverso e traccia route, producendo un inventario di rete completo adatto alla gestione degli asset. Critico per la ricognizione pre-engagement dove la scansione porte attiva allarmi di intrusion detection o viola lo scope della valutazione. L'aggiunta di --traceroute mappa la topologia senza traffico di sonda aggiuntivo.

Sfide Specifiche della Scoperta IPv6

IPv6 altera fondamentalmente la scoperta host. Il flag -6 abilita la modalità IPv6, ma il design del protocollo introduce vincoli:

  • Sostituzione di ARP con Neighbor Discovery (NDP): ICMPv6 Tipo 135/136 sostituisce ARP; Nmap utilizza questo automaticamente sui segmenti locali
  • Enormità dello spazio di indirizzi: Le subnet /64 contengono 2^64 indirizzi; la scoperta brute-force è impossibile
  • Dipendenza dal multicast: Gli indirizzi multicast solicited-node (ff02::1:ffxx:xxxx) riducono lo scope delle sonde ma richiedono infrastruttura multicast-capable

La scoperta IPv6 pratica richiede liste di target seminate da DNS, log DHCPv6 o router advertisements:

# IPv6 con scoperta mista, richiede input di indirizzo o DNS esplicito
nmap -6 -sn -PS80,443 -PA443 -PU53,547 server.example.com 2001:db8::/64

Nota: -PY e alcuni comportamenti -PU differiscono in IPv6; ICMPv6 è obbligatorio per la funzionalità di base, rendendo la scoperta pura TCP/UDP meno affidabile che negli ambienti IPv4. Assicurarsi sempre della connettività IPv6 (ping6, ip -6 route) prima di risolvere i problemi di Nmap in IPv6.

Disabilitazione Completa del Ping: Il Compromesso -Pn

Il flag -Pn tratta tutti i target come attivi, saltando interamente la scoperta host. Questo garantisce completezza a costo sostanziale:

# Rilevazione servizi ad alta accuratezza su target presunti attivi
nmap -Pn -sS -sV -O --version-intensity 5 target.example.com

Rischi: La scansione di 65.535 porte contro migliaia di host inesistenti spreca ore, genera rumore eccessivo e può attivare rate-limiting o blacklisting. Riservare -Pn per:

  • Valutazioni single-host dove la presenza è confermata tramite mezzi out-of-band
  • Ambienti firewallati dove tutte le sonde falliscono ma i servizi sono noti accessibili
  • Evasione IDS dove i pattern di scoperta host sono riconosciuti dalle signature

Il comportamento Nmap predefinito (equivalente a -PE -PS80,443 -PA80,443 -PU40125) bilancia velocità e accuratezza. Personalizzare questo arsenale in base all'intelligence sull'ambiente target: le reti Windows-oriented privilegiano -PS con porte SMB/RDP; gli ambienti Linux/cloud danno priorità a SSH e UDP su porte alte; le reti legacy meritano sperimentazione con -PP e -PY.