Skip to content
KitploitKITPLOIT
FerramentasExploitsBlog
Log in
Enviar
FerramentasExploitsBlog
Enviar

Ferramentas de Hacking, PenTest e Cibersegurança para o seu Arsenal de Segurança!

Kitploit é um diretório de ferramentas de hacking, cibersegurança e pentesting. Descubra as últimas atualizações de projetos para encontrar vulnerabilidades, analisar sistemas, automatizar testes e fortalecer sua segurança.

FeedsContatoPrivacidade© 2026 Kitploit

Diretório de Ferramentas

Categorias

Ver todas as categorias
Loading categories
Good-MITM — Mecanismo MITM baseado em regras. Reescreve, redireciona e rejeita requisições e respostas HTTP(S), com suporte a regras em JavaScript. | Kitploit
Ferramentas/GitHubGitHub/zu1k/good-mitm
Proxies Web e InterceptaçãoScripting e AutomaçãoSegurança WebSegurança de RedePrivacidadeUtilitários e Frameworks
GitHubzu1k/good-mitm

Good-MITM

Mecanismo MITM baseado em regras. Reescreve, redireciona e rejeita requisições e respostas HTTP(S), com suporte a regras em JavaScript.

Ver Repositório
85810910há 3 anosRevisado pelo Kitploit

Mais Populares

Ver todos →

Descubra as ferramentas mais usadas pela nossa comunidade.

Explore todas as ferramentas

Navegue pela nossa coleção de ferramentas

Ver todas as ferramentas →
Site
Compartilhar

Good Man in the Middle

GitHub stars GitHub forks Release GitHub issues Build GitHub license Docs

中文版

Mecanismo MITM baseado em regras. Reescreve, redireciona e rejeita requisições e respostas HTTP(S), com suporte a JavaScript.

Recursos

  • Assinatura de certificado automática com base na extensão SNI do TLS ClientHello
  • Suporte a MITM seletivo para domínios específicos
  • Linguagem de descrição de regras baseada no formato YAML: reescrever, rejeitar, redirecionar
    • Capacidades flexíveis de correspondência de regras
      • Correspondência de nome de domínio por prefixo/sufixo/exata
      • Correspondência por expressão regular
      • Múltiplas regras de filtro
    • Reescrita flexível de conteúdo de texto
      • Apagar/substituir
      • Substituição por expressão regular
    • Reescrita flexível de conteúdo baseada em dicionário
      • Reescrita de cabeçalhos HTTP
      • Reescrita de cookies
    • Suporte a múltiplas ações por regra
  • Suporte a regras de script JavaScript (intervenção programática)
  • Suporte a proxy transparente
  • Suporte a multiplexação de HTTPS e HTTP em uma única porta
  • Instalação do certificado CA na zona de confiança do sistema

Uso

Preparação do Certificado

Devido à exigência da técnica MITM, você precisa gerar e confiar em seu próprio certificado raiz.

Gerar Certificado Raiz

Por motivos de segurança, não confie cegamente em qualquer certificado raiz fornecido por estranhos. Você precisa gerar seu próprio certificado raiz e chave privada.

Usuários experientes podem usar o OpenSSL para realizar as operações necessárias. No entanto, para usuários sem experiência nessa área, você pode usar o seguinte comando para gerar o conteúdo necessário. O certificado e a chave privada gerados serão armazenados no diretório ca.

good-mitm.exe genca

Depois de usar o proxy fornecido pelo Good-MITM no seu navegador, você pode baixar o certificado diretamente acessando http://cert.mitm.plus. Isso é particularmente útil ao fornecer serviços para outros dispositivos.

Confiando no Certificado

Você pode adicionar o certificado raiz à zona de confiança do seu sistema operacional ou navegador, dependendo das suas necessidades.

Proxy

Inicie o Good-MITM e especifique o arquivo ou diretório de regras a ser usado.

good-mitm.exe run -r rules

Use o proxy HTTP fornecido pelo Good-MITM no seu navegador ou sistema operacional: http://127.0.0.1:34567.

Proxy Transparente

Consulte https://docs.mitmproxy.org/stable/howto-transparent/ para a documentação.

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 é usado para manipular o Good-MITM.

Uma regra válida deve incluir os seguintes componentes:

  • Name:Usado para diferenciar regras diferentes e facilitar a manutenção.
  • Filter:Usado para selecionar o conteúdo a ser processado a partir de um conjunto de requests e responses.
  • Action:Usado para executar as ações desejadas, incluindo redirect, reject, modification, etc.
  • Opcionalmente, especifique o nome de domínio que requer MITM.
- name: "Block YouTube tracking"
  mitm: "*.youtube.com"
  filter:
    url-regex: '^https?:\/\/(www|s)\.youtube\.com\/(pagead|ptracking)'
  action: reject

Além disso, uma regra válida deve atender aos seguintes requisitos:

  • Foco: Cada regra deve ser projetada para executar uma única tarefa.
  • Simplicidade: Use métodos diretos de processamento para garantir fácil manutenção.
  • Eficiência: Use métodos eficientes sempre que possível, como usar sufixos e prefixos de domínio em vez de expressões regulares complexas para correspondência de domínio.

Filter

Filter é usado para selecionar as requisições e respostas que precisam ser processadas.

Opções Disponíveis

Atualmente, Filter inclui os seguintes tipos:

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

Nota
Na versão atual, os tipos relacionados a domain correspondem ao campo host, o que geralmente não afeta os resultados. Se um site estiver usando uma porta não padrão, a regra precisa especificar a porta. Esse comportamento será otimizado em versões futuras.

All

Ao especificar o filtro como all, ele corresponderá a todas as requisições e respostas. Isso normalmente é usado para executar ações de registro (logging).

- name: "log"
  filter: all
  action:
    - log-req
    - log-res
Domínio

domain realiza uma correspondência completa com o nome de domínio.

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

domain-keyword realiza uma correspondência de palavra-chave contra o nome de domínio.

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

domain-prefix realiza uma correspondência de prefixo com o nome de domínio.

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

domain-suffix realiza uma correspondência de sufixo com o nome de domínio.

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

url-regex realiza uma correspondência de expressão regular contra a URL completa.

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

Múltiplos Filtros

O campo filters suporta tanto filtros únicos quanto múltiplos filtros, sendo a relação entre múltiplos filtros 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

Múltiplas regras com a mesma ação podem ser agregadas em uma única regra para facilitar a manutenção.

Action

Action é usado para realizar operações em requisições ou respostas.

Opções Disponíveis

Atualmente, Action inclui as seguintes opções:

Baixar ferramenta