Para cerrar con éxito una conexión, el paquete FIN debe confirmarse en ambas direcciones. Un lado de la conexión envía un paquete FIN, al cual el otro lado debe devolver un FIN + ACK, y finalmente el lado original debe enviar otro ACK. Debes simular ambas partes de este apretón de manos para tener éxito.
Para realizar este ataque, debe conocer la IP de origen, la IP de destino, el puerto de origen, el puerto de destino y la secuencia TCP y números de reconocimiento . Estos números se seleccionan aleatoriamente, números de 32 bits generados como parte del protocolo de enlace TCP, incrementados por la longitud de cada paquete enviado / recibido. Su uso principal es garantizar un ordenamiento de paquetes sólido, pero sus valores también son útiles para proteger contra ataques de suplantación de identidad. Los paquetes con secuencia o números de acuse de recibo no válidos (es decir, valores fuera de la ventana de transmisión o recepción) se ignoran. Por lo general, obtendría estos números mediante la detección de paquetes si está en la misma red que ellos. También puedes intentar adivinar el número de manera exhaustiva, pero esto es ruidoso y lento; una fuerza bruta exhaustiva de los números de secuencia y acuse de recibo requiere un mínimo de 4 mil millones de paquetes.
Un ataque más común es un Ataque de reinicio de TCP , que es más fácil ya que un paquete RST se puede enviar sin necesidad de dos - cierre el camino y solo necesita el número de secuencia correcto ya que el indicador ACK no está establecido.