A modular, Qubes-inspired virtual lab for Windows 11 using Hyper-V, pfSense, Xubuntu, and Tailscale VPN β designed to sandbox suspicious files, monitor host and mobile network traffic, and forward real-time alerts directly to your Windows desktop.
HyperVSecLab turns your Windows laptop into a personal security operations center (SOC), complete with deep packet inspection, behavioral analysis, and live notifications β no dual-booting required.
Built for analysts, homelabbers, and security-conscious users who want hardened isolation, full-device monitoring, and zero-trust network control β even for mobile devices.
With built-in support for Tailscale VPN, you can route your phone's traffic through the lab to detect malware behavior, DNS tunneling, C2 beacons, and more using enterprise-grade tools like Suricata and Zeek.
β Tailscale VPN support for Windows host, guest VMs, and mobile devices β with full routing and traffic monitoring through net-vm
β Persistent net-vm with pfSense + Suricata + Zeek for deep traffic inspection
β Disposable inspect-vm for analyzing suspicious files (PDF, DOCX, EXE, etc.)
β Real-time alerts sent to Windows via toast notifications
β Transfer.vhdx drive auto-syncs logs and config files between host and VMs
β PowerShell-based automation (build, setup, snapshot, destroy)
- Windows 11 Pro / Enterprise (Hyper-V enabled)
- Surface Pro 9 or similar device with > 8GB RAM
- Hyper-V Virtualization enabled in BIOS
- At least 40 GB of free disk space
C:\HyperVSecLab\
βββ build.ps1 β Interactive script to build net-vm / inspect-base
βββ new-lab.ps1 β Launches disposable inspect-vm with VHDs
βββ setup.ps1 β Provisions pfSense net-vm (Suricata, Zeek, Tailscale)
βββ create-transfer.ps1 β Creates and populates transfer.vhdx
βββ burn.ps1 β Wipes lab session or full net-vm setup
βββ tray-monitor.ps1 β Windows tray icon and state monitor
βββ transfer\
β βββ config\
β β βββ hypervseclab.rules β Suricata custom rules
β β βββ tailscale.zeek β Zeek detection script for UDP 41641
β β βββ netvm-alert-forwarder.sh β Shell watcher to forward alerts
β β βββ logs\
β β βββ suricata\
β β βββ zeek\
β β βββ alerts-summary.txt
βββ isos\
β βββ netgate-installer-amd64.iso β pfSense ISO
β βββ xubuntu-XX.XX-desktop.iso β Xubuntu ISO (optional minimal/server)
-
PuTTY Tools (plink + pscp)
Download from: https://www.chiark.greenend.org.uk/~sgtatham/putty/latest.html- Required for setup.ps1 SSH automation
- Add
plink.exeandpscp.exeto your system PATH
-
pfSense ISO (Net-VM) Download from: https://www.netgate.com/downloads
- Choose pfSense CE (Community Edition)
- Extract the
.gzto get the.iso
-
Xubuntu ISO (Inspect-VM) Download from: https://xubuntu.org/download/
- You can choose minimal install during setup
- ISO must be placed in the
/isosfolder
-
Tailscale Account (Free) Register at: https://tailscale.com
- Used to connect your devices (mobile, host, net-vm)
- Subnet routing enabled through pfSense net-vm
-
Clone the repo into:
C:\HyperVSecLab\ -
Download and move ISO files into the
/isosfolder:netgate-installer-amd64.isoxubuntu-*.iso
-
Run:
build.ps1
β Choose option to build net-vm (pfSense) and/or inspect-vm base -
Boot pfSense, complete guided install:
- Assign interfaces: WAN (external), LAN (internal)
- LAN IP recommended: 10.10.10.1/24
- Disable IPv6 (optional)
- Enable SSHD via console menu (option 14)
-
From host, run:
setup.ps1
β Installs Suricata, Zeek, Tailscale
β Sets up alert forwarders and syncs logs -
On mobile or external device, install Tailscale app and connect β Route traffic through net-vm
-
To analyze suspicious files:
- Run
new-lab.ps1to spin up inspect-vm - Drop files into sandboxed
transfer-sandbox.vhdx
- Run
-
Logs are synced to:
transfer/config/logs/
and alerts forwarded live to your Windows desktop
β Suricata and Zeek monitor all LAN/VPN traffic
β Alerts logged and forwarded via:
- netvm-alert-forwarder.sh
- Windows toast notifications (via
toast-listener.ps1) β Logs written to: /mnt/transfer-config/logs/suricata//mnt/transfer-config/logs/zeek/alerts-summary.txtfor daily review
Run:
-
burn.ps1 -mode session
β Destroys only the disposable inspect-vm + session disks -
burn.ps1 -mode all
β Wipes net-vm, virtual switches, and resets lab to clean state
Built with π» PowerShell, π pfSense, π§ Zeek, π‘οΈ Suricata, and βοΈ Tailscale
Inspired by Qubes OS, brought to your Windows desktop.