Nessun risultato. Prova con un altro termine.
Guide
Notizie
Software
Tutorial

Nmap: tecniche per evadere un firewall

Vediamo come sfuggire ai controlli di un firewall utilizzando Nmap.
Vediamo come sfuggire ai controlli di un firewall utilizzando Nmap.
Link copiato negli appunti

In questo articolo parleremo di come può essere utilizzato Nmap per cercare di evadere i controlli effetuati dai firewall di rete. Nmap ("Network Mapper"), per quei pochissimi che ancora non lo conoscessero, è un "must-have" nel mondo dei SysAdmin e degli esperti di sicurezza. Si tratta di uno strumento free ed open source in grado di effettuare sia attività di network inventory (effettuando il discovery di host e relativi servizi esposti), sia attività di security auditing. Nmap è inoltre disponibile per Linux, Windows e Mac ed è dotato anche di una GUI (Zenmap) e di vari altri tool per il debugging, redirection, correlazione di risultati e packet generation, come Ncat, Ndiff e Nping.

Tecniche di firewall evasion

Con il progredire delle metodologie di attacco e delle tecniche di evasion, sempre più difficili da individuare, il problema di intercettare e gestire i tentativi di intrusione è diventato di fondamentale importanza nel mondo della network security. Le firewall evasion sono tecniche di attacco aventi l'obiettivo di eludere i controlli di firewall e IDS/IPS. Tali tecniche possono interessare anche più livelli della pila ISO/OSI contemporaneamente, secondo quanto riportato ad esempio dal CERT-FI.

Passiamo ora all'analisi dei metodi di evasion utilizzando Nmap.

Packet Fragmentation

Si tratta di un "classico" nel mondo della firewall evasion. Il metodo consiste nel frammentare a livello IP un datagramma e inviare i frammenti in modo non ordinato. Per individuare e bloccare un attacco del genere, un IDS deve prima memorizzare tutti i frammenti, riassemblare l'intero pacchetto IP e analizzarlo. Anche se la maggioranza delle sonde IDS/IPS sono oggi in grado di intercettare e bloccare questo tipo di attacco, potrebbero ancora verificarsi, in alcuni casi, problemi legati alla gestione dell'overlapping dei frammenti o di dati malformati all'interno del payload, nonchè problemi di overhead legati alla necessità di memorizzare tutti i frammenti provenienti da un elevato numero di connessioni contemporanee. Attraverso Nmap, l'attacco viene portato utilizzando l'opzione -f come mostrato in Fig. 1:

Figura 1. Packet Fragmentation
(clic per ingrandire)


Nmap Packet Fragmentation

Specificare un valore di MTU

Nmap consente di specificare un valore di MTU (Maximum Transmission Unit), ovvero la dimensione massima (in byte) consentita per un pacchetto da trasmettere sul network. Così facendo, il firewall potrebbe essere ingannato dal valore che andremo a specificare manualmente. Con Nmap questo effetto si ottiene applicando l'opzione --mtu, come mostrato in Fig. 2:

Figura 2. Impostiamo un valore di MTU in Nmap
(clic per ingrandire)


valore di MTU in Nmap

Usare una scansione di tipo "Decoy"

L'utilizzo di questa tecnica con Nmap permette di definire una serie di host "esca" (denominati appunto Decoys), da cui inviare pacchetti che avranno quindi IP differenti. In questo modo il firewall si vedrà arrivare pacchetti da vari indirizzi IP e potrebbe non riuscire a determinare da quale di essi è partita la scansione. Resta inteso che i decoy devono essere host reali e online sul network. Per effettuare questo tipo di attacco sono disponibili 2 opzioni in Nmap, la cui sintassi è specificata di seguito:

nmap -D RND:10 [target]

genera un numero random di decoys.

nmap -D decoy1,decoy2,decoy3

Specifica manualmente gli indirizzi IP degli host "esca".

Figura 3. Specifichiamo gli indirizzi degli host esca
(clic per ingrandire)


host esca Nmap

Idle Zombie Scan

Questo metodo consiste nell'utilizzare un altro host per lanciare una scansione e non il proprio. In questo modo il firewall registrerà l'indirizzo IP dell'host "zombie" e non quello della vostra macchina. Per condurre questo tipo di attacco è però necessario individuare host la cui attività sul network sia ridotta al minimo, il che dimostra che non sono utilizzati o presidiati. Per individuare questi "idle hosts" possiamo utilizzare un modulo ausiliario di Metasploit denominato ipidseq, come mostrato in Fig. 4:

Figura 4. Zombie scan con Metasploit e Nmap
(clic per ingrandire)


Zombie scan con Metasploit e Nmap

