Weak encryption

Because base VNC is cleartext, implementations added encryption, but it frequently falls short. Some vendor schemes use small or fixed keys or proprietary algorithms of dubious strength. VeNCrypt wraps VNC in TLS, but deployments use outdated TLS versions, weak ciphers, or unverified self-signed certificates, so a positioned attacker still intercepts. And crucially, encryption is often offered but not required, so a client (or a forced downgrade) can select a cleartext or weak type instead. The presence of an encryption option does not mean the session is actually protected.

bash
# what encryption/security types are offered, and are they required?
nmap -p5900 --script vnc-info <target>         # VeNCrypt(19)/vendor types present?
# VeNCrypt wraps TLS: assess it like any TLS endpoint
openssl s_client -connect <target>:5900 2>/dev/null | head   # (after the RFB/VeNCrypt negotiation)
# if encryption is optional, select/force a cleartext or weak type instead

Exploitation notes#

  • The key question is whether encryption is required or merely offered; an optional scheme is bypassed by choosing a weaker type, see security type downgrade.
  • VeNCrypt/TLS is only as strong as its configuration and certificate validation; weak ciphers or an unverified self-signed cert let a positioned attacker MITM, as with any weak TLS.
  • Proprietary vendor encryption with fixed or small keys offers little real protection; treat it as obfuscation and attempt capture/decryption.
  • Where no effective encryption is in force, the session is as exposed as cleartext transmission.

References#

Cookie Consent

We use cookies to enhance your experience. Learn more