Skip to content
KitploitKITPLOIT
ИнструментыЭксплойтыБлог
Log in
Отправить
ИнструментыЭксплойтыБлог
Отправить

Инструменты для хакинга, пентеста и кибербезопасности — ваш арсенал защиты!

Kitploit — это каталог инструментов для хакинга, кибербезопасности и пентестинга. Находите последние обновления проектов для поиска уязвимостей, анализа систем, автоматизации тестирования и усиления вашей безопасности.

ЛентыКонтактыКонфиденциальность© 2026 Kitploit

Каталог инструментов

Категории

Все категории
Loading categories
Good-MITM — Основанный на правилах движок MITM. Перезапись, перенаправление и отклонение HTTP(S)-запросов и ответов, поддержка правил JavaScript. | Kitploit
Инструменты/GitHubGitHub/zu1k/good-mitm
Веб-прокси и перехватСкриптинг и автоматизацияВеб-безопасностьСетевая безопасностьКонфиденциальностьУтилиты и фреймворки
GitHubzu1k/good-mitm

Good-MITM

Основанный на правилах движок MITM. Перезапись, перенаправление и отклонение HTTP(S)-запросов и ответов, поддержка правил JavaScript.

Репозиторий
858109103 лет назадПроверено Kitploit

Популярное

Смотреть все →

Откройте для себя самые используемые инструменты нашего сообщества.

Изучить все инструменты

Просмотрите нашу коллекцию инструментов

Смотреть все инструменты →
Сайт
Поделиться

Good Man in the Middle

GitHub stars GitHub forks Release GitHub issues Build GitHub license Docs

中文版

MITM-движок на основе правил. Перезапись, перенаправление и отклонение HTTP(S)-запросов и ответов, поддержка JavaScript.

Возможности

  • Автоматическое подписание сертификата на основе расширения SNI в TLS ClientHello
  • Поддержка выборочного MITM для конкретных доменов
  • Язык описания правил на основе формата YAML: перезапись, отклонение, перенаправление
    • Гибкие возможности сопоставления правил
      • Совпадение по префиксу/суффиксу/точному имени домена
      • Сопоставление по регулярным выражениям
      • Несколько правил фильтрации
    • Гибкая перезапись текстового содержимого
      • Удаление/замена
      • Замена по регулярным выражениям
    • Гибкая перезапись содержимого на основе словарей
      • Перезапись HTTP-заголовков
      • Перезапись Cookie
    • Поддержка нескольких действий для одного правила
  • Поддержка правил-скриптов на JavaScript (программное вмешательство)
  • Поддержка прозрачного прокси
  • Поддержка мультиплексирования HTTPS и HTTP на одном порту
  • Установка CA-сертификата в системное хранилище доверенных сертификатов

Использование

Подготовка сертификата

Из-за требований техники MITM вам необходимо сгенерировать и сделать доверенным собственный корневой сертификат.

Генерация корневого сертификата

В целях безопасности не следует слепо доверять любому корневому сертификату, предоставленному незнакомцами. Вам необходимо сгенерировать собственный корневой сертификат и закрытый ключ.

Опытные пользователи могут использовать OpenSSL для выполнения необходимых операций. Однако пользователи без опыта в этой области могут воспользоваться следующей командой для генерации требуемого содержимого. Сгенерированный сертификат и закрытый ключ будут сохранены в каталоге ca.

good-mitm.exe genca

После использования прокси, предоставляемого Good-MITM, в вашем браузере вы можете напрямую скачать сертификат, перейдя по адресу http://cert.mitm.plus. Это особенно полезно при предоставлении услуг другим устройствам.

Доверие сертификату

Вы можете добавить корневой сертификат в зону доверия вашей операционной системы или браузера в зависимости от ваших потребностей.

Прокси

Запустите Good-MITM и укажите файл или каталог правил для использования.

good-mitm.exe run -r rules

Используйте HTTP-прокси, предоставляемый Good-MITM, в вашем браузере или операционной системе: http://127.0.0.1:34567.

Прозрачный прокси

Документацию см. на https://docs.mitmproxy.org/stable/howto-transparent/.

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 используется для управления Good-MITM.

Корректное правило должно включать следующие компоненты:

  • Name:Используется для различения разных правил для упрощения поддержки.
  • Filter:Используется для выбора содержимого, подлежащего обработке, из набора requests и responses.
  • Action:Используется для выполнения нужных действий, включая redirect, reject, modification и т. д.
  • Опционально: указание доменного имени, для которого требуется MITM.
- name: "Block YouTube tracking"
  mitm: "*.youtube.com"
  filter:
    url-regex: '^https?:\/\/(www|s)\.youtube\.com\/(pagead|ptracking)'
  action: reject

Кроме того, корректное правило должно соответствовать следующим требованиям:

  • Фокус: каждое правило должно быть предназначено для выполнения одной задачи.
  • Простота: используйте простые методы обработки, чтобы обеспечить лёгкость сопровождения.
  • Эффективность: по возможности используйте эффективные методы, например суффиксы и префиксы доменов вместо сложных регулярных выражений для сопоставления доменов.

Filter

Filter используется для выбора запросов и ответов, которые необходимо обработать.

Доступные опции

В настоящее время Filter включает следующие типы:

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

Примечание
В текущей версии типы, связанные с domain, сопоставляются с полем host, что обычно не влияет на результаты. Если веб-сайт использует нестандартный порт, правило должно указывать порт. Это поведение будет оптимизировано в будущих версиях.

All

Если указать фильтр как all, он будет соответствовать всем запросам и ответам. Обычно это используется для выполнения действий логирования.

- name: "log"
  filter: all
  action:
    - log-req
    - log-res
Домен

domain выполняет полное совпадение с именем домена.

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

domain-keyword выполняет сопоставление по ключевому слову с именем домена.

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

domain-prefix выполняет сопоставление по префиксу с именем домена.

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

domain-suffix выполняет сопоставление по суффиксу доменного имени.

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

url-regex выполняет сопоставление с регулярным выражением по всему URL.

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

Несколько фильтров

Поле filters поддерживает как одиночные фильтры, так и несколько фильтров, при этом связь между несколькими фильтрами — 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

Несколько правил с одним и тем же действием можно объединить в одно правило для упрощения поддержки.

Action

Action используется для выполнения операций над запросами или ответами.

Доступные параметры

В настоящее время Action включает следующие параметры:

Скачать инструмент