Por lo que yo he leído entiendo que el ataque se basa en "secuestrar" la conexión que se está realizando entra víctima y servidor aprovechándose de que las conexiones desde red local a red externa y viceversa se realizan por ciclos, y no simultaneamente para evitar interferencias en las redes wi-fi. Algo que no pasa mediante cable, ya que ambas se establecen por "canales" distintos, lo que habilita la transmisión de paquetes simultáneamente.
El exploit se aprovecha precisamente de que los paquetes no pueden coincidir en la ruta para no hacer interferencias, por lo que mientras se está transmitiendo en una dirección, los paquetes desde la dirección contraria tienen que esperar.
El exploit lo que hace es alargar la transmisión desde un lado lo suficiente para poder entender y así injectar desde el otro lado.
Un ejemplo para entenderlo sería un hospital.
Pongamos que radiología quiere mandar sus pacientes a urgencias.
Y urgencias también está mandando pacientes a radiología.
Ambos grupos van en fila. Y para llegar a su destino tienen que pasar por la puerta de enfermería. Ambos grupos no pueden pasar a la vez porque la puerta es pequeña.
La fila de radiología es de 5 personas, y la fila de urgencias es de 50.
Un hospital distinto está saturado y quiere también meter a sus pacientes enfermos por enfermería para llegar a urgencias.
Lo que hace el hospital externo es aumentar la fila de 5 personas a 20 personas, para así que les de tiempo a averiguar los números de los pacientes de la fila de 50 que estaban esperando para pasar.
Mientras estás 15 personas nuevas van pasando junto a las otras 5 que ya estaban pasando por enfermería, el hospital externo tiene tiempo a adivinar los números de la fila de 50 personas, por lo que puede asignarle esos mismos números a sus pacientes y colar su fila de pacientes por enfermería en cuanto la fila de 20 personas acabe de pasar.
Estos pacientes enfermos del hospital externo consiguen colarse por enfermería a urgencias.
Creo que tienen publicado en código abierto como han explotado la vulnerabilidad para poder hacer recreaciones e investigación. Lo estoy mirando. No parece que exista una solución, así que esto va a estar interesante.
typical off-path TCP hijacking threat
model consisting of three hosts: a victim client, a victim
server and an off-path attacker. The off-path attacker,
Mallory, is capable of sending spoofed packets with the
IP address of the legitimate server. In contrast to Man-in-
the-middle attack, Mallory cannot eavesdrop the traffic
transferred between a client C and a server S. Depending
on the nature of the side channel, an unprivileged appli-
cation or a sandboxed script may be required to run on
the client side [40, 27] to observe the results of the shared
state change and determine the outcome of the spoofed
packets (e.g., whether guessed sequence numbers are in-
window). In rare cases, if the state change is remotely
observable, an off-path attacker can complete the attack
alone without the assistance from the unprivileged ap-
plication or script [18]. After multiple rounds of infer-
ences, starting from whether a connection is established
(four tuple inference) to the expected sequence number
and ACK number inference, the attacker can then inject a
malicious payload that becomes acceptable to the client
at the TCP layer.
https://github.com/seclab-ucr/tcp_exploit/blob/master/README.md