Ho una regola di port forwarding che invia il traffico a un "honeypot" (chiamato "comp" sotto). Durante la notte, molti robot da tutto il mondo hanno tentato di connettersi, ma non è stato eseguito alcun servizio.
Ora, ho scritto un programma C che si lega a 23, accetta una connessione ed esce. Quando un bot esegue la scansione, Wireshark mostra il seguente handshake non riuscito per la maggior parte dei tentativi di connessione:
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)
Ho visto una connessione bot di successo, ma la maggior parte dei tentativi ha come risultato sopra. So che il programma funziona perché quando telnet con il mio Android su 4G (cioè fuori dalla LAN), si verifica la normale stretta di mano a tre vie, seguita da una FIN, ACK immediata dal mio "honeypot", come previsto.
Perché molti dei tentativi di connessione bot falliscono? I robot non sono in grado di dire che non è un vero servizio telnet prima che finiscano di connettersi?
Modifica : inoltre, a volte inviano un altro SYN immediatamente dopo l'RST e quindi l'handshake procede con successo.