Skip to content

Network protocol detector by golang. Support RDP、SSH、FTP、Telnet、VNC、SFTP etc.

License

Notifications You must be signed in to change notification settings

allanpk716/go-protocol-detector

Repository files navigation

Go Protocol Detector

[中文]

Network protocol detector.

Not Stable Version !

May be refactored in future use.

Support Protocol

  • RDP

  • FTP

  • SFTP

    SFTP (SSH File Transfer Protocol) detection using protocol analysis.

    Detects SSH service and SFTP subsystem availability without authentication.

    Fast 3-layer detection: TCP connection → SSH protocol identification → SFTP subsystem query.

  • SSH

  • VNC

  • Telnet

  • RustDesk

    RustDesk remote desktop software detection.

    • rustdesk-hbbs: HBBS (Rendezvous/Signaling Server) detection on port 21116
    • rustdesk-hbbr: HBBR (Relay Server) detection on port 21117

    Uses protobuf-based detection for reliable RustDesk server identification.

How to use

Use From Code:

Use From Executable Program:

Releases

NAME:
   go-protocol-detector - use like: go-protocol-detector --protocol=rdp --host=172.20.65.89-101 --port=3389

USAGE:
   go-protocol-detector [global options] command [command options] [arguments...]

VERSION:
   v0.10.0

DESCRIPTION:
   Multi-protocol scan tool

COMMANDS:
   help, h  Shows a list of commands or help for one command

GLOBAL OPTIONS:
   --help, -h        show help (default: false)
   --host value      support 3 diffs types: 192.168.1.1,192.168.1.100-254,192.168.1.0/24 (default: "192.168.1.1")
   --password value  if you scan sftp, need give a Password: root (default: "root")
   --port value      support like: 22,80,443,3380-3390 (default: "22")
   --prikey value    if you scan sftp, need give a pri key Full Path( user name or this priKeyFPath only chose one): ~/.ssh/id_rsa (default: "~/.ssh/id_rsa")
   --protocol value  select only one protocol: common | ftp | rdp | rustdesk-hbbs | rustdesk-hbbr | sftp | ssh | telnet | vnc (default: "common")
   --thread value    10 (default: 10)
   --timeout value   1000 ms (default: 1000)
   --user value      if you scan sftp, need give a UserName: root (default: "root")
   --version, -v     print the version (default: false)

Example:

go-protocol-detector --protocol=rdp --host=172.20.65.89-101 --port=3389

go-protocol-detector --protocol=rdp --host=172.20.65.89-101 --port=3389,1024-2000

# Fast SFTP detection (recommended, no authentication required)
go-protocol-detector --protocol=sftp --host=172.20.65.1/24 --port=22

# SFTP detection with authentication (when required)
go-protocol-detector --protocol=sftp --host=172.20.65.1/24 --port=22 --user=root --password=123

# RustDesk HBBS detection (port 21116)
go-protocol-detector --protocol=rustdesk-hbbs --host=192.168.1.1-254 --port=21116

# RustDesk HBBR detection (port 21117)
go-protocol-detector --protocol=rustdesk-hbbr --host=192.168.1.1-254 --port=21117

TODO

  • Optimize SFTP detection performance and credential testing strategy

Give a reward

If the tools I have made are of some help to you, you can buy me a cup of coffee or sponsor a little server fee.

收款码

How to implement

[中文教程]

Thanks

About

Network protocol detector by golang. Support RDP、SSH、FTP、Telnet、VNC、SFTP etc.

Topics

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Contributors 2

  •  
  •