Ottimizzazione delle prestazioni, tecniche di evasione e contro-rilevamento
Template di Timing e Controllo Granulare
I template -T di Nmap bilanciano velocità, stealth e carico di rete. L'intervallo utile va da -T0 (paranoico, un pacchetto ogni cinque minuti) a -T5 (folle, throughput massimo con potenziale perdita di accuratezza). Per la maggior parte delle valutazioni autorizzate, -T3 (normale) è il default, -T4 è lo standard aggressivo dei laboratori, e -T5 rischia report duplicati da probe persi.
I template configurano una matrice di timer interni. Quando serve un controllo chirurgico, sovrascrivili individualmente:
nmap -sS -p- --min-parallelism 50 --max-retries 2 --host-timeout 10m 192.0.2.0/24
Cosa fa: Esegue SYN-scan su tutte le 65.535 porte TCP con almeno 50 probe in volo, abbandonando un host dopo 2 tentativi o 10 minuti. Quando usarlo: Scansione di una rete lab stabile dove serve certezza di completamento contro host con firewall che scartano silenziosamente i pacchetti. Rischi: Il parallelismo elevato può sopraffare le tabelle di stato su equipaggiamenti di fascia bassa o attivare il rate-limiting. Output atteso: Tabella porte Nmap standard con stati
open,closed,filteredounfilteredper host; gli host che raggiungono--host-timeoutvengono riportati comeSKIPPED.
| Template | Comportamento | Caso d'uso tipico |
|---|---|---|
-T0 / -T1 |
Seriale, 5 min / 15 sec tra i probe | Evasione IDS, target estremamente sensibili |
-T2 |
Cortese, 0.4 sec tra i probe | Carico leggero su infrastruttura condivisa |
-T3 |
Timing dinamico default | Scansione generica |
-T4 |
Aggressivo, 10 ms tra i gruppi, parallelismo variabile | Ambienti lab, valutazioni con time-box |
-T5 |
Folle, assunzioni timeout a 5 ms | Solo segmenti gigabit locali; aspettarsi falsi negativi |
Un errore comune: assumere che -T5 trovi di più. Spesso trova meno, perché gli stimatori di timing di Nmap assumono condizioni di rete che percorsi congestionati o filtrati violano. Una porta marcata filtered a -T5 può rivelarsi open a -T3 con --max-retries 3.
Variante lab (velocità massima):
nmap -sS -T4 -p- --min-rate 1000 --max-rtt-timeout 500ms 10.0.0.0/24
Variante produzione (vincolata):
nmap -sS -T2 -p 22,80,443,8080-8090 --max-rate 100 --max-retries 3 10.0.0.0/24
Frammentazione, Manipolazione MTU e Scansione con Decoy
Nmap supporta la frammentazione IP con -f (frammenti da 8 byte dopo il primo) e --mtu per dimensioni personalizzate. L'obiettivo è suddividere le informazioni di header tra i frammenti, forzando il riassemblaggio prima dell'ispezione. Questo prende di mira sensori IDS/IPS più datati o mal configurati che mancano di motori di riassemblaggio completi.
nmap -sS -f --send-eth -p 22,80,443 192.0.2.100
Cosa fa: Frammenta i probe SYN in payload da 8 byte, bypassando alcuni pattern matcher semplici;
--send-ethforza l'Ethernet grezzo per garantire che Nmap controlli la frammentazione anziché lo stack IP del SO. Quando usarlo: Validare se un sensor edge del target riassembla prima di allertare. Rischi: I sensori moderni riassemblano i frammenti; spesso fallisce contro Suricata conreassemble_fragments: yeso dispositivi Palo Alto. Output atteso: Stati delle porte identici alla scansione non frammentata se avviene il riassemblaggio; le discrepanze rivelano lacune nei sensori.
La scansione con decoy (-D) offusca la vera sorgente intrecciando probe spoofati da host falsi o reali:
nmap -sS -D 198.51.100.1,ME,198.51.100.2 -p 80,443 192.0.2.100
Cosa fa: Invia scansioni da tre sorgenti apparenti;
MEposiziona il tuo IP reale tra i decoy. Il target logga tutti e tre; solo la vera sorgente riceve le risposte. Quando usarlo: Testare se gli analisti dei log correlano gli alert o semplicemente contano le sorgenti. Rischi: I decoy spoofati verso host live generano backscatter e tempeste RST; usare IP di terze parti reali ma non autorizzati è abusivo. Output atteso: La tua console mostra le risposte; i log del target mostrano sorgenti multiple.
⚠️ Solo uso autorizzato e difensivo. Usa queste tecniche solo in ambienti lab o in esercizi di validazione della detection esplicitamente autorizzati.
| Errore | Perché ti punisce |
|---|---|
-f senza --send-eth o --send-ip |
Lo stack del SO spesso riassembla prima della trasmissione, annullando la frammentazione |
| Decoy che sono host live e responsivi | Le loro risposte RST ai SYN non sollecitati creano rumore che aiuta gli analisti a isolare il vero scanner |
Valori --mtu non multipli di 8 |
Nmap rifiuta o frammenta male; verifica con nmap --mtu 16 vs. nmap --mtu 17 |
Spoofing Porta Sorgente, Spoofing MAC e Proxy Chains
Alcune regole firewall si fidano del traffico da porte sorgente specifiche (DNS legacy: 53, dati FTP: 20). Il --source-port di Nmap sfrutta questo:
nmap -sS --source-port 53 -p 22,80 192.0.2.100
Cosa fa: Genera probe SYN da UDP/53, potenzialmente corrispondendo a regole firewall
any port 53. Quando usarlo: Audit di set di regole che confondono numero di porta con fiducia nel servizio. Rischi: Il traffico di ritorno sulla porta 53 può entrare in conflitto con processi DNS locali o non raggiungere il socket senza manipolazioneSO_REUSEADDR. Output atteso: Porteopenche risultanofilteredsenza lo spoof; conferma logica di regola debole.
Lo spoofing dell'indirizzo MAC (--spoof-mac) opera solo su segmenti Ethernet locali e richiede root:
nmap -sS --spoof-mac 00:11:22:33:44:55 -e eth0 192.0.2.100
L'integrazione con proxy chains instrada Nmap attraverso proxy SOCKS4/5 o HTTP, aggiungendo latenza ma offuscando l'origine. Configura /etc/proxychains.conf, poi:
proxychains nmap -sT -Pn -n --max-retries 1 198.51.100.0/24
Cosa fa: Forza scansioni TCP connect (
-sT) attraverso la proxy chain;-Pnsalta il host discovery (l'ICMP non attraversa);-ndisabilita il DNS. Quando usarlo: Test da prospettiva esterna attraverso un pivot o servizio di scansione commerciale. Rischi:proxychainswrappa i socket via LD_PRELOAD, che le scansioni grezze di Nmap bypassano—solo-sTfunziona in modo affidabile. Output atteso: Completamento più lento con latenza del proxy iniettata; semantica degli stati identica.
Meccanica della Scansione Idle/Zombie
La scansione idle (-sI) è la tecnica di Nmap più anonima per quanto riguarda la sorgente. Sfrutta sequenze IPID prevedibili su un host "zombie" per inferire gli stati delle porte senza inviare pacchetti dal tuo IP al target.
Meccanismo: (1) Interroga l'IPID dello zombie; (2) Forgia SYN verso il target con l'indirizzo sorgente dello zombie; (3) Il target risponde SYN/ACK allo zombie (aumentando il suo IPID di 1 se la porta è aperta) o RST allo zombie (IPID invariato se chiusa, o nessuna risposta se filtrata); (4) Re-interroga l'IPID dello zombie. Un delta di 2 significa porta aperta; delta di 1 significa chiusa o filtrata.
Trovare zombie adatti richiede host con allocazione IPID incrementale e traffico basso:
nmap -sI 192.0.2.50:80 -p 22,80,443 198.51.100.25
Cosa fa: Usa
192.0.2.50come zombie, con la porta 80 come porta di probe dello zombie (deve essere aperta per il campionamento IPID). Quando usarlo: Requisiti estremi di anonimato in esercizi red-team autorizzati. Rischi: Zombie con IPID randomizzato o zero (Linux moderno, Windows post-Vista) rendono inutilizzabile la tecnica; zombie ad alto traffico producono delta ambigui. Output atteso: Stati delle porte inferiti tramite cambiamenti IPID; nessun pacchetto dal tuo IP al target eccetto i probe iniziali allo zombie.
Test di idoneità dello zombie:
nmap -sS -O -v --script ipidseq 192.0.2.50
Lab (scoperta aggressiva zombie):
nmap -n -Pn -sS -p 80 --script ipidseq --script-args probeport=80 192.0.2.0/24 | grep -i "incremental"
Produzione (singolo zombie verificato, velocità ridotta):
nmap -sI 192.0.2.50 -p 22,80,443 -T2 --max-retries 2 198.51.100.25
Adattamento al Logging di IDS/IPS e Firewall
L'evasione è una corsa agli armamenti, non una soluzione. I sensori moderni rilevano le scansioni per volume, pattern o anomalia comportamentale—non solo per contenuto dei pacchetti. Un testing autorizzato efficace imita pattern di traffico legittimo piuttosto che inseguire l'invisibilità perfetta.
Strategie di evitamento della firma:
| Tecnica | Limitazione | Contromisura di detection |
|---|---|---|
Throttling dei pacchetti (-T0, --max-rate) |
Completa lentamente; gli attaccanti pazienti vincono comunque | Correlazione time-windowed tra i probe |
Mismatch di protocollo (-sN, -sF, -sX) |
Le scansioni Null/Fin/Xmas falliscono contro filtri stateful e vengono loggate come anomalie comunque | Tracciare combinazioni rare di flag |
Ordine target randomizzato (--randomize-hosts) |
Rompe i log sequenziali ma non i modelli comportamentali | Analisi di cluster per timing e distribuzione dei probe |
Decoy (-D) |
Sorgenti multiple aumentano il carico di lavoro degli analisti | Analisi TTL, correlazione TCP timestamp, matching entropia payload |
La verità onesta: un difensore determinato e dotato di risorse con full packet capture vince contro un singolo scanner. L'evasione compra tempo contro analisti pigri o sensori sottodimensionati. Pianifica per la detection e tieni pronta la documentazione di autorizzazione.
Prospettiva Difensiva: Riconoscere Nmap nei Log
Il valore blue-team deriva dalla comprensione delle impronte degli scanner. La scansione SYN default di Nmap esibisce pattern prevedibili che tcpdump rivela:
sudo tcpdump -i eth0 -nn 'tcp[tcpflags] & tcp-syn != 0 and tcp[tcpflags] & tcp-ack == 0' -c 20
Campione di output realistico:
14:32:10.123456 IP 203.0.113.50.54321 > 192.0.2.100.80: Flags [S], seq 1234567890, win 1024, length 0
14:32:10.123512 IP 203.0.113.50.54322 > 192.0.2.100.443: Flags [S], seq 1234567900, win 1024, length 0
14:32:10.123578 IP 203.0.113.50.54323 > 192.0.2.100.22: Flags [S], seq 1234567910, win 1024, length 0
Elementi riconoscibili: le porte sorgente incrementano sequenzialmente (54321, 54322, 54323), la dimensione della finestra TCP è fissa a 1024 (default Nmap per alcuni tipi di probe), i numeri di sequenza iniziale avanzano in modo prevedibile, e i probe arrivano in stretti cluster temporali.
Regola Suricata/Snort per rilevamento SYN stealth:
alert tcp any any -> any any (
msg:"NMAP TCP SYN Stealth Scan";
flags:S;
ack:0;
threshold:type both, track by_src, count 20, seconds 60;
reference:url,https://nmap.org/book/synscan.html;
classtype:attempted-recon;
sid:1000001;
rev:1;
)
Questo scatta su 20 pacchetti SYN-senza-ACK da una singola sorgente in 60 secondi. Regola count e seconds sulla tua baseline—le applicazioni legittime possono attivare soglie aggressive.
Per il rilevamento di scansioni zombie, monitora anomalie IPID: un singolo host che mostra incrementi IPID esattamente di 2 con connessioni esterne intrecciate suggerisce probing con sorgente forgiata. Logga le sequenze IPID dove fattibile.
Divulgazione Responsabile: Notificare o Trattenere?
La scoperta di lacune evasione-capaci nell'infrastruttura difensiva crea una scelta scomoda. Lo standard professionale: notificare il proprietario dell'infrastruttura prima di dimostrare l'impatto, a meno che tu non sia il proprietario o detenga autorizzazione esplicita a validare senza pre-briefing. Trattenere tecniche da un report per "rimanere utili per il prossimo impegno" è una mossa limitante per la carriera che erode la fiducia. Documenta cosa hai trovato, come l'hai trovato, e cosa un avversario meno vincolato potrebbe ottenere. Il valore di un red team si misura per ciò che migliora nelle difese, non per i trucchi che rimangono segreti.