RDP Lottery - Network Scanner with Casino-Themed UI
3 min read
rdp-lottery is a local network scanner with a casino-themed web UI that discovers RDP and VNC servers, checks authentication requirements, captures screenshots of unauthenticated desktops, and optionally announces discoveries to Bluesky.
What it does:
• Discovery — single nmap pass for RDP (3389–3390) and VNC (5900–5901) across a subnet
• Full enumeration — OS detection, open ports, NetBIOS names, domain info, SSL certs, MAC addresses
• Auth checking — determines NLA status for RDP and auth type for VNC (None/password)
• Screenshots — captures login screens from non-NLA RDP hosts (FreeRDP) and open VNC desktops (vncdotool)
• Enrichment — ASN, GeoIP, reverse DNS, and IP type classification for every host
• Live logging — real-time scan output streamed to the browser via Server-Sent Events, styled as a slot-machine log
• Bluesky announcements — opt-in posting of discoveries with screenshots via AT Protocol
Stack: Python 3.11 + FastAPI (uvicorn) backend with raw SQLite (WAL mode, no ORM). Frontend is React 19 + TypeScript + Tailwind v4 + TanStack Query (10s auto-refetch). nmap, FreeRDP, and vncdotool do the actual scanning work.
Pipeline: Discovery → full-port scan → SSL cert → NLA check → RDP screenshot → VNC auth check → VNC screenshot → enrichment. Each phase is a separate nmap invocation, and scans run in daemon threads since python-nmap is synchronous.
Fun extras: a "Lucky Draw" button grabs a random host from VNC Resolver and scans its /24, and a "Hot Tips from the Wire" button imports targets from an external host feed.
Repo: github.com/nerdymark/rdp-lottery Read more...
What it does:
• Discovery — single nmap pass for RDP (3389–3390) and VNC (5900–5901) across a subnet
• Full enumeration — OS detection, open ports, NetBIOS names, domain info, SSL certs, MAC addresses
• Auth checking — determines NLA status for RDP and auth type for VNC (None/password)
• Screenshots — captures login screens from non-NLA RDP hosts (FreeRDP) and open VNC desktops (vncdotool)
• Enrichment — ASN, GeoIP, reverse DNS, and IP type classification for every host
• Live logging — real-time scan output streamed to the browser via Server-Sent Events, styled as a slot-machine log
• Bluesky announcements — opt-in posting of discoveries with screenshots via AT Protocol
Stack: Python 3.11 + FastAPI (uvicorn) backend with raw SQLite (WAL mode, no ORM). Frontend is React 19 + TypeScript + Tailwind v4 + TanStack Query (10s auto-refetch). nmap, FreeRDP, and vncdotool do the actual scanning work.
Pipeline: Discovery → full-port scan → SSL cert → NLA check → RDP screenshot → VNC auth check → VNC screenshot → enrichment. Each phase is a separate nmap invocation, and scans run in daemon threads since python-nmap is synchronous.
Fun extras: a "Lucky Draw" button grabs a random host from VNC Resolver and scans its /24, and a "Hot Tips from the Wire" button imports targets from an external host feed.
Repo: github.com/nerdymark/rdp-lottery Read more...