
Go-basierter MITM-HTTP/HTTPS-Proxy mit HTTP/2- und HTTP/1.1-Abfangfunktion, lokaler CA-/pro-Host-Zertifikatsgenerierung, CONNECT/WebSocket-Tunneling, Festplatten-Caching, Admin-Dashboard, Verkehrserfassung, Blockierrichtlinien und optionalem KI-gestütztem Bedrohungsscannen mit Schwärzung, Quarantäne und Audit-Protokollierung.
Ein leichtgewichtiger, entwicklerfreundlicher Man‑in‑the‑Middle (MITM) HTTP/HTTPS-Proxy in Go. Er unterstützt HTTP/1.1 und HTTP/2, CONNECT-Tunneling, WebSocket-Tunneling (ws/wss), Caching von Antworten auf der Festplatte mit flexiblen Filtern und dynamisches Neuladen der Konfiguration.

Go MITM Proxy ist ein abfangender Proxy, der für Debugging, Tests, Lernen und kontrolliertes Abfangen von HTTP(S)-Verkehr konzipiert ist. Wenn MITM aktiviert ist, generiert er dynamisch pro-Host-Zertifikate, die von einer lokalen CA signiert werden, sodass der Proxy HTTPS-Verkehr entschlüsseln und inspizieren kann. Er kann auch als transparenter TCP-Tunnel fungieren, wenn MITM deaktiviert ist oder für ausgeschlossene Domänen/Ports.
Wichtig: Diese Anwendung führt aktives Man-in-the-Middle (MITM) Abfangen durch, einschließlich der Erstellung und Verwendung von TLS-Zertifikaten zur Entschlüsselung von HTTPS-Verkehr. Abhängig von Ihrer Rechtsordnung und Netzwerkumgebung kann das Abfangen von Verkehr ohne klare vorherige Zustimmung aller betroffenen Benutzer illegal sein und gegen Datenschutz-, Arbeitsplatzrichtlinien oder gesetzliche Vorschriften verstoßen.
Bevor Sie diese Software in einer anderen Umgebung als Ihrem eigenen lokalen Rechner verwenden:
Alle Benutzer eines Netzwerks, in dem dieser Proxy Verkehr abfangen könnte, müssen klar informiert werden, dass HTTP(S)-Abfangen und -Inspektion stattfinden werden. Die Zustimmung sollte ausdrücklich und idealerweise dokumentiert sein.
Führen Sie diese Software nicht in Netzwerken aus, die Sie weder besitzen noch verwalten oder für die Sie keine ausdrückliche Berechtigung zum Testen oder Überwachen haben.
In vielen Regionen gelten strenge Gesetze zum Abfangen, Protokollieren und Speichern von Benutzerdaten (z. B. DSGVO, CCPA, Abhörgesetze). Sie sind verantwortlich dafür, dass Ihre Nutzung allen geltenden Vorschriften entspricht.
Der generierte private CA-Schlüssel (normalerweise ca-key.pem) erlaubt es dem Inhaber, jede Domäne zu imitieren, für Benutzer, die dem entsprechenden Zertifikat vertrauen.
Dieser Proxy ist für Entwicklung, Debugging, kontrollierte Tests oder Bildungszwecke konzipiert – nicht für verdeckte Überwachung oder unbefugte Überwachung.
Durch die Nutzung dieser Software erkennen Sie an und übernehmen die volle Verantwortung dafür, dass Ihre Nutzung rechtmäßig, ethisch und allen betroffenen Benutzern ordnungsgemäß mitgeteilt wird.
Voraussetzungen:
Klonen und bauen: ```bash git clone https://github.com/Welfordian/mitm-proxy.git cd mitm-proxy go build ./
Dies erzeugt eine mitm-proxy (oder mitm-proxy.exe unter Windows) Binärdatei im Projektstammverzeichnis.
## Schnellstart
1) Führen Sie den Proxy mit den Standardeinstellungen aus (hört auf :8080): ```bash
./mitm-proxy
Beim ersten Start wird eine lokale CA erstellt und in ca-cert.pem und ca-key.pem gespeichert.
Konfigurieren Sie Ihren Browser oder curl, um den Proxy unter http://localhost:8080 zu verwenden.
Vertrauen Sie dem generierten CA-Zertifikat (ca-cert.pem) in Ihrem Betriebssystem/Browser, um HTTPS-Abfangen zu ermöglichen. Siehe Vertrauen in die lokale CA.
Besuchen Sie eine HTTPS-Website über den Proxy und beobachten Sie die Logs. Verwenden Sie den ausführlichen Modus für mehr Details: ```bash ./mitm-proxy --verbose
## Verwendung
### Kommandozeilen-Flags
- --config string: Pfad zur config.json-Datei
- --listen string: Lauschadresse (überschreibt Konfiguration)
- --ca-cert string: Pfad zum vorhandenen CA-Zertifikat (überschreibt Konfiguration)
- --ca-key string: Pfad zum vorhandenen CA-Schlüssel (überschreibt Konfiguration)
- --mitm bool: MITM-Abfang aktivieren (Standard true; auf false gesetzt erzwingt Tunneling)
- --verbose bool: Ausführliche Protokollierung aktivieren
- --watch-config bool: Überwacht config.json auf Änderungen und wendet diese automatisch an (Standard true)
- --admin-enabled bool: Lokale Admin-API/-Dashboard aktivieren (Standard true)
- --admin-addr string: Admin-API/-Dashboard-Lauschadresse (Standard 127.0.0.1:9090)
- --admin-token string: Admin-Bearer-Token (wird beim Start generiert, falls nicht angegeben)
- --admin-read-token string: Schreibgeschützter Bearer-Token für GET/HEAD/OPTIONS-Adminzugriff
- --admin-ui bool: Eingebettete Admin-Oberfläche bereitstellen (Standard true)
- --admin-store string: Admin-SQLite-Speicherpfad (Standard dashboard.db)
CLI-Flags überschreiben die Konfigurationsdateiwerte, wo angegeben.
### Konfiguration (config.json)