"Spoofing" normalmente riguarda l'uso di un indirizzo di origine falso. Vuoi connetterti alla destinazione, senza rivelare il tuo vero indirizzo IP, utilizzando invece un altro indirizzo IP. Nel tuo caso, tu (l'attaccante) conosci perfettamente l'indirizzo IP del dispositivo; quello che non vuoi rivelare è il tuo indirizzo IP. Si desidera aprire una connessione con il dispositivo in modo tale che il dispositivo ritenga di parlare con un client con un indirizzo IP completamente distinto.
Il problema principale con lo spoofing è che mentre puoi inviare pacchetti arbitrari con un indirizzo IP di origine falso, non ricevi nessuna risposta, perché le risposte saranno inviate all'indirizzo falso, non tuo. Questo, in particolare, rende molto difficile completare TCP handshake perché ogni parte deve inviare s +1 come riconoscimento del numero di sequenza s inviato dal peer. Se sei il cliente e stai cercando di spoofing, non riceverai il pacchetto SYN + ACK dal server, e quindi non saprai quale valore inserire nel tuo ACK. Potresti "essere fortunato" ma dal momento che questi sono numeri interi a 32 bit, la probabilità di successo è solo 1 su 4294967296.
Ora, se il server di destinazione utilizza un generatore casuale povero, la probabilità di indovinare il numero di sequenza scelto dal target potrebbe aumentare. In particolare, se il server di destinazione utilizza sempre lo stesso valore (un generatore molto scarso in effetti), allora puoi indovinarlo con probabilità 1, cioè avere successo ogni volta. È quindi possibile inviare un SYN, non ricevere SYN + ACK (perché è inviato all'indirizzo falso), ma inviare comunque l'ACK con il valore corretto, in base alla propria "ipotesi" del numero di sequenza scelto dal server. Il server si accontenterà di tale ACK. A quel punto, puoi inviare dati arbitrari attraverso la connessione. Ovviamente non vedrai nessuna risposta, ma se il problema è quello di emettere comandi, allora questo è sufficiente (situazione esemplificativa: vuoi inviare spam attraverso un server SMTP che rifiuta l'invio di e-mail eccetto da alcuni specifici indirizzi IP dei client) .
In tutto questo, tutti i tuoi pacchetti devono recare l'indirizzo IP falso (falsificato).