Skip to content
KitploitKITPLOIT
ToolsExploitsBlog
Log in
Einreichen
ToolsExploitsBlog
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
martian — Martian ist eine Bibliothek zum Erstellen benutzerdefinierter HTTP/S-Proxys | Kitploit
Tools/GitHubGitHub/google/martian
Dynamische Analyse (Sandboxing)Web-Proxys & AbfangenAPI-SicherheitstestsWebsicherheitPenetrationstestsDienstprogramme & FrameworksArchived
GitHubgoogle/martian

martian

Martian ist eine Bibliothek zum Erstellen benutzerdefinierter HTTP/S-Proxys

Repository anzeigen
2.0k25320vor 1 JahrVon 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

Martian Proxy Build Status

Martian Proxy ist ein programmierbarer HTTP-Proxy, der für Tests entwickelt wurde.

Martian ist ein großartiges Werkzeug, wenn Sie:

  • Überprüfen, dass alle (oder ein Teil) der Anfragen sicher sind
  • Externe Dienste auf Netzwerkebene simulieren (mocken)
  • Header einfügen, Cookies ändern oder andere Mutationen von HTTP-Anfragen und -Antworten durchführen
  • Überprüfen, dass Pingbacks zu dem erwarteten Zeitpunkt stattfinden
  • Verschlüsselten Datenverkehr entschlüsseln (erfordert Installation des CA-Zertifikats im Browser)

Dank der Cross-Kompilierung von Go kann Martian überall dort eingesetzt werden, wo Go läuft.

Aktuellste Version

v3.0.0

Voraussetzungen

Go 1.11

Unterstützung von Go Modules

Martian Proxy unterstützt Go Modules seit Version v3.0.0. Wenn Sie eine Go-Version verwenden, die keine Module unterstützt, bricht dies. Die letzte Version ohne Go-Module-Unterstützung war v2.1.0.

Erste Schritte

Installation

Martian Proxy kann mit go install installiert werden

go get github.com/google/martian/ && \
go install github.com/google/martian/cmd/proxy

Proxy starten

Angenommen, Sie haben Martian installiert, ist das Ausführen des Proxys so einfach wie:

$GOPATH/bin/proxy

Wenn Sie Systemlogs sehen möchten, während Martian läuft, übergeben Sie das Verbose-Flag:

$GOPATH/bin/proxy -v=2

Standardmäßig läuft Martian auf Port 8080 und die Martian-API auf Port 8181. Der Port kann über Flags angegeben werden:

$GOPATH/bin/proxy -addr=:9999 -api-addr=:9898

Protokollierung

Für die Protokollierung von Anfragen und Antworten steht ein Logging-Modifier zur Verfügung, oder HAR-Logs, wenn das Flag -har verwendet wird.

HAR-Protokollierung

Um HAR-Logs in Martian zu aktivieren, rufen Sie die Binärdatei mit dem Flag -har auf:

$GOPATH/bin/proxy -har

Wenn das Flag -har aktiviert wurde, stehen zwei HAR-bezogene Endpunkte zur Verfügung:

GET http://martian.proxy/logs

Ruft das HAR-Protokoll aller vom Proxy seit dem letzten Zurücksetzen gesehenen Anfragen und Antworten ab.

DELETE http://martian.proxy/logs/reset

Setzt das In-Memory-HAR-Protokoll zurück. Beachten Sie, dass das Protokoll unbegrenzt wächst, wenn es nicht regelmäßig zurückgesetzt wird.

Konfiguration

Sobald Martian läuft, müssen Sie sein Verhalten konfigurieren. Ohne Konfiguration tunnelt Martian nur, ohne Änderungen an Anfragen oder Antworten vorzunehmen. Wenn aktiviert, erfolgt die Protokollierung ohne zusätzliche Konfiguration.

Martian wird durch JSON-Nachrichten konfiguriert, die über HTTP gesendet werden und die allgemeine Form haben:

{
  "header.Modifier": {
    "scope": ["response"],
    "name": "Test-Header",
    "value": "true"
  }
}

Die obige Konfiguration weist Martian an, bei allen Antworten einen Header mit dem Namen "Test-Header" und dem Wert "true" einzufügen.

Lassen Sie uns die Teile dieser Nachricht aufschlüsseln.

  • [package.Type]: Der package.Type des Modifiers, den Sie verwenden möchten. In diesem Fall ist es "header.Modifier", der Name des Modifiers, der Header setzt (um mehr über den header.Modifier zu erfahren, lesen Sie bitte die Modifier-Referenz).

  • [package.Type].scope: Gibt an, ob der Modifier auf Anfragen, Antworten oder beide angewendet werden soll. Dies kann ein Array mit "request", "response" oder beiden sein.

  • [package.Type].[key]: Modifier-spezifische Daten. Im Fall des Header-Modifiers benötigen wir den name und value des Headers.