ipidseq è l'IPID Sequence Scanner di Metasploit. Questo modulo consente di sondare i sequence number dei pacchetti IP inviati dagli host e classificarli o meno come Idle, in modo tale da poterli poi utilizzare come zombie durante la scansione con Nmap. Dopo aver individuato gli zombie (gli host aventi indirizzi IP 192.168.1.67 e 192.168.1.69 nella figura precedente), possiamo lanciare il comando che avrà la seguente sintassi:

nmap -sI [Zombie IP] [Target IP]

Un esempio viene mostrato nella figura seguente, in cui è stato utilizzato l'IP 192.168.1.69 come zombie host (Fig. 5):

Figura 5. Usiamo uno zombie host
(clic per ingrandire)


Usiamo uno zombie host con Nmap

Source port number specification

Attraverso questo metodo, è possibile lanciare una scansione specificando una porta di origine ben definita. Questo tipo di attacco può avere successo quando nella policy del firewall è definita una regola che consente di acccettare indistintamente tutto il traffico proveniente da una certa porta. Tipicamente si usano le porte 53, 20 o 67. Nel nostro esempio, mostrato in Fig. 6, abbiamo utilizzato la 53 e il comando da lanciare ha la seguente sintassi:

Figura 6. Specifichiamo la porta di origine
(clic per ingrandire)


Specifichiamo la porta di origine

nmap --source-port [porta] [target]

Aggiungere dati random

Uno dei meccanismi di inspection usati dai firewall è quello di investigare la dimensione dei pacchetti per identificare un eventuale port scan. Ciò a causa del fatto che tipicamente molti portscanner utilizzano pacchetti aventi dimensioni fisse, il che li caratterizza. Per evadere questo tipo di controllo possiamo usare l'opzione --data-length di nmap per "appendere" ai pacchetti una certa quantità di bytes in modo tale da confondere il firewall con dimensioni "non standard". Nell'esempio mostrato in Fig. 7, abbiamo aggiunto ulteriori 30 bytes ai nostri pacchetti:

Figura 7. Modifichiamo la dimensione dei pacchetti in Nmap
(clic per ingrandire)


Modifichiamo la dimensione dei pacchetti in Nmap

MAC Address Spoofing

Tralasciamo la trattazione della tecnica basata sull'opzione -–randomize-hosts, che consente di scansionare gli host in ordine casuale e non sequenziale, di facile comprensione, per passare direttamente a quella che utilizza il MAC Address Spoofing. Il metodo consiste nel cambiare il MAC address della propria scheda di rete ed impostarne un altro, magari di un Vendor ben conosciuto come ad esempio Cisco, Apple, Dell o altri. in questo modo, se sul firewall è attiva una regola di MAC filtering che accetta tutto il traffico solo da determinati Vendor, l'attacco può avere successo. Utilizzando l'opzione --spoof-mac siamo quindi in grado di specificare, oltre ad un MAC address di un determinato vendor, un MAC address scelto in modo randomico, oppure ancora impostare un ben definito MAC address. Di seguito sono mostrati i 3 casi:

–spoof-mac Dell/Apple/3Com/Cisco (Specifichiamo il MAC address di un certo Vendor)
–spoof-mac 0 (Generiamo un mac address random)
–spoof-mac 00:01:02:21:07:AB (Specifichiamo un mac address)

Nell'esempio mostrato in Fig. 8 abbiamo utilizzato un mac address Cisco:

Figura 8. Mac address spoofing in Nmap
(clic per ingrandire)


Mac address spoofing in Nmap

Bad Checksum

Questa tecnica consiste nell'inviare pacchetti con checksum volutamente errati e può essere efficace soprattutto in presenza di firewall non propriamente configurati. L'opzione da utilizzare in questo caso è --badsum, come mostrato in Fig. 9:

Figura 9. Inviamo checksum errati con Nmap
(clic per ingrandire)


Inviamo checksum errati con Nmap

Nell'esempio precedente non abbiamo ottenuto risultati, il che dimostra che il firewall è ben configurato.

Conclusioni

Nell'articolo sono state analizzate alcune tecniche di evasion utilizzabili con Nmap. A onor del vero va detto che esse sono efficaci soprattutto in presenza di firewall non propriamente configurati. Per approfondire l'argomento si veda anche quanto accennato all'inizio riguardo al report CERT-FI in merito alle cosiddette Advanced Evasion Techniques (AET) e relative soluzioni proposte dai vari Vendor. Tali tecniche non sono state analizzate perchè, oltre a meritare una trattazione specifica, implicano il confronto tra vari Produttori di Firewall e IDS/IPS, il che esula ovviamente dagli scopi di questo articolo.

Ti consigliamo anche