Skip to content
KitploitKITPLOIT
HerramientasExploitsBlog
Log in
Enviar
HerramientasExploitsBlog
Enviar

¡Herramientas de Hacking, PenTest y Ciberseguridad para tu Arsenal de Seguridad!

Kitploit es un directorio de herramientas de hacking, ciberseguridad y pentesting. Descubre las últimas actualizaciones de proyectos para encontrar vulnerabilidades, analizar sistemas, automatizar pruebas y fortalecer tu seguridad.

FeedsContactoPrivacidad© 2026 Kitploit

Directorio de Herramientas

Categorías

Ver todas las categorías
Loading categories
Good-MITM — Motor MITM basado en reglas. Reescribe, redirige y rechaza solicitudes y respuestas HTTP(S), admite reglas en JavaScript. | Kitploit
Herramientas/GitHubGitHub/zu1k/good-mitm
Proxies Web e InterceptaciónScripting y AutomatizaciónSeguridad WebSeguridad de RedesPrivacidadUtilidades y Frameworks
GitHubzu1k/good-mitm

Good-MITM

Motor MITM basado en reglas. Reescribe, redirige y rechaza solicitudes y respuestas HTTP(S), admite reglas en JavaScript.

Ver Repositorio
85810910hace 3 añosRevisado por Kitploit

Más Populares

Ver todos →

Descubre las herramientas más usadas por nuestra comunidad.

Explora todas las herramientas

Explora nuestra colección de herramientas

Ver todas las herramientas →
Sitio web
Compartir

Good Man in the Middle

GitHub stars GitHub forks Release GitHub issues Build GitHub license Docs

中文版

Motor MITM basado en reglas. Reescribe, redirige y rechaza solicitudes y respuestas HTTP(S), con soporte para JavaScript.

Características

  • Firma de certificados automáticamente basándose en la extensión SNI del ClientHello de TLS
  • Soporte de MITM selectivo para dominios específicos
  • Lenguaje de descripción de reglas basado en formato YAML: reescribir, rechazar, redirigir
    • Capacidades flexibles de coincidencia de reglas
      • Coincidencia de nombre de dominio por prefijo/sufijo/exacta
      • Coincidencia mediante expresiones regulares
      • Múltiples reglas de filtrado
    • Reescritura flexible de contenido de texto
      • Borrar/reemplazar
      • Sustitución mediante expresiones regulares
    • Reescritura flexible de contenido basada en diccionarios
      • Reescritura de cabeceras HTTP
      • Reescritura de cookies
    • Soporte de múltiples acciones por regla
  • Soporte de reglas de scripts JavaScript (intervención programática)
  • Soporte de proxy transparente
  • Soporte de multiplexación de HTTPS y HTTP en un único puerto
  • Instalación del certificado CA en la zona de confianza del sistema

Uso

Preparación del certificado

Debido al requisito de la técnica MITM, es necesario generar y confiar en su propio certificado raíz.

Generar el certificado raíz

Por razones de seguridad, no confíe a ciegas en ningún certificado raíz proporcionado por desconocidos. Debe generar su propio certificado raíz y su clave privada.

Los usuarios con experiencia pueden usar OpenSSL para realizar las operaciones necesarias. Sin embargo, para los usuarios sin experiencia en esta área, pueden usar el siguiente comando para generar el contenido requerido. El certificado y la clave privada generados se almacenarán en el directorio ca.

good-mitm.exe genca

Después de usar el proxy proporcionado por Good-MITM en tu navegador, puedes descargar directamente el certificado visitando http://cert.mitm.plus. Esto es especialmente útil cuando se proporcionan servicios a otros dispositivos.

Confiar en el certificado

Puedes añadir el certificado raíz a la zona de confianza de tu sistema operativo o navegador, según tus necesidades.

Proxy

Inicia Good-MITM y especifica el archivo o directorio de reglas que se va a utilizar.

good-mitm.exe run -r rules

Usa el proxy HTTP proporcionado por Good-MITM en tu navegador o sistema operativo: http://127.0.0.1:34567.

Proxy transparente

Consulta https://docs.mitmproxy.org/stable/howto-transparent/ para la documentación.

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

Regla

Rule se utiliza para manipular Good-MITM.

Una regla válida debe incluir los siguientes componentes:

  • Name: Se utiliza para diferenciar distintas reglas y facilitar su mantenimiento.
  • Filter: Se utiliza para seleccionar el contenido a procesar de un conjunto de requests y responses.
  • Action: Se utiliza para realizar las acciones deseadas, incluyendo redirect, reject, modification, etc.
  • Opcionalmente, especificar el nombre de dominio que requiere MITM.
- name: "Block YouTube tracking"
  mitm: "*.youtube.com"
  filter:
    url-regex: '^https?:\/\/(www|s)\.youtube\.com\/(pagead|ptracking)'
  action: reject

Además, una regla válida debe cumplir los siguientes requisitos:

  • Enfoque: Cada regla debe estar diseñada para realizar una única tarea.
  • Simplicidad: Utilice métodos directos para el procesamiento para garantizar un mantenimiento sencillo.
  • Eficiencia: Utilice métodos eficientes siempre que sea posible, como el uso de sufijos y prefijos de dominio en lugar de expresiones regulares complejas para la coincidencia de dominios.

Filter

Filter se utiliza para seleccionar las solicitudes y respuestas que deben procesarse.

Opciones disponibles

Actualmente, Filter incluye los siguientes tipos:

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

Nota
En la versión actual, los tipos relacionados con domain coinciden con el campo host, lo que normalmente no afecta a los resultados. Si un sitio web utiliza un puerto no estándar, la regla debe especificar el puerto. Este comportamiento se optimizará en futuras versiones.

All

Cuando se especifica el filtro como all, coincidirá con todas las solicitudes y respuestas. Esto se utiliza normalmente para realizar acciones de registro.

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

domain realiza una coincidencia completa contra el nombre de dominio.

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

domain-keyword realiza una coincidencia de palabras clave contra el nombre de dominio.

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

domain-prefix realiza una coincidencia de prefijo contra el nombre de dominio.

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

domain-suffix realiza una coincidencia de sufijo contra el nombre de dominio.

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

url-regex realiza una coincidencia de expresión regular contra la URL completa.

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

Filtro múltiple

El campo filters admite tanto filtros únicos como múltiples, siendo la relación entre múltiples 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

Se pueden agregar varias reglas con la misma acción en una sola regla para facilitar el mantenimiento.

Acción

Descargar herramienta