Iniezione di un pacchetto TCP in una connessione esistente

3

vediamo uno schema:

e vorrei prendere in considerazione due casi:

Tutti gli indirizzi IP sono pubblici, una nuvola è il simbolo di Inernet.

Il primo

  1. Il H ha una connessione TCP stabilita: C = (210.10.10.10,9999,98.98.98.98,9999) . Quella connessione è usata per le comunicazioni HTTP - supponiamo che alcuni frame HTTP vengano inviati dalla connessione C .

  2. Quindi, H invia solo alcuni messaggi HTTP.

  3. Ora, MH vorrebbe inviare un messaggio HTTP per conto di H . Quindi, suppone TCP.SequenceNumber e altri campi di intestazione di TCP . Quindi MH invia un messaggio TCP corretto con IP.srcAddress set to H l'indirizzo e il messaggio HTTP: 'I am a fool' (guarda lo schema).

Un pacchetto è stato ricevuto come pacchetto successivo in connessione C .

La mia domanda è: È possibile lo scenario?

Il secondo

La situazione è la stessa di sopra. Tuttavia, H e Server comunicano con http s . MH tenta di inviare un messaggio HTTP, come prima. Non può essere crittografato perché MH non conosce una chiave. Quindi, non può essere correttamente decrittografato da un server. Il server può scoprire che un pacchetto è dannoso perché il contenuto non viene decrittografato per correggere il modulo.

È il sintomo solo che il pacchetto è dannoso? Sembra essere scivoloso.

    
posta Gilgamesz 30.08.2018 - 22:39
fonte

1 risposta

4

Le "tutte le probabilità in attacco favoriscono lo scenario

L'attaccante si trova nella stessa rete della vittima, può monitorare la rete e non può solo intercettare la connessione, ma interferire con essa. Questo è il caso in cui l'attaccante può eseguire un attacco ARP Spoofing contro la vittima.

In questo caso, l'attacco è possibile e banale contro un protocollo non crittografato come HTTP. L'attaccante può leggere ogni pacchetto dalla vittima e dal server e può modificare le cose quando lo desidera. Può dire a H che è il gateway e modificare i pacchetti che vanno al server. Dato che ha l'intero pacchetto nelle sue mani, conosce i numeri di sequenza TCP, tutte le bandiere, le opzioni e tutto il resto. Questo è chiamato Man in the Middle Attack .

Attacker in un'altra rete

È più difficile che indovinare un numero a 32 bit. In questo caso, MH deve indovinare il numero di sequenza corretto (un numero a 32 bit) AND creare il pacchetto iniettato con i flag corretti AND opzioni corrette AND fa in modo che il suo pacchetto raggiunga il server prima del pacchetto da H . Poiché H e MH non sono nella stessa rete, MH dovrà impiegare IP spoofing , e questo è quasi impossibile da eseguire. Dato che molti router hanno Filtro di uscita , elimineranno i pacchetti con un indirizzo di origine falsificato.

Protocolli crittografati

Gli stessi vincoli degli altri scenari, ma con una complicazione: l'attaccante deve creare un pacchetto crittografato, indovinare la suite di cifratura, tutti i parametri di crittografia, padding, IV, checksum e farlo fondere perfettamente con il prossimo pacchetto proveniente da il client ... No, non è possibile iniettare dati su un protocollo crittografato e aspettarsi che venga accettato dal server o dal client.

Server can find out that a packet is malicious because content is not decrypted to correct form.

No, il server trova il pacchetto dannoso perché il numero di sequenza TCP non è corretto o corretto ma in ritardo (il pacchetto più recente è già arrivato) o molto al di sopra del numero previsto più la finestra di trasmissione. Se tutti quelli quasi impossibili da falsificare i valori sono corretti e viene utilizzata la crittografia, il server scarterà il pacchetto perché non sembra neanche lontanamente valido.

TCP è un protocollo complesso, quindi è davvero difficile da bypassare. Aggiungi un protocollo ancora più complesso (TLS / SSL) e hai un compito impossibile provare a iniettare pacchetti di spoofing sulla comunicazione.

    
risposta data 31.08.2018 - 04:01
fonte

Leggi altre domande sui tag