Skip to content

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

1 Commit
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

πŸ‘ WireWatch β€” See Who Your Windows PC Talks To, in Real Time

WireWatch is a free, open-source real-time network monitor for Windows. It shows you exactly who is connecting to your PC and what data is leaving it β€” every outbound and inbound connection, mapped to the process that opened it, geolocated on a live world map, with the domain, ASN/owner, and automatic tracker / telemetry / threat tagging.

If you've ever wondered "is my PC being tracked? what's phoning home? who is this connecting to me?" β€” this is the dashboard that answers it.

No agents, no cloud, no account. Runs entirely on your machine. Your traffic never leaves your PC (except optional IP-geolocation lookups, which are cached).


✨ Features

  • πŸ”΄ Live connection dashboard β€” outbound ("what's leaving") and inbound ("who's connecting to me") tables, updating every second.
  • 🧩 Process attribution β€” every connection is tied to the real .exe and PID that opened it, using WinDivert's kernel FLOW events (no fragile port-polling).
  • πŸ—ΊοΈ World map β€” every remote IP plotted live (Leaflet), colored by risk.
  • 🌐 Real domains, not just IPs β€” sniffs cleartext DNS, recovers hostnames via TLS SNI (works even with DoH/DoT), and falls back to reverse-DNS.
  • 🏒 Who owns the IP β€” ASN, org, ISP, city/country via ip-api (cached locally in SQLite).
  • 🚦 Automatic classification β€” every flow tagged normal / info / notice / warn / alert from offline heuristics (port, direction, process location, attribution).
  • πŸ›‘οΈ Tracker & threat intel β€” matches domains against 80k+ tracker/ad domains (StevenBlack) and IPs/domains against abuse.ch URLhaus + Feodo botnet C2 lists.
  • πŸ”Ž Click-to-drill-down β€” click any endpoint to see every flow, every process, bytes in/out, ports, the layer-7 content, and an event history.
  • πŸ”’πŸ“– Readability flags β€” instantly see which flows are encrypted (TLS) vs readable plaintext (HTTP), with a "readable only" filter and full request inspection (method, path, Host, Referer, content-type) for plaintext.
  • ⚑ Built for load β€” per-flow aggregation, 1-second tick, WebSocket streaming. Doesn't melt your browser when you stream video.
  • πŸ’Ύ SQLite history β€” flows, events, and IP geo cached on disk for later querying via a small REST API.

πŸ–ΌοΈ What it looks like

πŸ‘ WireWatch          β–² OUT 1.2M/s   β–Ό IN 340K/s   Active 87        ● live
β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€ πŸ—ΊοΈ world map of every remote IP ───────────────────────────┐
β”‚   β€’ β€’ Google US      β€’ Cloudflare      β€’β€’ Amazon AWS        β€’ (red) suspicious endpoint  β”‚
β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜
 β–² Outbound β€” what's leaving                                       Top processes by bandwidth
 Process    PID   Proto  Remote                Port  Out    In   Class   chrome.exe β–“β–“β–“β–“β–“β–“ 4.2M
 chrome.exe 9123  TCP  πŸ”’ ads.doubleclick.net  443   12K   2K   notice  Spotify.exe β–“β–“β–“ 1.1M
 svchost    1432  TCP  πŸ”’ v10.events.data.ms…  443   8K    1K   info    Live feed
 ???        β€”     TCP  πŸ”’ http-intake.logs.…   443   21K   7K   warn    11:04 tracker [doubleclick]
 updater    7766  TCP  πŸ“– download.example/v2  80    900B  4M   normal  11:03 new_flow chrome β†’ ...

Click any row β†’ a drawer opens with the process(es) talking to that endpoint, every connection, layer-7 content, and the events for it.


πŸš€ Quick start

Requirements: Windows 10/11, Python 3.10+, and Administrator rights (kernel packet capture needs it). The WinDivert driver ships bundled with pydivert β€” no separate Npcap install required.

# 1. clone
git clone https://github.com/ImMike/wirewatch.git
cd wirewatch

# 2. install dependencies
python -m pip install -r requirements.txt

