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.