whatisgithub

What is rustyvnc?

nzyuko/rustyvnc — explained in plain English

Analysis updated 2026-05-18

54RustAudience · researcherComplexity · 4/5Setup · hard

In one sentence

A red team tool with a Rust Windows client and a Go server that lets an authorized operator view and control a Windows desktop remotely over an encrypted connection.

Mindmap

mindmap
  root((RustyVNC))
    What it does
      Remote desktop viewing
      Red team tool
      Encrypted connection
    Tech stack
      Rust client
      Go server
      WebSocket
      HTTPS
    Use cases
      Authorized security testing
      Defense research
    Audience
      Security researchers
      Red teamers

Code map

Detail Auto

An interactive map of this repo's files and how they connect — its source is parsed live in your browser. Click Visualize to build it.

filefunction / class

What do people build with it?

USE CASE 1

Test how a Windows machine's defenses hold up against remote desktop control during an authorized red team exercise.

USE CASE 2

Practice building and viewing a live encrypted remote desktop feed for security research.

USE CASE 3

Study how encrypted WebSocket and HTTPS fallback connections can be built between two custom programs.

What is it built with?

RustGoWebSocketHTTPSTLS

How does it compare?

nzyuko/rustyvncarman-bd/chromiumfishavelino/mcp
Stars545552
LanguageRustRustRust
Setup difficultyhardeasyeasy
Complexity4/53/53/5
Audienceresearcherdeveloperops devops

Figures from each repo's GitHub metadata at analysis time.

How do you get it running?

Difficulty · hard Time to first run · 1h+

Requires cross compiling a Windows client from Linux and running it inside an interactive Windows desktop session.

So what is it?

RustyVNC is a tool built for red team security testing. It lets an authorized operator watch and control a Windows desktop remotely, similar in spirit to VNC, but built as two separate pieces that talk to each other over an encrypted connection. The project has two parts. The client runs on the Windows machine being observed. It is written in Rust and handles capturing the desktop, encoding what it sees as JPEG images, launching applications, and sending back mouse and keyboard input. The server runs on the operator's own machine, written in Go, and handles the network connection, checks that incoming frames are valid, sends the video feed out to anyone viewing it, and serves a small browser page for viewing. To use it, you start the server first, which listens on a local address and either uses a certificate you provide or creates a temporary one on the spot. You then open the viewer in a web browser at that address. The Windows client is built separately using a cross compiler and then run directly on the target machine, pointed at the server's address. Under the hood, the client tries to open a secure, real time connection to the server, called a WebSocket. If that is not available, it falls back to sending updates over regular encrypted web requests instead. Either way, the connection is encrypted, the tool refuses to run over an unencrypted link. The client will not run in certain background Windows sessions, since those produce blank output instead of a real view of the desktop. Right now, the project supports only one connected viewer at a time, which keeps the code simpler while the core features are still settling. The README notes that the server should stay on the local machine by default, and that anyone exposing it more broadly should add proper certificates, an access token, and keep it on a private network. The author states plainly that this is meant for authorized research and defense analyst work, not for general use against systems the operator does not control.

Copy-paste prompts

Prompt 1
Explain how the RustyVNC client falls back from WebSocket to HTTPS polling and why that matters.
Prompt 2
Walk me through building the RustyVNC Windows client from Linux using the MinGW target.
Prompt 3
Explain how RustyVNC's server-side frame validation would reject a malformed JPEG frame.

Frequently asked questions

What is rustyvnc?

A red team tool with a Rust Windows client and a Go server that lets an authorized operator view and control a Windows desktop remotely over an encrypted connection.

What language is rustyvnc written in?

Mainly Rust. The stack also includes Rust, Go, WebSocket.

How hard is rustyvnc to set up?

Setup difficulty is rated hard, with roughly 1h+ to a first successful run.

Who is rustyvnc for?

Mainly researcher.

Open on GitHub → Ask about another repo

This repo across BitVibe Labs

Verify against the repo before relying on details.