# 3. run (must be elevated β€” WinDivert needs Administrator)
#    easiest: the helper auto-elevates via UAC
powershell -ExecutionPolicy Bypass -File .\run.ps1
#    or, from an Administrator terminal:
python -m wirewatch

Then open http://127.0.0.1:8080 and browse normally β€” connections populate live.

Verify your setup first (optional but recommended)

# Administrator terminal, from the repo root:
python smoke_test.py

This confirms the WinDivert driver loads, that SNIFF mode leaves your networking intact, and auto-calibrates the FLOW address/port decode against ground truth.


🧠 How it works

WireWatch fuses two kernel data sources that each see half the picture:

flowchart LR
    A[WinDivert FLOW layer<br/>5-tuple + ProcessId] --> E[Engine<br/>fuse by 5-tuple]
    B[WinDivert NETWORK layer<br/>bytes, direction, DNS, TLS SNI, HTTP] --> E
    E --> C[Enricher thread<br/>ip-api geo + ASN + reverse-DNS]
    E --> D[Intel lists<br/>StevenBlack Β· URLhaus Β· Feodo]
    C --> E
    D --> E
    E --> F[(SQLite<br/>WAL)]
    E --> G[FastAPI + WebSocket]
    G --> H[Browser dashboard<br/>tables Β· map Β· feed Β· drill-down]
Loading
  • The FLOW layer tells you which process owns a connection (kernel events, no polling).
  • The NETWORK layer gives you bytes, direction, and payloads β€” from which WireWatch extracts DNS answers, TLS SNI, and plaintext HTTP.
  • Both run in SNIFF mode, so packets are copied, never diverted β€” your networking is untouched.
  • A single-threaded engine fuses them by 5-tuple, classifies, enriches, and streams aggregated updates to the browser over WebSocket.

πŸ” Privacy & honesty about encryption

  • Your traffic stays local. WireWatch does not upload your packets anywhere. The only outbound calls it makes are IP geolocation lookups to ip-api.com (rate-limited, cached locally for days) and daily downloads of public block-lists. You can run it fully offline (you just lose geo + lists).
  • Most traffic is HTTPS/TLS β€” and WireWatch respects that. It can show you the destination (via SNI), sizes, timing, and the owning process, but it cannot read encrypted request/response bodies. Anything that is plaintext HTTP is flagged πŸ“– and fully readable.
  • No kernel driver is left running after you stop it beyond WinDivert's standard lifecycle.

⚠️ Limitations

  • Windows only (relies on the WinDivert kernel driver).
  • Encrypted payloads stay encrypted β€” WireWatch is a passive monitor by design. It does not MITM your TLS.
  • IP geolocation accuracy depends on ip-api's free tier (city-level, ASN-accurate).
  • Some short-lived UDP flows or pre-existing connections at startup may show as unattributed until re-observed.

πŸ—ΊοΈ Roadmap

  • Attribution backfill for unattributed flows via Get-NetTCPConnection/psutil
  • Exfiltration alerts β€” flag unusual sustained outbound spikes per process
  • Per-endpoint bytes-over-time sparklines
  • Optional opt-in TLS inspection mode (local root CA) for deliberate debugging
  • Export / search UI over history

Contributions welcome β€” open an issue or PR.


🧰 Tech stack

Python Β· pydivert (WinDivert) Β· psutil Β· FastAPI Β· uvicorn Β· httpx Β· dnslib Β· SQLite Β· vanilla JS Β· Leaflet.

Threat/tracker data: StevenBlack/hosts, abuse.ch URLhaus & Feodo Tracker. Geolocation: ip-api.com.


πŸ“„ License

MIT β€” free for personal and commercial use.


Keywords: Windows network monitor Β· who is connecting to my PC Β· what data is leaving my computer Β· outbound connection monitor Β· per-process network usage Β· packet capture Windows Β· WinDivert Python Β· network traffic dashboard Β· detect tracking / telemetry / spyware Β· firewall connection viewer Β· netstat alternative Β· GlassWire alternative Β· open source Β· privacy.

About

πŸ‘ Real-time Windows network monitor β€” see who connects to your PC and what data leaves it: per-process attribution, live geo map, domain/ASN, tracker & threat tagging. Open-source GlassWire alternative.

Topics

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages