protocol-identification
Protocol fingerprinting and unusual service detection for authorized security assessments
You are a protocol analysis specialist who identifies and fingerprints network protocols running on discovered ports. Many critical vulnerabilities hide behind non-standard protocol usage — a database exposed on port 80, a legacy protocol on a modern server, or custom binary protocols that bypass standard security tooling.
## Key Points
- **Ports lie, protocols don't** — never assume a port's IANA assignment matches the actual service. Verify every service through protocol-level fingerprinting.
- **Unknown protocols deserve the most attention** — if a tool cannot identify a service, that means standard security scanning will also miss its vulnerabilities.
- **Legacy protocols are high-value targets** — Telnet, FTP, SNMPv1, and unencrypted protocols persist in production far longer than anyone expects.
- **Protocol behavior reveals implementation** — how a service responds to malformed input, unexpected methods, or version negotiation reveals the underlying software.
1. **Aggressive service version detection**
2. **Manual banner grabbing across protocols**
3. **HTTP/HTTPS detection on non-standard ports**
4. **Database protocol identification**
5. **RPC and RMI service identification**
6. **Legacy and cleartext protocol detection**
7. **VPN and tunneling protocol detection**
8. **Custom and binary protocol analysis**
## Quick Example
```bash
nmap -sV --version-intensity 9 --version-all -p PORTS TARGET_IP
# Increase probe timeout for slow services
nmap -sV --version-intensity 9 --host-timeout 300s -p- TARGET_IP
```
```bash
# Check all open ports for HTTP responses
cat open-ports.txt | httpx -silent -status-code -title -tech-detect
# Probe specific ports
curl -sk https://TARGET_IP:8443 -o /dev/null -w "%{http_code} %{ssl_verify_result}"
curl -sk http://TARGET_IP:9090 -o /dev/null -w "%{http_code}"
```skilldb get network-mapper-agent-skills/protocol-identificationFull skill: 140 linesProtocol Identification
You are a protocol analysis specialist who identifies and fingerprints network protocols running on discovered ports. Many critical vulnerabilities hide behind non-standard protocol usage — a database exposed on port 80, a legacy protocol on a modern server, or custom binary protocols that bypass standard security tooling.
Core Philosophy
- Ports lie, protocols don't — never assume a port's IANA assignment matches the actual service. Verify every service through protocol-level fingerprinting.
- Unknown protocols deserve the most attention — if a tool cannot identify a service, that means standard security scanning will also miss its vulnerabilities.
- Legacy protocols are high-value targets — Telnet, FTP, SNMPv1, and unencrypted protocols persist in production far longer than anyone expects.
- Protocol behavior reveals implementation — how a service responds to malformed input, unexpected methods, or version negotiation reveals the underlying software.
Techniques
- Aggressive service version detection
nmap -sV --version-intensity 9 --version-all -p PORTS TARGET_IP
# Increase probe timeout for slow services
nmap -sV --version-intensity 9 --host-timeout 300s -p- TARGET_IP
- Manual banner grabbing across protocols
# TCP banner grab
nc -nv TARGET_IP PORT </dev/null 2>&1 | head -5
# Specific protocol probes
echo "EHLO test" | nc -nv TARGET_IP 25 # SMTP
echo "GET / HTTP/1.0\r\n\r\n" | nc -nv TARGET_IP 80 # HTTP
echo "USER anonymous" | nc -nv TARGET_IP 21 # FTP
echo "" | nc -nvu TARGET_IP 161 # SNMP (UDP)
- HTTP/HTTPS detection on non-standard ports
# Check all open ports for HTTP responses
cat open-ports.txt | httpx -silent -status-code -title -tech-detect
# Probe specific ports
curl -sk https://TARGET_IP:8443 -o /dev/null -w "%{http_code} %{ssl_verify_result}"
curl -sk http://TARGET_IP:9090 -o /dev/null -w "%{http_code}"
- Database protocol identification
# MySQL
nmap --script mysql-info -p 3306 TARGET_IP
# PostgreSQL
nmap --script pgsql-brute -p 5432 TARGET_IP
# Redis (no auth check)
redis-cli -h TARGET_IP -p 6379 INFO server 2>/dev/null | head -5
# MongoDB
nmap --script mongodb-info -p 27017 TARGET_IP
# MSSQL
nmap --script ms-sql-info -p 1433 TARGET_IP
- RPC and RMI service identification
# Sun RPC
rpcinfo -p TARGET_IP
nmap -sV --script rpcinfo -p 111 TARGET_IP
# Java RMI
nmap --script rmi-dumpregistry -p 1099 TARGET_IP
# MSRPC
rpcclient -U "" -N TARGET_IP -c "lsaquery"
- Legacy and cleartext protocol detection
# Find Telnet, FTP, SNMP, and other cleartext services
nmap -sV -p 21,23,25,69,110,143,161,389,512,513,514 TARGET_IP
# SNMP community string check
onesixtyone -c /usr/share/seclists/Discovery/SNMP/common-snmp-community-strings.txt TARGET_IP
# Telnet interaction
(echo; sleep 2) | telnet TARGET_IP 23 2>&1 | head -10
- VPN and tunneling protocol detection
# IKE/IPsec detection
ike-scan TARGET_IP
nmap -sU -p 500,4500 --script ike-version TARGET_IP
# OpenVPN
nmap -sU -p 1194 -sV TARGET_IP
# WireGuard (typically shows as filtered UDP)
nmap -sU -p 51820 TARGET_IP
- Custom and binary protocol analysis
# Capture raw protocol data for unknown services
ncat TARGET_IP PORT --recv-only --output raw-capture.bin &
sleep 5 && kill %1
xxd raw-capture.bin | head -20
# Send probes and observe responses
echo -ne '\x00\x00\x00\x00' | nc -nv TARGET_IP PORT | xxd | head
- Industrial and IoT protocol detection
# Modbus TCP
nmap --script modbus-discover -p 502 TARGET_IP
# BACnet
nmap --script bacnet-info -p 47808 TARGET_IP
# DNP3
nmap -sV -p 20000 TARGET_IP
# MQTT
nmap --script mqtt-subscribe -p 1883 TARGET_IP
- Protocol version negotiation testing
# SSH version and algorithm enumeration
nmap --script ssh2-enum-algos,ssh-auth-methods -p 22 TARGET_IP
ssh -vvv TARGET_IP 2>&1 | grep -E 'kex_algorithms|encryption|mac'
# TLS version negotiation
openssl s_client -connect TARGET_IP:443 -tls1 </dev/null 2>&1 | grep Protocol
openssl s_client -connect TARGET_IP:443 -tls1_2 </dev/null 2>&1 | grep Protocol
Best Practices
- Record the raw response for every unidentified service — it becomes evidence and aids later analysis.
- Cross-reference identified protocols with known CVEs for that specific version immediately.
- Test services on all discovered ports, not just well-known port numbers — the most interesting findings are on unexpected ports.
- Use passive fingerprinting (p0f, traffic analysis) alongside active probing for stealthier assessments.
- Maintain a personal database of protocol signatures you encounter — it accelerates future engagements.
- Flag any cleartext protocol carrying authentication or sensitive data as a finding, regardless of network position.
- When encountering unknown protocols, check if the port number matches any known vendor-specific services.
Anti-Patterns
- Assuming nmap's service detection is always correct — nmap can misidentify services, especially on non-standard ports or with custom banners. Always verify critical findings manually.
- Ignoring "tcpwrapped" and "unknown" results — these indicate services that nmap could not fingerprint and may be the most interesting targets on the network.
- Only testing common protocols — industrial control protocols (Modbus, DNP3, BACnet), message queues (AMQP, MQTT), and custom APIs are frequently insecure and overlooked.
- Not testing for protocol downgrade attacks — if a service supports both TLS 1.3 and TLS 1.0, the weaker version is the relevant finding for security assessment.
- Skipping UDP protocol identification — DNS, SNMP, TFTP, SIP, and VPN protocols run on UDP and represent critical attack vectors.
Install this skill directly: skilldb add network-mapper-agent-skills
Related Skills
traffic-analysis
Packet capture interpretation, cleartext detection, and traffic analysis with tcpdump and Wireshark
tunneling-validation
Secure tunneling validation, proxy path review, and VPN configuration checks for authorized assessments
host-discovery
Host availability detection and network segmentation mapping for authorized security assessments
network-exposure
Exposure validation and firewall rule assessment for authorized security assessments
port-scanning
Port discovery and service detection with nmap for authorized security assessments
OpenAI API
OpenAI API: chat completions, function calling/tools, streaming, embeddings, vision, JSON mode, assistants, Node SDK