Skip to content
KitploitKITPLOIT
OutilsExploitsBlog
Log in
Soumettre
OutilsExploitsBlog
Soumettre

Outils de Hacking, PenTest et Cybersécurité pour votre Arsenal de Sécurité !

Kitploit est un répertoire d'outils de hacking, de cybersécurité et de pentesting. Découvrez les dernières mises à jour des projets pour trouver des vulnérabilités, analyser des systèmes, automatiser les tests et renforcer votre sécurité.

FluxContactConfidentialité© 2026 Kitploit

Répertoire d'outils

Catégories

Voir toutes les catégories
Loading categories
martian — Martian est une bibliothèque pour construire des proxys HTTP/S personnalisés. | Kitploit
Outils/GitHubGitHub/google/martian
Analyse Dynamique (Sandboxing)Proxies Web et InterceptionTests de Sécurité des APISécurité WebTests d'IntrusionUtilitaires et FrameworksArchived
GitHubgoogle/martian

martian

Martian est une bibliothèque pour construire des proxys HTTP/S personnalisés.

Voir le dépôt
2.0k25325il y a 1 anVérifié par Kitploit

Populaires

Voir tout →

Découvrez les outils les plus utilisés par notre communauté.

Explorer tous les outils

Parcourez notre collection d'outils

Voir tous les outils →
Partager

Martian Proxy Build Status

Martian Proxy est un proxy HTTP programmable conçu pour être utilisé lors de tests.

Martian est un excellent outil à utiliser si vous souhaitez :

  • Vérifier que toutes (ou une partie) des requêtes sont sécurisées
  • Simuler des services externes au niveau de la couche réseau
  • Injecter des en-têtes, modifier des cookies ou effectuer d'autres mutations des requêtes et réponses
  • Vérifier que les pingbacks se produisent quand vous pensez qu'ils devraient
  • Déchiffrer le trafic chiffré (nécessite l'installation d'un certificat CA dans le navigateur)

En tirant parti de la compilation croisée de Go, Martian peut être déployé partout où Go peut cibler.

Dernière version

v3.0.0

Prérequis

Go 1.11

Prise en charge des modules Go

Martian Proxy a ajouté la prise en charge des modules Go depuis la v3.0.0. Si vous utilisez une version de Go qui ne prend pas en charge les modules, cela ne fonctionnera plus. La dernière version sans prise en charge des modules Go est la v2.1.0.

Pour commencer

Installation

Martian Proxy peut être installé à l'aide de go install

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

Démarrer le proxy

En supposant que vous ayez installé Martian, exécuter le proxy est aussi simple que

$GOPATH/bin/proxy

Si vous souhaitez voir les journaux système pendant que Martian s'exécute, ajoutez le drapeau de verbosité :

$GOPATH/bin/proxy -v=2

Par défaut, Martian s'exécutera sur le port 8080 et l'API Martian s'exécutera sur le port 8181 . Le port peut être spécifié via des drapeaux :

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

Journalisation

Pour la journalisation des requêtes et réponses, un modificateur de journalisation est disponible ou des journaux HAR sont disponibles si le drapeau -har est utilisé.

Journalisation HAR

Pour activer la journalisation HAR dans Martian, appelez le binaire avec le drapeau -har :

$GOPATH/bin/proxy -har

Si le drapeau -har a été activé, deux points de terminaison liés à HAR seront disponibles :

GET http://martian.proxy/logs

Récupère le journal HAR de toutes les requêtes et réponses vues par le proxy depuis la dernière réinitialisation.

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

Réinitialise le journal HAR en mémoire. Notez que le journal grandira sans limite sauf s'il est périodiquement réinitialisé.

Configuration

Une fois Martian en cours d'exécution, vous devez configurer son comportement. Sans configuration, Martian se contente de faire office de proxy sans modifier les requêtes ou les réponses. Si elle est activée, la journalisation aura lieu sans configuration supplémentaire.

