IDS and IPS Evasion

Sostieni HackTricks

Manipolazione TTL

Invia alcuni pacchetti con un TTL sufficiente per arrivare all'IDS/IPS ma non sufficiente per arrivare al sistema finale. Successivamente, invia altri pacchetti con le stesse sequenze dei precedenti in modo che l'IPS/IDS pensi che siano ripetizioni e non li controlli, ma in realtà trasportano contenuti dannosi.

Opzione Nmap: --ttlvalue <valore>

Evitare le firme

Aggiungi semplicemente dati spazzatura ai pacchetti per evitare la firma dell'IPS/IDS.

Opzione Nmap: --data-length 25

Pacchetti frammentati

Semplicemente frammenta i pacchetti e inviali. Se l'IDS/IPS non è in grado di riunirli, arriveranno all'host finale.

Opzione Nmap: -f

Checksum non valido

I sensori di solito non calcolano il checksum per motivi di prestazioni. Quindi un attaccante può inviare un pacchetto che verrà interpretato dal sensore ma respinto dall'host finale. Esempio:

Invia un pacchetto con il flag RST e un checksum non valido, in modo che l'IPS/IDS possa pensare che questo pacchetto stia per chiudere la connessione, ma l'host finale scarterà il pacchetto poiché il checksum è invalido.

Opzioni IP e TCP non comuni

Un sensore potrebbe ignorare pacchetti con determinati flag e opzioni impostate all'interno degli header IP e TCP, mentre l'host di destinazione accetta il pacchetto al momento della ricezione.

Sovrapposizione

È possibile che quando si frammenta un pacchetto, esista una sorta di sovrapposizione tra i pacchetti (forse i primi 8 byte del pacchetto 2 si sovrappongono agli ultimi 8 byte del pacchetto 1, e gli ultimi 8 byte del pacchetto 2 si sovrappongono ai primi 8 byte del pacchetto 3). Quindi, se l'IDS/IPS li riunisce in modo diverso rispetto all'host finale, verrà interpretato un pacchetto diverso. Oppure, 2 pacchetti con lo stesso offset arrivano e l'host deve decidere quale prendere.

  • BSD: Ha la preferenza per i pacchetti con offset più piccolo. Per i pacchetti con lo stesso offset, sceglierà il primo.

  • Linux: Come BSD, ma preferisce l'ultimo pacchetto con lo stesso offset.

  • Primo (Windows): Primo valore che arriva, valore che rimane.

  • Ultimo (cisco): Ultimo valore che arriva, valore che rimane.

Strumenti

Sostieni HackTricks

Last updated