RDP
RDP hands you a full graphical desktop on a Windows host — if you have credentials. There’s rarely an exploit needed; the protocol is the front door, and the keys are the credentials you’ve gathered elsewhere. Scanning it also leaks the hostname, version, and whether NLA stands between you and a login.
Protocol: TCP (and UDP) · Port: 3389
What Is RDP?
The Remote Desktop Protocol (RDP) is Microsoft’s protocol for remote access to a Windows machine. It transmits display and control commands for the GUI, encrypted, over IP networks — operating at the application layer of the TCP/IP model, typically on TCP port 3389 (UDP 3389 can also be used for remote administration). For a session to establish, both the network firewall and the server’s own firewall have to allow the connection from outside.Encryption and NLA
Since Windows Vista, RDP supports TLS/SSL, protecting all data — especially the login — with strong encryption. But many Windows systems don’t insist on it and still accept weaker “RDP Security” encryption. Even with TLS, there’s a catch: the identity certificates are self-signed by default, so the client can’t tell a genuine certificate from a forged one. That produces a certificate warning the user has to click through — and it opens the door to man-in-the-middle attacks. The Remote Desktop service is installed by default on Windows Server (activated via Server Manager) and, by default, only allows connections from hosts using Network Level Authentication (NLA) — which forces authentication before a session is created.Footprinting the Service
Nmap
Scanning RDP quickly yields the hostname, product version, and whether NLA is enabled:rdp-sec-check — Identify Security Settings
rdp-sec-check.pl (Cisco CX Security Labs) unauthenticatedly identifies an RDP server’s security settings from its handshakes — useful for spotting weak encryption and whether NLA is enforced:
Connecting to RDP
Once you have valid credentials, connect from Linux withxfreerdp, rdesktop, or Remmina. xfreerdp is the standard:
Quick Reference
| Command | Purpose |
|---|---|
nmap -sV -sC -p3389 --script rdp-ntlm-info <ip> | Hostname, version, NLA status |
rdp-sec-check.pl <ip> | Identify RDP security settings unauthenticated |
xfreerdp /u:.. /p:.. /v:<ip> | Connect from Linux |
xfreerdp /d:.. /u:.. /p:.. /v:<ip> /cert:ignore | Connect with domain, ignore cert |
mstshash=nmap).
Next: WinRM — Windows Remote Management and PowerShell remoting.