Martian est configuré par des messages JSON envoyés via HTTP qui prennent la forme générale de :

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

La configuration ci-dessus indique à Martian d'injecter un en-tête nommé "Test-Header" avec la valeur "true" sur toutes les réponses.

Décomposons les parties de ce message.

  • [package.Type]: Le package.Type du modificateur que vous souhaitez utiliser. Dans ce cas, c'est "header.Modifier", qui est le nom du modificateur qui définit les en-têtes (pour en savoir plus sur le header.Modifier, veuillez vous référer à la référence des modificateurs).

  • [package.Type].scope: Indique si le modificateur doit être appliqué aux requêtes, aux réponses ou aux deux. Cela peut être un tableau contenant "request", "response" ou les deux.

  • [package.Type].[key]: Données spécifiques au modificateur. Dans le cas du modificateur d'en-tête, nous avons besoin du name et du value de l'en-tête.

Ceci est une configuration simple ; pour des configurations plus complexes, les modificateurs sont combinés avec des groupes et des filtres pour composer le comportement souhaité.

Pour configurer Martian, faites un POST du JSON vers http://martian.proxy/modifiers. Vous souhaiterez utiliser le mécanisme que votre langage de prédilection vous offre pour effectuer des requêtes HTTP, mais à des fins de démonstration, curl fonctionne (en supposant que votre configuration se trouve dans un fichier nommé modifier.json).

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

Intercepter les requêtes et réponses HTTPS

Martian prend en charge la modification des requêtes et réponses HTTPS s'il est configuré pour cela.

Pour que Martian puisse intercepter le trafic HTTPS, un certificat CA personnalisé doit être installé dans le navigateur afin que les avertissements de connexion ne soient pas affichés.

Le moyen le plus simple d'installer le certificat CA est de démarrer le proxy avec les drapeaux nécessaires pour utiliser un certificat CA et une clé privée personnalisés via les drapeaux -cert et -key, ou de demander au proxy d'en générer un à l'aide du drapeau -generate-ca-cert.

Une fois le proxy démarré, visitez http://martian.proxy/authority.cer dans le navigateur configuré pour utiliser le proxy et une invite s'affichera pour installer le certificat.

Plusieurs drapeaux sont disponibles dans examples/main.go pour aider à configurer la fonctionnalité MITM :

-key=""
  PEM encoded private key file of the CA certificate provided in -cert; used
  to sign certificates that are generated on-the-fly
-cert=""
  PEM encoded CA certificate file used to generate certificates
-generate-ca-cert=false
  generates a CA certificate and private key to use for man-in-the-middle;
  most users choosing this option will immediately visit
  http://martian.proxy/authority.cer in the browser whose traffic is to be
  intercepted to install the newly generated CA certificate
-organization="Martian Proxy"
  organization name set on the dynamically-generated certificates during
  man-in-the-middle
-validity="1h"
  window of time around the time of request that the dynamically-generated
  certificate is valid for; the duration is set such that the total valid
  timeframe is double the value of validity (1h before & 1h after)

Contrôler les vérificateurs

Supposons que vous avez configuré Martian pour vérifier la présence d'un en-tête spécifique dans les réponses à une URL spécifique.

Voici une configuration pour vérifier que toutes les requêtes vers example.com renvoient des réponses avec un 200 OK.

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

Une fois Martian en cours d'exécution, configuré, et une fois que les requêtes et les réponses résultantes que vous souhaitez vérifier ont eu lieu, vous pouvez vérifier votre attente de n'avoir reçu que des réponses 200 OK.

Pour contrôler les vérifications, effectuez

GET http://martian.proxy/verify

Les attentes non satisfaites sont enregistrées comme erreurs, et la liste des erreurs est récupérée en effectuant une requête GET vers host:port/martian/verify, qui renverra une liste d'erreurs :

Télécharger l’outil