Perché non riesco a forzare un'applicazione a chiudere la sessione attiva falsificando l'indirizzo IP di origine?

2

Sto cercando di capire come funziona. Una semplice sessione di netcat tra due host e una pentesting machine sta tentando di far terminare quella sessione stabilita conoscendo solo la sorgente e la destinazione IP: combinazione di porte. Non dovresti inviare un pacchetto FIN con IP sorgente: da sport a IP di destinazione: sarà sufficiente rimuovere questa connessione? Sto usando hping3 per creare pacchetti ma la sessione netcat non si interrompe. Puoi indicarmi un documento IEEE in cui viene spiegato il meccanismo di protezione o, in caso contrario, pensi che sia una protezione dipendente dall'applicazione?

    
posta shterevz 04.09.2017 - 15:32
fonte

2 risposte

3

Per chiudere correttamente una connessione, il pacchetto FIN deve essere riconosciuto in entrambe le direzioni. Un lato della connessione invia un pacchetto FIN, a cui l'altro lato deve restituire FIN + ACK, e infine il lato originale deve restituire un altro ACK. Devi spoofare entrambe le parti di questa stretta di mano per avere successo.

Per eseguire questo attacco è necessario conoscere l'IP di origine, l'IP di destinazione, la porta di origine, la porta di destinazione e la sequenza TCP e acknolwedgement numeri . Questi numeri sono numeri a 32 bit selezionati casualmente generati come parte dell'handshake TCP, incrementati dalla lunghezza di ciascun pacchetto inviato / ricevuto. Il loro scopo principale è quello di garantire un strong ordinamento dei pacchetti, ma i loro valori sono anche utili per proteggersi dagli attacchi di spoofing. I pacchetti con numeri di sequenza o di conferma non validi (cioè i valori all'esterno della finestra di trasmissione o di ricezione) vengono ignorati. Solitamente si ottengono questi numeri tramite lo sniffing dei pacchetti se si è sulla stessa rete di loro. Puoi anche provare a indovinare esaurientemente il numero, ma questo è rumoroso e lento; una forza bruta esauriente della sequenza e dei numeri di riconoscimento richiede un minimo di 4 miliardi di pacchetti.

Un attacco più comune è un attacco di ripristino TCP , che è più facile poiché un pacchetto RST può essere inviato senza richiedere due -way chiusura e hai solo bisogno del numero di sequenza corretto poiché il flag ACK non è impostato.

    
risposta data 04.09.2017 - 16:04
fonte
0

Probabilmente stai rovinando quando il numero progressivo della FIN non corrisponde al successivo numero di sequenza previsto. Per quanto ne so, i numeri di sequenza non consecutivi non all'interno della finestra di trasmissione vengono scartati.

    
risposta data 04.09.2017 - 16:02
fonte

Leggi altre domande sui tag