Abbiamo creato un programma client / server che viene eseguito su localhost. È possibile eseguire un attacco uomo nel mezzo sul loopback tra client e server?
A seconda di come i programmi si conoscono, potrebbe essere possibile.
Supponendo che tu stia utilizzando un server che ascolta solo su 127.0.0.1 e un client che tenta di connettersi ad esso. Quale porta viene ascoltata dal server? Cosa succede quando il porto è coperto? In che modo un client sa che è una porta corretta?
Supponendo che la porta non sia hardcoded sia sul server che sul client, ma è in qualche modo configurata, si potrebbe configurare un MITM su una porta diversa e ingannare un client per connettersi a quella porta modificata.
Esempio di uomo povero - supponendo che tu abbia un server SSH sulla tua casella locale
socat TCP-LISTEN:1234 TCP:127.0.0.1:22
Nell'altra console fai
ssh 127.0.0.1 -p 1234
Vedrai che ti colleghi al tuo SSH. Elimina socat
nella prima console e vedi le interruzioni di connessione. Il socat
è il tuo MITM.
Modifica: dopo aver specificato il target (modificando un pacchetto in rotta e osservando HMAC interromperlo), suppongo che avrai bisogno di un secondo server, che normalmente inoltra i pacchetti solo da un socket all'altro, ma dopo averlo in qualche modo notificato (il 10% delle volte, esiste un file specifico, un segnale viene ricevuto, 10 secondi dopo l'avvio ...) modifica il pacchetto ricevuto prima dell'inoltro.
Leggi altre domande sui tag server client attacks man-in-the-middle