Ricognizione di rete e rilevamento degli host

Metodologie di Ricognizione Passiva vs. Attiva

La ricognizione di rete inizia con una decisione critica: quanto visibili si vuole essere? La ricognizione passiva raccoglie informazioni senza mai toccare l'infrastruttura del target. Si estraggono dati da registri pubblici, registri DNS, log di trasparenza dei certificati e social media. Questa fase non lascia alcuna impronta nei log del target ed è ideale quando la stealth è fondamentale: engagement di red team, intelligence competitiva o definizione dello scope pre-engagement.

La ricognizione attiva interagisce direttamente con i sistemi target: sonda le porte, invia pacchetti craftati e misura le risposte. Fornisce dati precisi in tempo reale ma genera rumore rilevabile. I log dei firewall, gli allarmi IDS e i playbook SOC sono progettati per catturare queste sonde.

Scenario Approccio Preferito Razionale
Red team esterno, assumed breach sconosciuto Prima passiva, poi attiva Costruire la lista dei target senza rilevazione precoce
Audit di rete interna, accesso autorizzato Attiva, a pieno regime Time-boxed, permesso concesso, massimizzare la copertura
Bug bounty, ambiente di produzione Prevalentemente passiva, attiva selettiva Minimizzare il disruption dei servizi live
Incident response, infrastruttura threat actor Attiva, aggressiva La velocità supera la stealth; l'avversario è già consapevole

L'operatore maturo tratta queste come fasi complementari. L'intelligence passiva restringe lo scope attivo; i risultati attivi validano e arricchiscono i risultati passivi.

Il Nmap Scripting Engine: Enumerazione Precisa dei Servizi

Nmap trascende la scansione di porte base attraverso il suo Scripting Engine (NSE). Con oltre 600 script nella distribuzione di default, NSE trasforma Nmap da scanner di porte in piattaforma di ricognizione application-aware. Gli script vengono eseguiti durante la fase di scansione, sondando i servizi scoperti per accuratezza della versione, indicatori di vulnerabilità e configuration drift.

I template di timing controllano il compromesso tra velocità e rilevabilità:

Template Flag Comportamento Caso d'Uso
Paranoid -T0 Scansione seriale, timeout di 5 minuti tra le sonde Evasione IDS, singolo target, stealth estrema
Sneaky -T1 Intervalli di 15 secondi Scansioni lente, evasive
Polite -T2 Ritardi di 400ms, riduce la banda Evitare di perturbare target fragili
Normal -T3 Default, bilanciato Engagement standard
Aggressive -T4 Timeout di 1 secondo, sonde parallele Reti veloci, infrastruttura affidabile
Insane -T5 Timeout di 500ms, parallelismo massimo Reti locali, tolleranza di banda

Le tecniche di evasione diventano necessarie quando le scansioni standard attivano le difese:

# Pacchetti frammentati per evadere il semplice pattern matching
sudo nmap -f --mtu 24 target.example.com

# Scansione con decoy: apparire come proveniente da multiple IP
sudo nmap -D RND:10,ME,8.8.8.8 target.example.com

# Spoof della porta sorgente (sfruttare la fiducia nelle risposte DNS)
sudo nmap --source-port 53 target.example.com

# Combinare con NSE per sondaggio approfondito dei servizi
sudo nmap -sS -T2 -f -D RND:5,ME --script=banner,vulners \
  --script-args vulners.cvssbase=min(7.0) \
  -p- -oA target_full_scan target.example.com

I formati di output per il chaining degli strumenti contano enormemente nei flussi di lavoro multi-tool:

  • -oN (Normal): Leggibile dall'uomo, grep-friendly
  • -oX (XML): Parsato da Metasploit, Dradis, pipeline custom
  • -oG (Grepable): Una linea per host, ideale per estrazione con awk
  • -oA (All): Genera tutti e tre i formati simultaneamente

Convertire XML in JSON actionable per l'automazione a valle:

nmap-parse-output nmap-scan.xml host-ports-protocol > targets.json

Masscan: Scansione di Porte su Scala Internet

Quando lo scope comprende interi ASN o range IP a livello nazionale, Masscan sostituisce Nmap. La sua architettura asincrona invia sonde alla massima velocità del kernel senza attendere le risposte. Una singola istanza di Masscan può saturare un link 10Gbps, scansionando l'intero spazio IPv4 per una singola porta in meno di cinque minuti.

L'insight architetturale: Masscan reimplementa il proprio stack TCP/IP in user space. Bypassa il connection tracking del kernel, eliminando i colli di bottiglia. Questa stessa caratteristica richiede una configurazione attenta dell'interfaccia:

# Scansiona 10,000 IP casuali su tutte le porte a 100,000 pacchetti/secondo
sudo masscan 0.0.0.0/0 -p0-65535 \
  --max-rate 100000 \
  --randomize-hosts \
  --banners \
  --range 192.0.2.0/24 \
  -oL masscan-results.txt

Critico: evitare gli alert di abuso dell'ISP. La velocità di Masscan attiva il rilevamento automatico degli abusi. Strategie di mitigazione:

  1. Enforcement del rate: --max-rate al di sotto della soglia del provider (tipicamente 10,000 pps per circuiti commerciali)
  2. File di esclusione: Mantenere --excludefile con honeypot noti, range delle forze dell'ordine e infrastruttura critica
  3. Distribuzione temporale: Usare --shard e --seed per scansioni distribuite su multiple fonti e finestre temporali
  4. Banner con cautela: --banners richiede TCP stateful; abilitare solo dopo che la scoperta iniziale delle porte ha ristretto lo scope

Per una ricognizione responsabile su larga scala, preferire lo sharding alla velocità:

# Dividi la scansione su 10 istanze, ognuna gestisce uno shard
sudo masscan 192.0.2.0/24 -p443 --shard 1/10 --seed 2024
sudo masscan 192.0.2.0/24 -p443 --shard 2/10 --seed 2024
# ... etc

Integrazione OSINT: theHarvester, Shodan e Maltego

La ricognizione moderna unisce la raccolta OSINT automatizzata con la scansione tecnica.

theHarvester aggrega indirizzi email, sottodomini, host e nomi di dipendenti da motori di ricerca, database di certificati e piattaforme social:

theHarvester -d subsidiary.example.com -b all -f harvester_output
# Fonti: Bing, Google, DuckDuckGo, Baidu, LinkedIn, CRT.sh, Shodan

Shodan fornisce fingerprint di servizio storici e attuali su scala Internet. Il suo linguaggio di query (apache city:"Singapore" ssl:"Example Corp") identifica asset esposti senza scansione diretta. La CLI di Shodan si integra nell'automazione:

shodan search --fields ip_str,port,org,ssl.cert.subject.cn \
  "org:'Example Subsidiary LLC' apache"

Maltego visualizza queste relazioni. Gli hub di transform collegano i record DNS ai netblock, i registrar WHOIS ai domini associati, e gli indirizzi email ai dati di breach. Il valore è emergente: un singolo pivot di dominio rivela pattern infrastrutturali—provider di hosting, uso di CDN, autorità di certificazione—che predicono l'architettura del target.

Flusso di lavoro OSINT efficace: theHarvester scopre i sottodomini; Shodan conferma i servizi live con versioni vulnerabili; Maltego mappa le relazioni organizzative per prioritizzare quale sussidiaria o acquisizione presenti il punto di ingresso più debole.

Diagrammazione della Attack Surface e Prioritizzazione dei Target

L'output grezzo della scansione richiede sintesi. La diagrammazione della attack surface trasforma le liste IP in intelligence strategica.

La metodologia di scoperta progressiva costruisce la comprensione strato per strato:

  1. Confine organizzativo: WHOIS, registri aziendali, filing SEC
  2. Allocazione di rete: query RIPE/ARIN mappano ASN a range IP
  3. Fingerprint infrastrutturale: CDN, provider cloud, geografia dell'hosting
  4. Conferma host live: ICMP, TCP SYN, sonde application-layer
  5. Profondità del servizio: Enumerazione versione, test credenziali di default, analisi configurazione

Esempio Pratico: Ricognizione Contro Subsidiary Corp

Target: subsidiary.example.com, divisione recentemente acquisita di Example Corp, si rumoreggia abbia integrato una nuova infrastruttura cloud senza revisione della sicurezza.

Fase 1: Fondamento passivo

# WHOIS rivela il registrant e i name server
whois subsidiary.example.com | grep -E "Registrant|Name Server|Creation Date"

# Mapping ASN traccia upstream
whois -h whois.radb.net '!gAS64500' | grep ^route

# I log di Certificate Transparency espongono host pre-produzione
curl -s "https://crt.sh/?q=%.subsidiary.example.com&output=json" | \
  jq -r '.[].name_value' | sort -u

Output: 47 sottodomini unici, inclusi dev.subsidiary.example.com, mail.subsidiary.example.com e legacy-vpn.subsidiary.example.com.

Fase 2: Conferma attiva con stealth

# Nmap con timing paranoico contro la scoperta ad alto valore
sudo nmap -sS -T1 -Pn -p22,80,443,8080,8443 \
  -f --source-port 53 \
  --script=ssl-cert,http-title,ssh-hostkey \
  -iL live-hosts.txt -oA phase2_stealth

Fase 3: Conferma su scala Internet con Masscan

# Masscan sul /22 annunciato a rate conservativo
sudo masscan 203.0.113.0/22 -p0-65535 \
  --max-rate 5000 \
  --banners \
  --excludefile exclude-reserved.txt \
  -oL masscan_phase3.txt

Masscan identifica 312 host live, 14 con porte SSH non standard, 3 con Telnet esposto.

Fase 4: Correlazione OSINT

# Dati storici di Shodan per l'ASN
shodan stats --facets port,product,os "net:203.0.113.0/22"

# Transform Maltego: dominio → netblock → organizzazioni correlate
# Riveli hosting condiviso con entità sanitaria non correlata

Fase 5: Matrice di prioritizzazione

Target Servizi Indicatori di Rischio Priorità
dev.subsidiary.example.com 80,443,3306,6379 MySQL e Redis esposti, nessun WAF P1
legacy-vpn.subsidiary.example.com 443,22 Versione OpenSSL end-of-life P1
mail.subsidiary.example.com 25,587,993 Configurazione standard, patch recenti P3
Vicino di hosting condiviso 80,443 Dati sanitari, rischio compliance P2 (laterale)

L'esposizione del database nell'ambiente di sviluppo e lo stack TLS obsoleto della VPN diventano candidati per l'accesso iniziale. Il vicino di hosting condiviso, scoperto attraverso il pivoting ASN, presenta un percorso di movimento laterale amplificato dalla compliance se la compromissione diretta si rivela difficile.

Questa progressione strutturata—dall'intelligence passiva attraverso la conferma attiva controllata fino alla selezione dei target prioritizzati—garantisce che ogni fase successiva del penetration testing operi contro infrastruttura validata e compresa, piuttosto che ipotesi.