¿Por qué los robots telnet no están terminando el protocolo de enlace de tres vías?

4

Tengo una regla de reenvío de puertos que envía 23 tráfico a un "honeypot" (llamado "comp" a continuación). A lo largo de la noche, muchos bots de todo el mundo intentaron conectarse, pero no había ningún servicio en funcionamiento.

Ahora, escribí un programa en C que solo se enlaza a 23, acepta una conexión y sale. Cuando un bot escanea, Wireshark muestra el siguiente protocolo de enlace fallido para la mayoría de los intentos de conexión:

bot --> comp (SYN, port 23)
comp --> bot (SYN, ACK)
(sometimes): comp --> bot (TCP retransmission)
             ... (may have several retransmissions)
bot --> comp (RST)    (sometimes happens immediately after the SYN, ACK)

He visto una conexión de bot exitosa, pero la mayoría de los intentos resultan en lo anterior. Sé que el programa está funcionando porque cuando hago telnet con mi Android en 4G (es decir, fuera de la LAN), se produce el protocolo de enlace normal de tres vías, seguido de un FIN inmediato, ACK de mi "honeypot", como se esperaba.

¿Por qué fallan muchos de los intentos de conexión de bot? Los bots no pueden decir que no es un servicio real de telnet antes de que terminen de conectarse.

Editar : Además, a veces envían otro SYN inmediatamente después del RST, y luego el saludo se realiza con éxito.

    
pregunta Vale132 12.01.2017 - 22:17
fuente

1 respuesta

4

Están realizando escaneos de puertos, sin intentar establecer una conexión.

Esta técnica de escaneo específica se llama SYN scan . La idea es que no tiene que completar el protocolo de enlace TCP completo para averiguar si un puerto está abierto. A menudo, se prefiere un escaneo SYN a establecer una conexión completa porque es más rápido y menos perceptible. De la guía de nmap :

  

SYN scan es la opción de escaneo predeterminada y más popular por buenas razones. Se puede realizar rápidamente, escaneando miles de puertos por segundo en una red rápida no obstaculizada por cortafuegos restrictivos. También es relativamente discreto y sigiloso, ya que nunca completa las conexiones TCP. [...]

     

Esta técnica a menudo se denomina escaneo semiabierto, porque no abre una conexión TCP completa. Envía un paquete SYN, como si fuera a abrir una conexión real y luego espere una respuesta. Un SYN / ACK indica que el puerto está escuchando (abierto), mientras que un RST (reinicio) es indicativo de que no se escucha. Si no se recibe respuesta después de varias retransmisiones, el puerto se marca como filtrado.

Puedes intentar reproducir este comportamiento intentando realizar un escaneo de SYN utilizando nmap y verificando los resultados de Wireshark:

nmap -sS yourhost
  

¿Es posible que los bots no puedan decir que no es un servicio real de telnet antes de que terminen de conectarse?

Correcto, la desventaja de esta técnica es que realmente no pueden tomar huellas digitales del servicio. Todo lo que saben es que el servidor ha aceptado una conexión en ese puerto.

    
respondido por el Arminius 12.01.2017 - 22:31
fuente

Lea otras preguntas en las etiquetas