// HackTricks · Network Services

5800,5801,5900,5901 - Pentesting VNC

5800,5801,5900,5901 - Pentesting VNC

Basic Information

Virtual Network Computing (VNC) uses the Remote Framebuffer (RFB) protocol to display and control a remote graphical interface. The client receives framebuffer updates and sends keyboard and pointer events to the server.[1]

RFB is registered on TCP port 5900.[1] VNC deployments commonly map displays to 5900 + display_number and optional web viewers to 5800 + display_number, so ports 5800, 5801, 5900, and 5901 are useful enumeration targets.[2]

PORT    STATE SERVICE
5900/tcp open  vnc

Enumeration

Nmap can collect RFB protocol and desktop-title information, and Metasploit can check whether a server accepts the None authentication type.[4][5]

nmap -sV --script vnc-info,realvnc-auth-bypass,vnc-title -p <PORT> <IP>
msf> use auxiliary/scanner/vnc/vnc_none_auth

Brute force

Connect with a VNC viewer

vncviewer [-passwd passwd.txt] <IP>::5901

Recovering stored VNC passwords

Some VNC implementations store a password in ~/.vnc/passwd.[3]

The legacy VNC password-file format uses DES with a fixed, publicly known key and truncates passwords to eight characters. The vncpwd utility can recover the plaintext from this format.[1][3]

make
vncpwd <vnc password file>

An archived Windows-compatible copy is attached here for convenience. It includes vncpwd.exe and the C source. The program accepts either a .vnc file or an encrypted password in raw or hexadecimal form, and the Windows build can also enumerate supported stored passwords from the registry:[3]

vncpwd.exe <file.vnc-or-encrypted-password>

Vncpwd.Zip

Shodan

  • port:5900 RFB

References

☧ CPTS · ordered posts

Locked

Unlock with your Main_Key through local GPG.

Start the local GPG helper

In your cheatsheet checkout, run:

npm run unlock:helper

Open the link it prints, or paste its pairing code below. Keep the terminal open until GPG finishes.

Import an index you already decrypted

Download the encrypted index, then decrypt with GPG:

gpg --output report-index.json --decrypt report-index.gpg

Your private key stays in GPG. The decrypted index is saved in this browser so you can reopen it after navigation, refreshes and restarts. Lock this browser or clear this site's browser data to remove the saved index. Nothing is uploaded.