Skip to content
KitploitKITPLOIT
StrumentiExploitsBlog
Log in
Invia
StrumentiExploitsBlog
Invia

Strumenti di Hacking, PenTest e Cybersecurity per il tuo Arsenale di Sicurezza!

Kitploit è una directory di strumenti di hacking, cybersecurity e pentesting. Scopri gli ultimi aggiornamenti dei progetti per trovare vulnerabilità, analizzare sistemi, automatizzare i test e rafforzare la tua sicurezza.

FeedContattoPrivacy© 2026 Kitploit

Directory degli strumenti

Categorie

Vedi tutte le categorie
Loading categories
Good-MITM — Motore MITM basato su regole. Riscrittura, reindirizzamento e rifiuto di richieste e risposte HTTP(S), supporta regole JavaScript. | Kitploit
Strumenti/GitHubGitHub/zu1k/good-mitm
Proxy Web e IntercettazioneScripting e AutomazioneSicurezza WebSicurezza di RetePrivacyUtilità e Framework
GitHubzu1k/good-mitm

Good-MITM

Motore MITM basato su regole. Riscrittura, reindirizzamento e rifiuto di richieste e risposte HTTP(S), supporta regole JavaScript.

Vedi Repository
858109103 anni faRevisionato da Kitploit

Più Popolari

Vedi tutti →

Scopri gli strumenti più utilizzati dalla nostra community.

Esplora tutti gli strumenti

Sfoglia la nostra collezione di strumenti

Vedi tutti gli strumenti →
Sito web
Condividi

Good Man in the Middle

GitHub stars GitHub forks Release GitHub issues Build GitHub license Docs

中文版

Motore MITM basato su regole. Riscrittura, reindirizzamento e rifiuto di richieste e risposte HTTP(S), con supporto JavaScript.

Funzionalità

  • Firma del certificato automatica basata sull'estensione SNI del TLS ClientHello
  • Supporto al MITM selettivo per domini specifici
  • Linguaggio di descrizione delle regole basato sul formato YAML: riscrittura, rifiuto, reindirizzamento
    • Capacità flessibili di corrispondenza delle regole
      • Corrispondenza per prefisso/suffisso/esatta del nome di dominio
      • Corrispondenza tramite espressioni regolari
      • Regole di filtro multiple
    • Riscrittura flessibile del contenuto testuale
      • Cancellazione/sostituzione
      • Sostituzione tramite espressioni regolari
    • Riscrittura flessibile del contenuto basata su dizionari
      • Riscrittura degli header HTTP
      • Riscrittura dei cookie
    • Supporto a più azioni per regola
  • Supporto alle regole di script JavaScript (intervento programmatico)
  • Supporto al proxy trasparente
  • Supporto al multiplexing HTTPS e HTTP su una singola porta
  • Installazione del certificato CA nell'area di fiducia del sistema

Utilizzo

Preparazione del certificato

A causa della necessità della tecnica MITM, è necessario generare e considerare attendibile un proprio certificato root.

Generazione del certificato root

Per motivi di sicurezza, non fidarti ciecamente di alcun certificato root fornito da estranei. Devi generare il tuo certificato root e la tua chiave privata.

Gli utenti esperti possono utilizzare OpenSSL per eseguire le operazioni necessarie. Tuttavia, per gli utenti senza esperienza in questo ambito, è possibile utilizzare il seguente comando per generare il contenuto richiesto. Il certificato e la chiave privata generati verranno salvati nella directory ca.

good-mitm.exe genca

Dopo aver utilizzato il proxy fornito da Good-MITM nel tuo browser, puoi scaricare direttamente il certificato visitando http://cert.mitm.plus. Questo è particolarmente utile quando si forniscono servizi ad altri dispositivi.

Considerare attendibile il certificato

Puoi aggiungere il certificato radice alla zona attendibile del tuo sistema operativo o browser, a seconda delle tue esigenze.

Proxy

Avvia Good-MITM e specifica il file di regole o la directory da utilizzare.

good-mitm.exe run -r rules

Usa il proxy HTTP fornito da Good-MITM nel tuo browser o sistema operativo: http://127.0.0.1:34567.

Proxy trasparente

Consulta https://docs.mitmproxy.org/stable/howto-transparent/ per la documentazione.

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 viene utilizzato per manipolare Good-MITM.

Una regola valida dovrebbe includere i seguenti componenti:

  • Name:Utilizzato per differenziare le diverse regole per una più facile manutenzione.
  • Filter:Utilizzato per selezionare il contenuto da elaborare da un insieme di requests e responses.
  • Action:Utilizzato per eseguire le azioni desiderate, tra cui redirect, reject, modification, ecc.
  • Facoltativamente, specificare il nome di dominio che richiede MITM.
- name: "Block YouTube tracking"
  mitm: "*.youtube.com"
  filter:
    url-regex: '^https?:\/\/(www|s)\.youtube\.com\/(pagead|ptracking)'
  action: reject

Inoltre, una regola valida dovrebbe soddisfare i seguenti requisiti:

  • Focus: ogni regola dovrebbe essere progettata per eseguire un singolo compito.
  • Semplicità: utilizzare metodi semplici per l'elaborazione per garantire una facile manutenzione.
  • Efficienza: utilizzare metodi efficienti ove possibile, come l'uso di suffissi e prefissi di dominio invece di espressioni regolari complesse per la corrispondenza dei domini.

Filter

Filter viene utilizzato per selezionare le richieste e le risposte che devono essere elaborate.

Opzioni disponibili

Attualmente, Filter include i seguenti tipi:

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

Nota
Nella versione attuale, i tipi relativi a domain corrispondono al campo host, il che di solito non influisce sui risultati. Se un sito web utilizza una porta non standard, la regola deve specificare la porta. Questo comportamento sarà ottimizzato nelle versioni future.

All

Quando si specifica il filtro come all, corrisponderà a tutte le richieste e risposte. Questo viene tipicamente utilizzato per eseguire azioni di logging.

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

domain esegue una corrispondenza completa sul nome di dominio.

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

domain-keyword esegue una corrispondenza di parole chiave sul nome di dominio.

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

domain-prefix esegue una corrispondenza di prefisso sul nome di dominio.

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

domain-suffix esegue una corrispondenza di suffisso sul nome di dominio.

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

url-regex esegue una corrispondenza con espressione regolare sull'intero URL.

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

Filtro multiplo

Il campo filters supporta sia filtri singoli che filtri multipli, con la relazione tra più filtri che è OR.

- name: "youtube-2"
  mitm:
    - "*.youtube.com"
    - "*.googlevideo.com"
  filters:
    - url-regex: '^https?:\/\/[\w-]+\.googlevideo\.com\/(?!(dclk_video_ads|videoplayback\?)).+(&oad|ctier)'
    - url-regex: '^https?:\/\/(www|s)\.youtube\.com\/api\/stats\/ads'
    - url-regex: '^https?:\/\/(www|s)\.youtube\.com\/(pagead|ptracking)'
    - url-regex: '^https?:\/\/\s.youtube.com/api/stats/qoe?.*adformat='
  action: reject

Più regole con la stessa azione possono essere aggregate in un'unica regola per una più facile manutenzione.

Scarica lo strumento