https://github.com/allanpk716/go-protocol-detector
Network protocol detector by golang. Support RDP、SSH、FTP、Telnet、VNC、SFTP etc.
https://github.com/allanpk716/go-protocol-detector
detect ftp protocol rdp scanner sftp ssh telnet vnc
Last synced: 5 months ago
JSON representation
Network protocol detector by golang. Support RDP、SSH、FTP、Telnet、VNC、SFTP etc.
- Host: GitHub
- URL: https://github.com/allanpk716/go-protocol-detector
- Owner: allanpk716
- License: mit
- Created: 2021-03-16T11:21:25.000Z (about 5 years ago)
- Default Branch: master
- Last Pushed: 2026-01-15T11:13:55.000Z (5 months ago)
- Last Synced: 2026-01-15T15:35:58.837Z (5 months ago)
- Topics: detect, ftp, protocol, rdp, scanner, sftp, ssh, telnet, vnc
- Language: Go
- Homepage:
- Size: 883 KB
- Stars: 46
- Watchers: 2
- Forks: 6
- Open Issues: 1
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# Go Protocol Detector
[[中文]](https://github.com/allanpk716/go-protocol-detector/blob/master/ReadMeThings/readme_cn.md)
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:
* [detector_test.go](https://github.com/allanpk716/go-protocol-detector/blob/master/pkg/detector_test.go)
* [scan_tools_test.go](https://github.com/allanpk716/go-protocol-detector/blob/master/pkg/scan_tools_test.go)
### Use From Executable Program:
[Releases](https://github.com/allanpk716/go-protocol-detector/releases)
```powershell
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:
```powershell
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
[[中文教程]](https://github.com/allanpk716/go-protocol-detector/blob/master/ReadMeThings/readme_cn_tutorial.md)
## Thanks
* [ziutek/telnet](ziutek/telnet)