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
Good-MITM — Moteur MITM basé sur des règles. Réécriture, redirection et rejet des requêtes et réponses HTTP(S), prend en charge les règles JavaScript. | Kitploit
Outils/GitHubGitHub/zu1k/good-mitm
Proxies Web et InterceptionScripting et AutomatisationSécurité WebSécurité RéseauProtection de la Vie PrivéeUtilitaires et Frameworks
GitHubzu1k/good-mitm

Good-MITM

Moteur MITM basé sur des règles. Réécriture, redirection et rejet des requêtes et réponses HTTP(S), prend en charge les règles JavaScript.

Voir le dépôt
85810910il y a 3 ansVé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 →
Site web
Partager

Good Man in the Middle

GitHub stars GitHub forks Release GitHub issues Build GitHub license Docs

中文版

Moteur MITM basé sur des règles. Réécriture, redirection et rejet des requêtes et réponses HTTP(S), prise en charge de JavaScript.

Fonctionnalités

  • Signature automatique du certificat basée sur l'extension SNI du ClientHello TLS
  • Prise en charge du MITM sélectif pour des domaines spécifiques
  • Langage de description de règles basé sur le format YAML : réécriture, rejet, redirection
    • Capacités flexibles de correspondance de règles
      • Correspondance par préfixe/suffixe/exactitude du nom de domaine
      • Correspondance par expression régulière
      • Règles de filtrage multiples
    • Réécriture flexible du contenu textuel
      • Effacement/remplacement
      • Substitution par expression régulière
    • Réécriture flexible du contenu basée sur un dictionnaire
      • Réécriture des en-têtes HTTP
      • Réécriture des cookies
    • Prise en charge de plusieurs actions par règle
  • Prise en charge des règles de script JavaScript (intervention programmatique)
  • Prise en charge du proxy transparent
  • Prise en charge du multiplexage HTTPS et HTTP sur un seul port
  • Installation du certificat CA dans la zone de confiance du système

Utilisation

Préparation du certificat

En raison de l'exigence de la technique MITM, vous devez générer et faire confiance à votre propre certificat racine.

Générer le certificat racine

Pour des raisons de sécurité, veuillez ne pas faire aveuglément confiance à tout certificat racine fourni par des inconnus. Vous devez générer votre propre certificat racine et votre propre clé privée.

Les utilisateurs expérimentés peuvent utiliser OpenSSL pour effectuer les opérations nécessaires. Cependant, pour les utilisateurs sans expérience dans ce domaine, vous pouvez utiliser la commande suivante pour générer le contenu requis. Le certificat et la clé privée générés seront stockés dans le répertoire ca.

good-mitm.exe genca

Après avoir utilisé le proxy fourni par Good-MITM dans votre navigateur, vous pouvez télécharger directement le certificat en visitant http://cert.mitm.plus. Cela est particulièrement utile lorsque vous fournissez des services à d'autres appareils.

Approuver le certificat

Vous pouvez ajouter le certificat racine à la zone de confiance de votre système d'exploitation ou de votre navigateur, selon vos besoins.

Proxy

Démarrez Good-MITM et spécifiez le fichier de règles ou le répertoire à utiliser.

good-mitm.exe run -r rules

Utilisez le proxy HTTP fourni par Good-MITM dans votre navigateur ou votre système d'exploitation : http://127.0.0.1:34567.

Proxy transparent

Consultez https://docs.mitmproxy.org/stable/howto-transparent/ pour la documentation.

sudo sysctl -w net.ipv4.ip_forward=1
sudo sysctl -w net.ipv6.conf.all.forwarding=1
sudo sysctl -w net.ipv4.conf.all.send_redirects=0

sudo useradd --create-home mitm
sudo -u mitm -H bash -c 'good-mitm run -r rules/log.yaml -b 0.0.0.0:34567'

sudo iptables -t nat -A OUTPUT -p tcp -m owner ! --uid-owner mitm --dport 80 -j REDIRECT --to-port 34567
sudo iptables -t nat -A OUTPUT -p tcp -m owner ! --uid-owner mitm --dport 443 -j REDIRECT --to-port 34567
sudo ip6tables -t nat -A OUTPUT -p tcp -m owner ! --uid-owner mitm --dport 80 -j REDIRECT --to-port 34567
sudo ip6tables -t nat -A OUTPUT -p tcp -m owner ! --uid-owner mitm --dport 443 -j REDIRECT --to-port 34567

Rule

Rule est utilisé pour manipuler Good-MITM.

Une règle valide doit inclure les composants suivants :

  • Name : utilisé pour différencier les différentes règles afin de faciliter la maintenance.
  • Filter : utilisé pour sélectionner le contenu à traiter parmi un ensemble de requests et responses.
  • Action : utilisé pour effectuer les actions souhaitées, notamment redirect, reject, modification, etc.
  • Facultativement, spécifier le nom de domaine nécessitant MITM.
- name: "Block YouTube tracking"
  mitm: "*.youtube.com"
  filter:
    url-regex: '^https?:\/\/(www|s)\.youtube\.com\/(pagead|ptracking)'
  action: reject

De plus, une règle valide doit répondre aux exigences suivantes :

  • Focus : chaque règle doit être conçue pour accomplir une seule tâche.
  • Simplicité : utilisez des méthodes simples pour le traitement afin de garantir une maintenance facile.
  • Efficacité : utilisez des méthodes efficaces dans la mesure du possible, par exemple en utilisant des suffixes et préfixes de domaine plutôt que des expressions régulières complexes pour la correspondance de domaines.

Filter

Filter est utilisé pour sélectionner les requêtes et réponses qui doivent être traitées.

Options disponibles

Actuellement, Filter inclut les types suivants :

  • All
  • Domain(String)
  • DomainKeyword(String)
  • DomainPrefix(String)
  • DomainSuffix(String)
  • UrlRegex(fancy_regex::Regex)

Remarque
Dans la version actuelle, les types liés à domain correspondent au champ host, ce qui n'affecte généralement pas les résultats. Si un site web utilise un port non standard, la règle doit spécifier le port. Ce comportement sera optimisé dans les versions futures.

All

Lorsque le filtre est spécifié comme all, il correspondra à toutes les requêtes et réponses. Ceci est généralement utilisé pour effectuer des actions de journalisation.

- name: "log"
  filter: all
  action:
    - log-req
    - log-res
Domaine

domain effectue une correspondance complète avec le nom de domaine.

- name: "redirect"
  filter:
    domain: 'none.zu1k.com'
  action:
    redirect: "https://zu1k.com/"
DomainKeyword

domain-keyword effectue une correspondance de mots-clés sur le nom de domaine.

- name: "reject CSDN"
  filter:
    domain-keyword: 'csdn'
  action: reject
DomainPrefix

domain-prefix effectue une correspondance de préfixe sur le nom de domaine.

- name: "ad prefix"
  filter:
    domain-prefix: 'ads' // example: "ads.xxxxx.com"
  action: reject
DomainSuffix

domain-suffix effectue une correspondance de suffixe sur le nom de domaine.

- name: "redirect"
  filter:
    domain-suffix: 'google.com.cn'
  action:
    redirect: "https://google.com"
UrlRegex Url

url-regex effectue une correspondance par expression régulière sur l'URL entière.

- name: "youtube tracking"
  mitm: "*.youtube.com"
  filter:
    url-regex: '^https?:\/\/(www|s)\.youtube\.com\/(pagead|ptracking)'
  action: reject

Filtres multiples

Le champ filters prend en charge les filtres uniques et les filtres multiples, la relation entre plusieurs filtres étant OR.

Télécharger l’outil