Dies ist eine einfache Konfiguration. Für komplexere Konfigurationen werden Modifier mit Gruppen und Filtern kombiniert, um das gewünschte Verhalten zusammenzustellen.

Um Martian zu konfigurieren, senden Sie die JSON per POST an http://martian.proxy/modifiers. Sie sollten den Mechanismus verwenden, den Ihre bevorzugte Sprache bietet, um HTTP-Anfragen zu stellen. Für Demonstrationszwecke funktioniert curl (vorausgesetzt, Ihre Konfiguration befindet sich in einer Datei namens modifier.json).

    curl -x localhost:8080 \
         -X POST \
         -H "Content-Type: application/json" \
         -d @modifier.json \
            "http://martian.proxy/configure"

Abfangen von HTTPS-Anfragen und -Antworten

Martian unterstützt die Änderung von HTTPS-Anfragen und -Antworten, wenn dies konfiguriert ist.

Damit Martian HTTPS-Verkehr abfangen kann, muss ein benutzerdefiniertes CA-Zertifikat im Browser installiert werden, damit keine Verbindungswarnungen angezeigt werden.

Der einfachste Weg, das CA-Zertifikat zu installieren, besteht darin, den Proxy mit den erforderlichen Flags zu starten, um ein benutzerdefiniertes CA-Zertifikat und einen privaten Schlüssel mit den Flags -cert und -key zu verwenden, oder den Proxy mit dem Flag -generate-ca-cert eines generieren zu lassen.

Nachdem der Proxy gestartet wurde, rufen Sie http://martian.proxy/authority.cer im Browser auf, der für die Verwendung des Proxys konfiguriert ist, und es wird eine Eingabeaufforderung zur Installation des Zertifikats angezeigt.

In examples/main.go stehen mehrere Flags zur Verfügung, um die MITM-Funktionalität zu konfigurieren:

-key=""
  PEM-codierte Datei des privaten Schlüssels des in -cert bereitgestellten CA-Zertifikats; wird verwendet, um Zertifikate zu signieren, die dynamisch generiert werden
-cert=""
  PEM-codierte CA-Zertifikatsdatei, die zum Generieren von Zertifikaten verwendet wird
-generate-ca-cert=false
  generiert ein CA-Zertifikat und einen privaten Schlüssel für Man-in-the-Middle; die meisten Benutzer, die diese Option wählen, besuchen sofort http://martian.proxy/authority.cer im Browser, dessen Verkehr abgefangen werden soll, um das neu generierte CA-Zertifikat zu installieren
-organization="Martian Proxy"
  Organisationsname, der bei den dynamisch generierten Zertifikaten während des Man-in-the-Middle gesetzt wird
-validity="1h"
  Zeitfenster um den Zeitpunkt der Anforderung herum, für das das dynamisch generierte Zertifikat gültig ist; die Dauer ist so festgelegt, dass der gesamte gültige Zeitraum das Doppelte des Gültigkeitswerts beträgt (1h vorher & 1h nachher)

Überprüfen von Verifiern

Nehmen wir an, Sie haben Martian so konfiguriert, dass das Vorhandensein eines bestimmten Headers in Antworten auf eine bestimmte URL überprüft wird.

Hier ist eine Konfiguration, die überprüft, dass alle Anfragen an example.com Antworten mit 200 OK zurückgeben.

      {
        "url.Filter": {
          "scope": ["request", "response"],
          "host" : "example.com",
          "modifier" : {
            "status.Verifier": {
              "scope" : ["response"],
              "statusCode": 200
            }
          }
        }
      }

Sobald Martian läuft, konfiguriert ist und die zu überprüfenden Anfragen und resultierenden Antworten stattgefunden haben, können Sie Ihre Erwartung überprüfen, dass Sie nur 200 OK-Antworten erhalten haben.

Um Überprüfungen durchzuführen, führen Sie

GET http://martian.proxy/verify

Fehlgeschlagene Erwartungen werden als Fehler erfasst, und die Liste der Fehler wird durch eine GET-Anfrage an host:port/martian/verify abgerufen, die eine Liste von Fehlern zurückgibt:

  {
      "errors" : [
          {
              "message": "response(http://example.com) status code verify failure: got 500, want 200"
          },
          {
              "message": "response(http://example.com/foo) status code verify failure: got 500, want 200"
          }
      ]
  }
Tool herunterladen