Common attacks and weaknesses
- Host takeover if client certificates are not required or leak.
Docker Engine API over TLS.
Commands sent to port 2376 create and control containers or cluster resources on the host. Everything is encrypted: someone on the path only sees unreadable bytes.
Unofficial use. The IANA assignment below differs from what is usually found on this port in practice.
| Service | Port | Transport | Description | Reference | Updated |
|---|---|---|---|---|---|
| docker-s | 2376 | TCP | Docker REST API (ssl) | - | 2014-04-17 |
// source: IANA service name and port number registry
Linux
sudo ss -ltnup 'sport = :2376' # process listening on 2376
sudo lsof -nP -i :2376macOS
sudo lsof -nP -i :2376
Windows (PowerShell)
Get-NetTCPConnection -LocalPort 2376 -State Listen | Select LocalAddress, OwningProcess Get-NetUDPEndpoint -LocalPort 2376 netstat -ano | findstr :2376
From another machine
nmap -p 2376 -sV <host> nc -zv <host> 2376
Block it in the firewall
sudo ufw deny 2376/tcp # Linux (ufw) New-NetFirewallRule -DisplayName "Block 2376" -Direction Inbound -LocalPort 2376 -Protocol TCP -Action Block # Windows
Docker Engine API over TLS.
Port 2376 is registered for TCP.
It is rated 6/10 (high) when exposed to the Internet. Host takeover if client certificates are not required or leak. Require client certificates (tlsverify) and restrict by IP.
On Linux run "ss -ltnup 'sport = :2376'", on macOS "lsof -nP -i :2376", and on Windows "netstat -ano | findstr :2376" to see the local process. From another machine, "nmap -p 2376 <host>" shows whether it is reachable.