
Regelbasierte MITM-Engine. Umschreiben, Umleiten und Ablehnen von HTTP(S)-Anfragen und -Antworten, unterstützt JavaScript-Regeln.
Regelbasierte MITM-Engine. Umschreiben, Umleiten und Ablehnen von HTTP(S)-Anfragen und -Antworten, unterstützt JavaScript.
Aufgrund der Anforderungen der MITM-Technik müssen Sie ein eigenes Root-Zertifikat generieren und ihm vertrauen.
Aus Sicherheitsgründen sollten Sie nicht blindlings einem Root-Zertifikat vertrauen, das Ihnen von Fremden bereitgestellt wird. Sie müssen Ihr eigenes Root-Zertifikat und Ihren eigenen privaten Schlüssel generieren.
Erfahrene Benutzer können OpenSSL verwenden, um die erforderlichen Vorgänge durchzuführen. Für Benutzer ohne Erfahrung in diesem Bereich können Sie jedoch den folgenden Befehl verwenden, um den erforderlichen Inhalt zu generieren. Das generierte Zertifikat und der private Schlüssel werden im Verzeichnis ca gespeichert.
good-mitm.exe genca
Nachdem Sie den von Good-MITM bereitgestellten Proxy in Ihrem Browser verwendet haben, können Sie das Zertifikat direkt herunterladen, indem Sie http://cert.mitm.plus aufrufen. Dies ist besonders nützlich, wenn Sie Dienste für andere Geräte bereitstellen.
Sie können das Root-Zertifikat je nach Bedarf zur Vertrauenszone Ihres Betriebssystems oder Browsers hinzufügen.
Starten Sie Good-MITM und geben Sie die zu verwendende Regeldatei oder das Verzeichnis an.
good-mitm.exe run -r rules
Verwenden Sie den von Good-MITM bereitgestellten HTTP-Proxy in Ihrem Browser oder Betriebssystem: http://127.0.0.1:34567.
Siehe https://docs.mitmproxy.org/stable/howto-transparent/ für die Dokumentation.
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 wird verwendet, um Good-MITM zu steuern.
Eine gültige Rule sollte die folgenden Komponenten enthalten:
Name: Wird verwendet, um verschiedene Rules zu unterscheiden und die Wartung zu erleichtern.Filter: Wird verwendet, um aus einer Menge von requests und responses den zu verarbeitenden Inhalt auszuwählen.Action: Wird verwendet, um die gewünschten Aktionen auszuführen, einschließlich redirect, reject, modification usw.- name: "Block YouTube tracking"
mitm: "*.youtube.com"
filter:
url-regex: '^https?:\/\/(www|s)\.youtube\.com\/(pagead|ptracking)'
action: reject
Darüber hinaus sollte eine gültige Regel die folgenden Anforderungen erfüllen:
Filter wird verwendet, um die Anfragen und Antworten auszuwählen, die verarbeitet werden müssen.
Derzeit umfasst Filter die folgenden Typen:
Hinweis
In der aktuellen Version stimmen diedomain-bezogenen Typen mit dem Feldhostüberein, was normalerweise die Ergebnisse nicht beeinflusst. Wenn eine Website einen nicht standardmäßigen Port verwendet, muss die Regel den Port angeben. Dieses Verhalten wird in zukünftigen Versionen optimiert.
Wenn der Filter als all angegeben wird, stimmt er mit allen Anfragen und Antworten überein. Dies wird typischerweise für die Durchführung von Protokollierungsaktionen verwendet.
- name: "log"
filter: all
action:
- log-req
- log-res
domain führt einen vollständigen Abgleich gegen den Domainnamen durch.
- name: "redirect"
filter:
domain: 'none.zu1k.com'
action:
redirect: "https://zu1k.com/"
domain-keyword führt einen Keyword-Abgleich gegen den Domainnamen durch.
- name: "reject CSDN"
filter:
domain-keyword: 'csdn'
action: reject
domain-prefix führt einen Präfixabgleich gegen den Domainnamen durch.
- name: "ad prefix"
filter:
domain-prefix: 'ads' // example: "ads.xxxxx.com"
action: reject
domain-suffix führt einen Suffix-Abgleich gegen den Domainnamen durch.
- name: "redirect"
filter:
domain-suffix: 'google.com.cn'
action:
redirect: "https://google.com"
url-regex führt einen regulären Ausdruck gegen die gesamte URL aus.
- name: "youtube tracking"
mitm: "*.youtube.com"
filter:
url-regex: '^https?:\/\/(www|s)\.youtube\.com\/(pagead|ptracking)'
action: reject
Das Feld filters unterstützt sowohl einzelne Filter als auch mehrere Filter, wobei die Beziehung zwischen mehreren Filtern OR ist.