Skip to content

feat: expand and randomize Telnet IAC negotiation sequences#17

Open
vinayaktyagi10 wants to merge 1 commit intohoneynet:mainfrom
vinayaktyagi10:feat/telnet-iac-randomization
Open

feat: expand and randomize Telnet IAC negotiation sequences#17
vinayaktyagi10 wants to merge 1 commit intohoneynet:mainfrom
vinayaktyagi10:feat/telnet-iac-randomization

Conversation

@vinayaktyagi10
Copy link
Copy Markdown

Summary

Replaces the fixed, fingerprintable Telnet IAC negotiation sequences
with a larger, variable-length pool to reduce scanner detectability.

Changes

  • Replace fixed negotiations[][3] array with iacOption struct
    supporting variable-length sequences (2 or 3 bytes)
  • Expand option pool from 6 to 11 entries
  • Add 2-byte sequences (NOP, GA) to vary traffic byte patterns
  • Update write call to use options[optionIndex].length instead of
    hardcoded length

Why

The original implementation sent the same 6 IAC sequences, always
exactly 3 bytes each. This creates a consistent traffic fingerprint
that automated scanners can detect and use to immediately disconnect
from the tarpit. A more varied negotiation pool makes the tarpit
harder to distinguish from a real Telnet server.

Testing

Tested locally with nc localhost 2323. Confirmed varied byte
sequences being sent and clean connect/disconnect behavior.

- Replace fixed 3-byte negotiations array with iacOption struct
  supporting variable length sequences (2 or 3 bytes)
- Expand option pool from 6 to 11 entries
- Add NOP and GA as 2-byte sequences to vary traffic fingerprint
- Makes tarpit harder to fingerprint by automated scanners
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant