Skip to content
KitploitKITPLOIT
ToolsBlog
Einreichen
ToolsBlog
Einreichen

Hacking-, PenTest- und Cybersicherheits-Tools für Ihr Sicherheitsarsenal!

Kitploit ist ein Verzeichnis von Hacking-, Cybersicherheits- und Pentesting-Tools. Entdecken Sie die neuesten Projekt-Updates, um Schwachstellen zu finden, Systeme zu analysieren, Tests zu automatisieren und Ihre Sicherheit zu stärken.

··Feeds·Kontakt·Datenschutz·© 2026 Kitploit

Tool-Verzeichnis

Kategorien

Alle Kategorien anzeigen
Loading categories
mkdev — Trusted localhost HTTPS — local CA, /etc/hosts, mDNS LAN sharing, reverse proxy. Maps https://name.local → localhost:port | Kitploit
Tools/GitHubGitHub/venkatkrishna07/mkdev
Encryption/Decryption ToolsReverse EngineeringWeb SecurityNetwork SecurityUtilities & FrameworksDNS Analysis
GitHubvenkatkrishna07/mkdev

mkdev

Trusted localhost HTTPS — local CA, /etc/hosts, mDNS LAN sharing, reverse proxy. Maps https://name.local → localhost:port

Repository anzeigen
14014vor 2 MonatenVon Kitploit geprüft

Beliebteste

Alle anzeigen →

Entdecken Sie die meistgenutzten Tools unserer Community.

Alle Tools erkunden

Durchsuchen Sie unsere Tool-Sammlung

Alle Tools anzeigen →
Teilen

mkdev

Echtes HTTPS für lokale Entwicklung – mit TUI und LAN-Freigabe.

ci release license


mkdev führt vertrauenswürdiges HTTPS auf *.local aus. Ein einzelnes Go-Binary: Zertifizierungsstelle + Reverse Proxy + /etc/hosts + mDNS-Broadcast + eine vollständige TUI.

Was es anders macht:

  • LAN-Freigabe Markieren Sie eine Route als geteilt, rufen Sie https://app.local von Ihrem Telefon oder einem anderen Gerät im selben Wi-Fi auf.
  • TUI, nicht nur eine CLI. Live-Routentabelle, Anforderungsprotokolle, Zertifikatsinspektion, Health Doctor. mkdev ohne Argumente startet die TUI.
  • Gehärtete Privilegiengrenze. Besitzer-, Schreibbarkeits- und Symlink-Prüfungen des sudo-Helfer-Binärs vor jedem Aufruf mit erhöhten Rechten (internal/safeexec). Keine PATH-basierte Verschleierung, keine gruppenschreibbaren Abkürzungen.
  • Pro-SNI-Zertifikatserstellung. Blätter werden auf Anfrage ausgestellt und durch eine explizite knownHost-Zulassungsliste abgesichert. Kein Wildcard, nicht vorgefertigt.

Was es tut

root@kitploit:~
mkdev install                    # CA + Vertrauen + Daemon-Dienst + Menüleisten-Autostart
mkdev add myapp localhost:3000   # leitet https://myapp.local → localhost:3000 weiter
curl https://myapp.local         # 200 von Ihrer lokalen App

install ist einmalig: generiert die CA, vertraut ihr im System-Trust-Store, installiert und aktiviert den Daemon-Benutzerdienst (launchd / systemd), registriert die Menüleiste für den Start beim Login und startet die Leiste sofort, wenn eine GUI-Sitzung vorhanden ist. Der Daemon verwaltet den Proxy; die TUI (mkdev ohne Argumente) und mkdev add | remove | list kommunizieren mit ihm über ~/.mkdev/daemon.sock.

mkdev Demo

LAN-Freigabe

Das Hauptmerkmal von mkdev. Teilen Sie eine Route mit jedem Gerät im selben Wi-Fi mit echtem TLS – keine Warnungen, kein Tunneldienst.

  1. Wählen Sie im TUI-Registerkarte Domänen eine Route aus und drücken Sie s, um die Spalte SHARE auf LAN zu setzen.
  2. Die Route wird per mDNS als <name>.local → LAN-IP dieses Rechners bekanntgegeben.
  3. Auf dem Telefon / zweiten Laptop rufen Sie https://<name>.local auf. Sobald das Gerät der mkdev-CA einmal vertraut, erscheinen keine Warnungen.

Einschränkungen

  • Nur .local-Routen werden per mDNS gesendet. Andere TLDs werden weiterhin proxied, sind aber nicht über den LAN-Namen erreichbar.
  • Firmen-/Cloud-Wi-Fi blockiert oft Multicast. Heim- und Büro-Wi-Fi funktionieren.
  • Das Umschalten mit s erfolgt live – mDNS-Werbung und die LAN-seitige ACL werden bei der nächsten Anfrage aktualisiert. Kein Neustart.
  • Nicht geteilte Routen geben bei Nicht-Loopback-Anfragen einen 403 als Defense-in-Depth zurück.
  • Jeder im LAN kann Ihre geteilten Routen erreichen. Nicht in unsicheren Wi-Fi-Netzwerken aktivieren.

Installation

Homebrew (macOS, Linux)

root@kitploit:~
brew install venkatkrishna07/tap/mkdev

Später aktualisieren:

root@kitploit:~
brew update
brew upgrade mkdev

Go

root@kitploit:~
go install github.com/venkatkrishna07/mkdev/cmd/mkdev@latest

Auf eine bestimmte Version aktualisieren:

root@kitploit:~
go install github.com/venkatkrishna07/mkdev/cmd/[email protected]

Direkter Download

Vorkompilierte Binärdateien für macOS (Intel + Apple Silicon), Linux (amd64 + arm64) und Windows (amd64) werden auf der Releases-Seite veröffentlicht. Jede Version enthält checksums.txt sowie eine Cosign-schlüssellose Signatur (checksums.txt.sig + .pem) – siehe SECURITY.md#verifying-releases für den Befehl zur Überprüfung.

Unter macOS, wenn Gatekeeper einen direkt heruntergeladenen Binärdatei blockiert:

root@kitploit:~
xattr -d com.apple.quarantine ./mkdev

Aus dem Quellcode

root@kitploit:~
git clone https://github.com/venkatkrishna07/mkdev.git
cd mkdev
task build
cp bin/mkdev ~/bin/        # oder /usr/local/bin

Erfordert Go 1.25+.

Erster Start

root@kitploit:~
mkdev install   # CA, Vertrauen, Daemon-Dienst, Leisten-Autostart – ein Befehl
mkdev           # TUI starten

Nach install läuft der Daemon im Hintergrund und die Menüleiste erscheint (macOS, Linux GNOME/KDE, Windows). Die Leiste zeigt Daemon-Status, Routenliste und pro Route Aktivierungs-/LAN-Freigabe-Umschalter; Quit beendet die Leiste, ohne den Daemon zu stoppen.

Menüleiste

Die Leiste ist die ständig sichtbare Benutzeroberfläche. Sie befindet sich im System-Tray und kommuniziert mit dem Daemon über ~/.mkdev/daemon.sock. Wird beim Login gestartet (Autostart von install registriert); auch im Vordergrund mit mkdev bar ausführbar.

Was sie anzeigt:

  • Statuspunkt – grün aktiv, rot inaktiv, gelb prüfend, grau aus. Zeigt den Daemon-Health-Status.
  • Kopfzeile – mkdev v0.4.0 + Daemon-PID + Betriebszeit + lauschender Proxy-Port.
  • Routen – jede Route im Store, von oben nach unten. Jeder Eintrag zeigt name.tld → target plus Suffix-Abzeichen ( · deaktiviert, · LAN).

Was sie tut (Klick auf eine Route):

  • Im Browser öffnen – öffnet https://name.tld mit dem System-Standard-Handler.
  • URL kopieren – kopiert die Proxy-URL in die Zwischenablage (pbcopy / wl-copy / xclip / clip.exe).
  • Aktivieren / Deaktivieren – schaltet das Enabled-Flag der Route um. Deaktivierte Routen bleiben im Store, werden aber nicht mehr proxied.
  • Im LAN freigeben – schaltet mDNS-Werbung + LAN-seitige ACL um.

Aktionen auf Leistenebene:

  • Daemon stoppen – ruft zuerst DisableUnit auf, damit launchd/systemd KeepAlive nicht sofort neu startet, sendet dann Shutdown über den Socket.
  • Beenden – beendet nur den Leistenprozess. Daemon und Proxy laufen weiter.

Hinweise:

  • Zwei Leisteninstanzen können nicht gleichzeitig laufen (PID-Datei-Sperre; die zweite wird sofort beendet).
  • Die Leiste stellt automatisch wieder eine Verbindung her, wenn der Daemon neu startet. Der Statuspunkt aktualisiert sich ohne manuelle Aktualisierung.
  • Nur die Leiste (und mkdev daemon stop) beenden den überwachten Daemon sauber – das direkte Killen des Daemon-Prozesses führt dazu, dass er von launchd/systemd neu gestartet wird.

Aktualisierung

Ersetzen Sie das Binary (brew upgrade / go install ...@latest / neuer Download). Beim nächsten Ausführen eines beliebigen mkdev-Unterbefehls gleicht das Binary die außerhalb liegenden Teile ab: es schreibt die Daemon-Plist/systemd-Unit und den Leisten-Autostart-Eintrag neu, um auf das neue Binary zu verweisen, setzt /etc/hosts für aktivierte Routen zurück und vertraut der CA erneut, falls sie entfernt wurde. Sudo-Eingabeaufforderungen laufen inline. Wenn nur der Daemon läuft und Sie die CLI nie verwenden, erledigt der Daemon die sicheren (kein Sudo) Teile beim eigenen Start und stellt den Rest bis zum nächsten CLI-Befehl zurück.

Ein erneutes Ausführen von mkdev install macht dasselbe explizit und ist immer sicher – jeder Schritt ist idempotent.

Plattformunterstützung

Erkannte Linux-Distributionen: Debian/Ubuntu (/usr/local/share/ca-certificates), RHEL/Fedora (/etc/pki/ca-trust/source/anchors), Arch (/etc/ca-certificates/trust-source/anchors), openSUSE (/usr/share/pki/trust/anchors).

Firefox verwendet seinen eigenen NSS-Speicher und wird noch nicht unterstützt – System-Chrome/Safari/Edge/curl/wget funktionieren alle.

Befehle

Flags und Umgebung

Zielfomate

<target> akzeptiert jedes von:

root@kitploit:~
host:port                  z.B. localhost:3000
http://host[:port]/path    z.B. http://localhost:3000/api
https://host[:port]/path   z.B. https://gitlab.example.com

Bei HTTPS-Upstreams (z.B. ein privates GitLab im Firmen-VPN) muss das TLS-Zertifikat des Upstreams gegenüber dem System-Trust-Store verifizieren. Private CAs müssen ihr Root-Zertifikat zur OS-Keychain hinzugefügt werden.

hosts-helper ist nicht dazu gedacht, direkt aufgerufen zu werden. add / remove rufen dasselbe Binary unter sudo erneut auf, um den privilegierten Schreibzugriff auf /etc/hosts durchzuführen.

Konfiguration

Hinweis zur TLD. .local-Routen benötigen einen mDNS-Responder (unter macOS immer aktiv, unter Linux verfügbar wenn nss-mdns installiert ist). .test / .dev / .localhost funktionieren überall nur über /etc/hosts. Setzen Sie tld in der Konfiguration entsprechend.

Die Konfiguration liegt unter ~/.mkdev/config.toml. Standardwerte:

root@kitploit:~
tld           = ".local"   # wird an bloße Namen in `add` angehängt
proxy_port    = 443        # Bindung an :443 erfordert sudo beim serve
theme         = "auto"     # für zukünftige TUI reserviert
log_retention = "7d"       # reserviert
log_max_size  = "100MB"    # reserviert

Überschreiben Sie das Konfigurationsverzeichnis mit --home <pfad> oder MKDEV_HOME=....

Wie es funktioniert

  • Erzeugt ein ECDSA P-256-Root-CA-Zertifikat unter ~/.mkdev/ca/. Der private Schlüssel hat Modus 0o400.
  • Installiert die CA im systemeigenen Trust-Store: macOS Keychain (security), Linux-CA-Bundle-Verzeichnis + update-ca-*, Windows ROOT-Store via crypt32.dll. Die Trust-Store-Integration ist von mkcert (BSD-3) adaptiert – siehe LICENSE-MKCERT.
  • Bei add schreibt der Daemon eine Route in einen bbolt-KV-Speicher unter ~/.mkdev/state.db und fügt eine 127.0.0.1 <name>.<tld>-Zeile zu /etc/hosts hinzu, über einen mit sudo aufgerufenen Hilfsbefehl.

Sicherheit

Dieses Tool installiert eine private CA in Ihren System-Trust-Store. Jeder mit Lesezugriff auf ~/.mkdev/ca/rootCA-key.pem kann TLS-Zertifikate ausstellen, denen Ihr Rechner vertraut. Der Schlüssel wird mit 0o400 (nur Besitzer lesen) erstellt.

  • Der Proxy bindet 0.0.0.0, aber eine Verbindungsquellen-ACL gibt bei LAN-Anfragen an nicht explizit als shared markierte Routen einen 403. Loopback ist immer erlaubt.
  • Keine Telemetrie. Keine entfernten Aufrufe. Keine Update-Prüfungen.
  • add / remove rufen sudo auf, um /etc/hosts zu ändern. Siehe SECURITY.md für das Bedrohungsmodell und eine bekannte Einschränkung bezüglich os.Executable()-aufgelöster Hilfspfade.

Deinstallation

root@kitploit:~
mkdev uninstall   # stoppt + deaktiviert Daemon, entzieht CA-Vertrauen, löscht /etc/hosts,
                  # entfernt Daemon-Dienst + Leisten-Autostart, löscht ~/.mkdev/

Wenn etwas hängen bleibt, öffnen Sie Schlüsselbundverwaltung.app, suchen Sie nach mkdev und löschen Sie es von Hand. Dann grep mkdev /etc/hosts und bereinigen Sie eventuelle Überbleibsel.

Daemon und API

Der Daemon verwaltet den Proxy und den Routenspeicher. Er stellt eine lokale HTTP-API auf ~/.mkdev/daemon.sock (nur Besitzer 0600) bereit. Die TUI, CLI-Unterbefehle und die Menüleiste sind Clients des Daemons – nur der Daemon hält die bbolt-Sperre.

mkdev install installiert den Daemon als Benutzerdienst (launchd LaunchAgent unter macOS, systemd --user unter Linux) und aktiviert ihn. Er läuft im Hintergrund und überlebt Abmelden/Anmelden.

root@kitploit:~
mkdev daemon status                # installiert / aktiviert / läuft
mkdev daemon stop                  # stoppen + deaktivieren (verhindert Neustart)
curl --unix-socket ~/.mkdev/daemon.sock http://x/v1/status
curl --unix-socket ~/.mkdev/daemon.sock http://x/v1/routes
curl --unix-socket ~/.mkdev/daemon.sock -X POST http://x/v1/routes \
     -H 'Content-Type: application/json' \
     -d '{"name":"foo","target":"localhost:3000"}'
curl --unix-socket ~/.mkdev/daemon.sock -X DELETE http://x/v1/routes/foo

Roadmap

Als nächstes:

  • Integration des Firefox/NSS-Trust-Stores.
  • Pro-Pfad-Routing (/api → 8080, /ws → 9000 auf einer einzelnen Domäne).

Fehlerbehebung

  • Firefox zeigt einen roten Balken. Firefox verwendet seinen eigenen NSS-Speicher; das System-Vertrauen erreicht ihn nicht. Die NSS-Integration ist in Planung. Importieren Sie vorerst ~/.mkdev/ca/rootCA.pem manuell unter Einstellungen → Datenschutz & Sicherheit → Zertifikate → Zertifikate anzeigen → Behörden → Importieren.
  • Daemon kann :443 nicht binden. macOS/Linux erlauben Nicht-Root-Benutzerdiensten, :443 über launchd/systemd-Fähigkeiten zu binden. Falls Ihre Distribution dies einschränkt, setzen Sie proxy_port = 8443 in ~/.mkdev/config.toml und verwenden Sie https://name.local:8443.
  • mkdev add fragt ständig nach Sudo. Der Sudo-Cache pro Sitzung läuft ab (Standard 5 Min.). Verwenden Sie stattdessen die TUI-Registerkarte Domänen – sie erhöht die Rechte über osascript (macOS GUI-Eingabeaufforderung) oder pkexec (Linux Polkit).
  • /etc/hosts enthält bereits einen Eintrag für diesen Namen. mkdev add ist idempotent und fügt nur hinzu, wenn kein von mkdev verwalteter Eintrag existiert. Entfernen Sie den vorherigen Eintrag von Hand oder wählen Sie einen anderen Namen.

Mitwirken

Siehe CONTRIBUTING.md.

Danksagungen

Die Trust-Store-Integration von mkdev – Keychain/security unter macOS, CA-Bundle + update-ca-* unter Linux, crypt32.dll ROOT-Store unter Windows und die angrenzenden NSS-Pfade – ist von mkcert von Filippo Valsorda, BSD-3, adaptiert. Ohne diese Vorarbeit wäre dieses Projekt erheblich schwieriger gewesen. Siehe LICENSE-MKCERT für die upstream-Lizenz.

Die TUI basiert auf Charmbracelet's Bubble Tea / Bubbles / Lipgloss. mDNS über hashicorp/mdns. Local KV über bbolt.

Lizenz

MIT LICENSE.

Tool herunterladen
PlattformTrust-StoreBerechtigungserhöhung
macOSSystem Keychain (security add-trusted-cert)sudo / osascript
Linuxupdate-ca-trust / update-ca-certificates / trust extract-compatsudo / pkexec
WindowsROOT-Systemstore über crypt32.dllUAC (PowerShell RunAs)
BefehlZweck
installEinmalig: CA + Vertrauen + Daemon-Dienst + Leisten-Autostart. Mit --no-service nur CA.
add <name> <target>Route hinzufügen. Fügt einen 127.0.0.1-Eintrag zu /etc/hosts hinzu.
remove <name>Route und ihren /etc/hosts-Eintrag entfernen.
listRouten im Store auflisten.
tuiTUI starten (auch Standard, wenn ohne Argumente ausgeführt).
daemon serveDaemon im Vordergrund ausführen (normalerweise vom Dienst-Einheit gesteuert).
daemon stopLaufenden Daemon stoppen und Benutzerdienst deaktivieren.
daemon statusInstallierten/aktivierten/laufenden Status des Dienstes melden.
barMenüleisten-App starten. Wird von install automatisch gestartet.
uninstallCA entziehen, /etc/hosts-Einträge entfernen, Daemon + Leisten-Autostart deinstallieren, ~/.mkdev/ löschen.
versionVersion, Commit, Build-Datum ausgeben.
completion <bash|zsh|fish|powershell>Shell-Vervollständigungsskript ausgeben.
hosts-helperVersteckt. Wird über sudo aufgerufen, um /etc/hosts atomar zu ändern.
Flag / envWirkung
--home <pfad>~/.mkdev-Zustandsverzeichnis überschreiben.
--verbose, -vDebug-Level-Logging auf stderr.
--versionVersion ausgeben und beenden.
MKDEV_HOME=<pfad>Entspricht --home.
FeldStandardHinweise
tld.localWird automatisch angehängt, wenn add <name> keinen Punkt enthält.
proxy_port443Setzen Sie 8443, wenn Ihre Plattform dem Benutzerdienst keine Bindung an :443 erlaubt.
themeautoReserviert für die kommende TUI.
log_retention7dReserviert.
log_max_size100MBReserviert.
  • Der Daemon lauscht auf TLS auf 0.0.0.0:<proxy_port>, erstellt bei Bedarf Blattzertifikate pro SNI mit der Root-CA und proxyed Reverse an den konfigurierten Upstream.
  • Die Routentabelle des Proxys wird bei jedem add / remove im Prozess neu geladen, kein Neustart.
  • Der Proxy bindet 0.0.0.0, aber Nicht-Loopback-Anfragen erhalten einen 403, es sei denn, die passende Route ist als shared markiert – siehe LAN-Freigabe.
  • Cross-Host-Upstream-Weiterleitungen (z.B. ein GitLab, das 301 auf seinen öffentlichen Hostnamen umleitet) erhalten eine umgeschriebene Location und Set-Cookie Domain, damit Clients keine Anmeldedaten verlieren.