Hace poco tiempo, mis amigos y yo discutimos si TCP Handshake se puede pasar con una dirección IP falsificada.
Supongamos que tengo un servidor web que permite solo ciertos números de IP. ¿Alguien puede conectar ese servidor web por IP spoof?
Respuesta corta: no.
Respuesta más larga: sí, si controla un dispositivo enrutador cerca del dispositivo de destino (tiene que estar en la ruta entre la dirección IP de origen real y el destino, y en la ruta entre la dirección IP falsificada y el destino) ) o si la red / host objetivo acepta paquetes enrutados de origen .
Respuesta corta: sí, pero no tan posible como solía ser, y depende de cómo literalmente uno responde su pregunta.
Respuesta larga:
Observo que usted no pregunta "¿Es posible mantener una conversación TCP con una dirección IP falsificada"? @symcbean respondió a esta pregunta. Pidió específicamente "¿Es posible pasar el protocolo TCP con una dirección IP falsificada". Por lo tanto, hay una diferencia entre la pregunta que hizo: "¿Puede falsificar SYN- > SYN / ACK- > ACK de tal manera que el servidor cree que una conexión se ha establecido correctamente" y la pregunta que probablemente quiso decir? " ¿Puede mantener una conversación TCP con una dirección de cliente falsificada ".
Entonces, veamos la pregunta literal que hiciste. En ese caso, la respuesta es "Sí, si el número de secuencia TCP inicial incluido en el SYN / ACK por el servidor es predecible". Es por eso que la previsibilidad de ISN (Número de secuencia inicial) es algo probado por los escáneres de vulnerabilidad y algo que se implementa de manera mucho más correcta hoy que hace 10 o 15 años. Para citar un aviso de Cisco del 2001 relacionado con esta vulnerabilidad, " El caso general de esta vulnerabilidad en TCP es bien conocido por la comunidad de seguridad del sistema de información. "Más famoso, Mitnick abusó de esta característica en su ataque a Shimomura .
A menos que esté disponible el enrutamiento de origen o el acceso a un enrutador en la ruta de la red, esta no es una configuración sostenible. El cliente puede adivinar el ISN, pero los números de secuencia posteriores se incrementan por el tamaño de los paquetes que se envían , que el atacante no verá y no puede predecir de manera confiable. Por lo tanto, deberían poder recibir al menos un paquete después del apretón de manos de tres vías, pero no una conversación. Y a veces un paquete es suficiente.
La predicción ISN es un subconjunto específico de Ataques de predicción de secuencia TCP . Si bien no puedo citar buenos números, mi experiencia sugiere que es una vulnerabilidad que se prolongó por mucho más tiempo de lo que debería haber sido; usted todavía se ejecuta a través de dispositivos que fallan exploraciones debido a eso Es difícil lograr que todos solo arreglen sus pilas TCP, especialmente cuando la solución involucra la generación robusta de números aleatorios, que es un tanto difícil en hardware limitado y barato (el tipo que se lanza a los dispositivos de red todo el tiempo ).
Sin acceso a la red detrás de una de las direcciones IP permitidas o acceso a una máquina detrás de una de las direcciones IP permitidas, no pasa un TCP 3-way handshake con una dirección IP falsificada.
Es fácil enviar un paquete TCP con cualquier dirección IP. En Linux puedes abrir un socket en bruto y enviar lo que quieras. El problema es recibir el SYN / ACK (o cualquier otra respuesta), que se enrutará a la IP original.
Los enrutadores entre su cliente pueden tener reglas de firewall para rechazar la solicitud, pero a menudo asumirán que su cliente simplemente está enrutando un paquete desde otro host.
Lea otras preguntas en las etiquetas tls http ip-spoofing tcp