Intercetta e modifica la semplice sessione TCP?

2

Diciamo che c'è una semplice app di chat client / server basata su socket come questi Come è possibile che io intercetti ciò che sta chattando e lo modifichi? Sono stato in cerca di MitM che richiede avvelenamento da ARP, che non è applicabile per il mio esercizio.

Un'altra cosa è il dirottamento della sessione TCP ma non capisco come funziona. Qualcuno può darmi una piccola idea, o forse dei buoni link dove potrei imparare un po ', o forse qualche codice python (preferibilmente su GitHub)?

Non ho problemi nell'apprendimento, o forse qualche strumento open source in grado di farlo, semplicemente non voglio essere un copione-kiddie.

    
posta user172473 09.03.2018 - 05:32
fonte

2 risposte

5

TCP Session Hijacking

Immaginiamo un cliente che comunica con un server tramite una connessione di rete. Il client è stato autenticato con il server e gli è stato concesso l'accesso. Fin qui, tutto bene.

Un utente malintenzionato si trova sulla rete tra il client e il server e ha tenuto d'occhio la sua sessione. Questo gli ha dato il tempo di apprendere la porta e i numeri di sequenza necessari per la conversazione. Poiché conosce i numeri di sequenza, può anticipare i numeri nei pacchetti successivi (vedi: attacco di previsione della sequenza TCP ). Questo è quando l'attaccante decide di intervenire.

Egli paralizza il client lanciando un'inondazione ICMP, assicurando che il client non possa rispondere al traffico inviato dal server. Ciò consente all'autore dell'attacco la libertà di comunicare con il server come se fosse il client. Poiché il client è paralizzato e il server ha inviato una risposta, l'autore dell'attacco arriva prima, contraffa un pacchetto che < em> appare nativo per lo stream stabilito e il server non è il più saggio.

Ecco una figura che ti aiuta a capire i numeri delle sequenze di ruolo nel protocollo e in che modo un utente malintenzionato può trarne vantaggio:

Fonte: link

Questo è il meglio che posso fare, per ora. Non sono stato in grado di individuare alcun codice Python o strumenti open source in grado di fare questo genere di cose.

    
risposta data 09.03.2018 - 06:36
fonte
0

Penso che il miglior esempio per il dirottamento di sessioni TCP sia l'attacco di Kevin Mitnick, che è spiegato molto bene su questa pagina . L'idea è che indovini il numero di sequenza di un pacchetto. Tuttavia, al giorno d'oggi questo attacco non è pratico perché la maggior parte dei sistemi operativi randomizza questo numero, rendendo difficile la previsione.

Per gli attacchi Man-in-the-Middle d'altra parte, hai una vasta gamma di opzioni. Per prima cosa devi entrare tra i due nodi. Questo può essere davvero semplice quando si possiede uno dei nodi che instradano il proprio traffico, come un punto di accesso wireless. Ma puoi anche usare attacchi come lo spoofing ARP che hai menzionato. Altri protocolli di routing consentono anche tale comportamento, come BGP. Poi ci sono altri attacchi indiretti come l'avvelenamento della cache DNS.

Una volta che hai il controllo del traffico dati, puoi annusare passivamente il traffico. Penso che troverai scapy un bel modulo Python per cose come questa. È piuttosto potente e può essere utilizzato per tutti i tipi di attacchi di rete.

È possibile eseguire altri sniffing passivi con libpcap . pcapy è un modulo Python che si interfaccia con questa libreria. Puoi anche usare Wireshark solo se vuoi dare una rapida occhiata al traffico.

La modifica del traffico tra i nodi è più difficile. Un modo per farlo è indirizzare tutto il traffico verso una determinata porta. Per l'esempio di app di chat, diciamo che instradi il traffico in ingresso dalla porta 12221 a localhost: 1337 usando iptables. Ora si esegue un server sulla porta 1337 che cattura tutto questo traffico, annusa i pacchetti, li modifica e li invia alla porta 12221 nell'host corretto.

Se vuoi esercitarti a guardare il traffico da un altro dispositivo, puoi installare uno strumento come Burp e impostare un proxy su un dispositivo come il tuo telefono. Vedrai il tuo traffico HTTP e sarai in grado di modificarlo. Ma con i siti Web TLS (HTTPS) riceverai un avviso di certificato, perché questi strumenti generano un certificato TLS falso al volo. Se vuoi approfondire questo argomento, ti consiglio di mitmproxy , perché è open source e ha una bella API Python. Inoltre, puoi consultare bettercap .

    
risposta data 10.03.2018 - 00:04
fonte

Leggi altre domande sui tag