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

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

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

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

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

Категории

Все категории
Loading categories
mxmap — Автоматизированный пайплайн, который разрешает домены швейцарских муниципалитетов, извлекает адреса электронной почты с веб-сайтов и классифицирует почтовых провайдеров с помощью MX-, SPF-, DKIM-, DMARC- и SMTP-проб для составления карты цифровых зависимостей. | Kitploit
Инструменты/GitHubGitHub/davidhuser/mxmap
OSINT (Разведка открытых источников)Картирование сетиСбор информацииРазведка угрозБезопасность Электронной ПочтыАнализ DNS
GitHubdavidhuser/mxmap

mxmap

Автоматизированный пайплайн, который разрешает домены швейцарских муниципалитетов, извлекает адреса электронной почты с веб-сайтов и классифицирует почтовых провайдеров с помощью MX-, SPF-, DKIM-, DMARC- и SMTP-проб для составления карты цифровых зависимостей.

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

Популярное

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

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

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

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

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

MXmap — карты муниципальной email-инфраструктуры

[!IMPORTANT] У MXmap есть преемник. Этот проект вырос в командное исследование, охватывающее все муниципалитеты Германии, Австрии и Швейцарии: secassure2026.mxmap-project.org (исходный код). Швейцарская карта на mxmap.ch остаётся онлайн, но её данные заморожены по состоянию на апрель 2026 года и обновляться не будут.

CI

Интерактивные карты, показывающие, где швейцарские муниципалитеты размещают свою электронную почту и насколько глубоко их DNS привязан к американским гиперскейлерам (Microsoft, Google, AWS) по сравнению со швейцарскими провайдерами и самостоятельными решениями.

Смотреть карты онлайн

Скриншот MXmap

Как это работает

Конвейер данных состоит из двух этапов:

  1. Разрешение доменов — Получает все ~2100 швейцарских муниципалитетов из Wikidata и API BFS (Швейцарская статистика), применяет ручные переопределения, собирает адреса электронной почты с сайтов муниципалитетов, подбирает домены по названиям муниципалитетов и проверяет кандидатов с помощью MX-запросов. Оценивает согласованность источников, чтобы выбрать лучший домен. На выходе получается municipality_domains.json.

  2. Классификация провайдеров — Для каждого разрешённого домена находит все MX-хосты, сопоставляет их по шаблонам, а затем запускает 10 параллельных проверок (SPF, DKIM, DMARC, Autodiscover, цепочка CNAME, SMTP-баннер, Tenant, ASN, проверка TXT, SPF IP). Агрегирует взвешенные свидетельства и вычисляет оценки уверенности (0–100). На выходе — data.json (полный) и data.min.json (минифицированный для фронтенда).

root@kitploit:~
flowchart TD
    subgraph resolve ["1 · Resolve domains"]
        bfs[/"BFS Statistics API"/] --> merge["Merge ~2100 municipalities"]
        wikidata[/"Wikidata SPARQL"/] --> merge
        overrides[/"overrides.json"/] --> per_muni
        merge --> per_muni["Per municipality"]
        per_muni --> scrape["Scrape website for<br/>email addresses"]
        per_muni --> guess["Guess domains<br/>from name"]
        scrape --> mx_verify["MX lookup to<br/>verify domains"]
        guess --> mx_verify
        mx_verify --> score["Score source<br/>agreement"]
    end

    score --> domains[("municipality_domains.json")]
    domains --> classify_in

    subgraph classify ["2 · Classify providers"]
        classify_in["Per unique domain"] --> mx_lookup["MX lookup<br/>(all hosts)"]
        mx_lookup --> mx_match["Pattern-match MX<br/>+ detect gateway"]
        mx_match --> concurrent["10 concurrent probes<br/>SPF · DKIM · DMARC<br/>Autodiscover · CNAME chain<br/>SMTP · Tenant · ASN<br/>TXT verification · SPF IP"]
        concurrent --> aggregate["Aggregate weighted<br/>evidence"]
        aggregate --> vote["Primary vote<br/>+ confidence scoring"]
    end

    vote --> data[("data.json + data.min.json")]
    data --> frontend["Leaflet map<br/>mxmap.ch"]

Система классификации

Полное описание реализации см. в classifier.py, но вкратце: мы используем систему взвешенных доказательств, где каждая проверка вносит сигналы разной силы в пользу различных классификаций провайдеров.

Быстрый старт

root@kitploit:~
uv sync

# Stage 1: resolve municipality domains
uv run resolve-domains

# Stage 2: classify email providers
uv run classify-providers

# Serve the map locally
python -m http.server

Разработка

root@kitploit:~
uv sync --group dev

# Run tests (90% coverage threshold enforced)
uv run pytest --cov --cov-report=term-missing

# Lint & format
uv run ruff check src tests
uv run ruff format src tests

Связанные проекты

  • SecAssure2026 — преемник этого проекта: карты почтовых провайдеров и безопасности электронной почты для ~15 300 муниципалитетов в Германии, Австрии и Швейцарии (исходный код)
  • hpr4379 :: Картирование цифровых зависимостей муниципалитетов
  • Если вам известны другие похожие проекты, пожалуйста, откройте issue или отправьте PR, чтобы добавить их сюда!

Форки

Страновые форки в алфавитном порядке по кодам стран:

  • BE — https://mxmap.be/
  • DE — https://b42labs.github.io/mxmap/ · https://mx-map.de/
  • EU — https://livenson.github.io/mxmap/
  • FR — https://mxmairies.fr/
  • IT — https://mxmap.it/
  • LV — https://securit.lv/mxmap
  • NL — https://mxmap.nl/
  • NO — https://kommune-epost-norge.netlify.app/
  • PT — https://mxmap.pt/
  • SE — https://swedish-mail-dependency.netlify.app/
  • UK — https://mxmap.uk/

Новые страновые форки приветствуются — попробуйте начать с конвейера преемника, в который добавлен этап сканирования DANE/DNSSEC/SPF/DMARC.

Похожие проекты:

  • CAmap Nordic & Baltic — суверенитет TLS CA для муниципалитетов Северных стран и Балтии (исходный код)

См. также форки этого репозитория.

Участие

Если вы заметили неверную классификацию, пожалуйста, откройте issue с номером BFS и правильным провайдером. Для муниципалитетов, где автоматическое определение не срабатывает, исправления можно добавить в overrides.json.

Лицензия

MIT

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