donderdag 24 februari 2022

VNC is tight

VNC – Virtual Network Computing
VNC staat voor Virtual Network Computing, een protocol waarmee je op afstand de bediening van een computer kunt overnemen. Het is gebaseerd op het RFB-protocol (Remote Framebuffer), oorspronkelijk ontwikkeld voor een hardwareproduct van Olivetti/Oracle genaamd Videotile. Inmiddels is VNC volledig softwarematig geïmplementeerd.

Hoewel VNC eenvoudiger – en daardoor minder veilig – is dan alternatieven zoals X-Window of RDP, is het in de praktijk bijzonder handig en snel. Je kunt met meerdere gebruikers tegelijk dezelfde desktop beheren, eenvoudig van werkplek wisselen en verdergaan waar je gebleven was. Bovendien is VNC compatibel met vrijwel elk platform, van klassieke besturingssystemen tot zelfs sommige netwerkprinters.

TightVNC: een veelgebruikte implementatie

Een bekende en veelgebruikte implementatie van VNC is TightVNC. Op de doelcomputer draait de TightVNC Server-service, voorzien van een wachtwoord ter beveiliging. Om verbinding te maken gebruik je de TightVNC Viewer, waarin je het IP-adres (of hostnaam) van de doelmachine en het wachtwoord invult.

Soms is dat wachtwoord echter niet bekend bij degene die de verbinding probeert op te zetten. Gelukkig is het wachtwoord – mits je toegang hebt tot de machine, lokaal of via remote tools zoals PsExec of PowerShell – relatief eenvoudig op te vragen én te ontsleutelen.

Wachtwoord opvragen en decoderen

TightVNC slaat het wachtwoord versleuteld op in het Windows-register, onder de volgende sleutel:

HKEY_LOCAL_MACHINE\Software\TightVNC\Server\Password

Je kunt de versleutelde waarde opvragen via de opdrachtprompt:

reg query HKLM\Software\TightVNC\Server /v Password

De output ziet er ongeveer zo uit:

HKEY_LOCAL_MACHINE\Software\TightVNC\Server
    Password    REG_BINARY    E11FB7EC44E178D9

De hexadecimale waarde E11FB7EC44E178D9 is het gecodeerde wachtwoord. TightVNC gebruikt 3DES-encryptie, een inmiddels verouderd en kwetsbaar algoritme. Gelukkig (of helaas, afhankelijk van je perspectief) is het eenvoudig te kraken.
 

Decoderen met VNCPWD

De open-source tool VNCPWD van Luigi Auriemma kan deze versleutelde waarde omzetten naar het oorspronkelijke wachtwoord.

  1. Download en unzip de tool (te vinden via aluigi.org).

  2. Open een commandprompt en navigeer naar de map waar vncpwd.exe zich bevindt.

  3. Voer het volgende commando uit:


C:\Users\<name>\Downloads\vncpwd>vncpwd E11FB7EC44E178D9

De output ziet er dan zo uit:

*VNC password decoder 0.2.1
by Luigi Auriemma
web:    aluigi.org

- your input password seems in hex format (or longer than 8 chars)

  Password:   realpass

In dit voorbeeld is het wachtwoord simpelweg realpass. Daarmee kun je nu zonder problemen verbinden met de TightVNC-server.



EmoticonEmoticon