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

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

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

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

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

Категории

Все категории
Loading categories
MongoBleed-exploit — MongoBleed(CVE-2025-14847)实验室和 PoC:一个完整的教学环境,用于重现 MongoDB 中严重的未认证内存泄漏。包括一个带有多种数据库种子数据(PII、API 密钥)的易受攻击的 Docker 容器,以及一个用于演示数据提取的 Python 漏洞利用。非常适合安全研究和意识提升。1 天分析。 | Kitploit
Инструменты/GitHubGitHub/eljoamy/mongobleed-exploit
Криминалистика памятиАнализ уязвимостейЭксплуатацияCTFТестирование на ПроникновениеОбучение и ОбразованиеБезопасность Баз ДанныхЛаборатории и Практика
GitHubeljoamy/mongobleed-exploit

MongoBleed-exploit

MongoBleed(CVE-2025-14847)实验室和 PoC:一个完整的教学环境,用于重现 MongoDB 中严重的未认证内存泄漏。包括一个带有多种数据库种子数据(PII、API 密钥)的易受攻击的 Docker 容器,以及一个用于演示数据提取的 Python 漏洞利用。非常适合安全研究和意识提升。1 天分析。

Репозиторий
98 месяцев назадЕщё не проверено

Популярное

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

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

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

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

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

CVE-2025-14847: Лаборатория MongoBleed

Python      MongoDB      Docker

Содержание

  1. Введение
  2. Детали уязвимости
    • Как это работает
  3. Воздействие
  4. Архитектура лаборатории
  5. Предварительные требования
  6. Установка и использование
    • 1. Запуск окружения
    • 2. Установка зависимостей
    • 3. Проверка настройки лаборатории (опционально)
    • 4. Запуск эксплойта
  7. Процесс эксплуатации
  8. Устранение
  9. Лицензия
  10. Отказ от ответственности
  11. Ссылки
  12. Автор

Введение

Эта лаборатория предназначена для воспроизведения и анализа MongoBleed (CVE-2025-14847) — критической уязвимости в MongoDB. Эта ошибка позволяет неаутентифицированным злоумышленникам читать конфиденциальные данные из памяти сервера из-за некорректной обработки сжатых сообщений.

Окружение включает уязвимый экземпляр MongoDB, заполненный фиктивными чувствительными данными (PII, ключи API, финансовые записи), чтобы продемонстрировать серьёзность утечки.

Детали уязвимости

CVE ID: CVE-2025-14847
Название: MongoBleed
Компонент: Wire Protocol (OP_COMPRESSED)
Уязвимые версии: MongoDB 6.0.x < 6.0.27, 7.0.x < 7.0.28, 8.0.x < 8.0.17 (и другие) URL: Нажмите — NVD CVE-2025-14847

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

Уязвимость заключается в том, как MongoDB обрабатывает сообщения OP_COMPRESSED с использованием алгоритма сжатия zlib.

  1. Несоответствие размера: Злоумышленник отправляет сжатое сообщение, в котором поле uncompressed_size в заголовке намеренно установлено значительно большим, чем фактический размер распакованных данных.
  2. Выделение памяти: Сервер выделяет буфер памяти на основе этого завышенного uncompressed_size.
  3. Частичная запись: Декомпрессор zlib записывает фактический (маленький) полезный груз в начало этого буфера. Остальная часть буфера остаётся неинициализированной, содержа остаточные данные от предыдущих операций (артефакты ОЗУ).
  4. Утечка: Когда сервер пытается разобрать этот буфер как BSON-документ, он читает за пределами валидных данных, попадая в неинициализированную память. Если парсер сталкивается с ошибкой (что вероятно), он может вернуть «плохие» данные клиенту в сообщении об ошибке.

Воздействие

  • Неаутентифицированный доступ: Атака не требует действующих учётных данных.
  • Раскрытие информации: Злоумышленники могут извлечь всё, что в данный момент находится в памяти процесса MongoDB, включая:
    • Учётные данные аутентификации (пароли в открытом виде или хеши).
    • Данные из других баз данных/коллекций.
    • Конфигурацию сервера и переменные окружения.
    • Активные токены сессий.

Архитектура лаборатории

Лаборатория состоит из:

  • Уязвимый сервис: MongoDB 6.0.10 (Docker-контейнер).
  • Аутентификация: Включена (admin / secretpassword).
  • Наполнение данными: Инициализирующий скрипт (init-mongo.js), который заполняет 3 отдельные базы данных для имитации реального окружения облачной инфраструктуры SaaS:
    • dbmongotesting: Основные данные инфраструктуры.
      • compute_instances: Чувствительные метаданные (скрипты User Data, ключи API).
      • deployment_secrets: Высокоценные цели (токены K8s, ключи CI/CD, вебхуки Slack).
    • identity_provider: Управление учётными записями пользователей.
      • users: Учётные данные пользователей, хеши паролей (Argon2) и резервные коды MFA (утекшие в открытом виде).
    • system_audit: Логи и мониторинг.
      • query_logs: Содержит исторические запросы, некоторые из которых включают утёкшие учётные данные (например, ключи AWS).
  • Эксплойт: Python-скрипт (exploit.py), реализующий обратно спроектированную протокольную атаку.

Предварительные требования

  • Docker
  • Docker Compose
  • Python 3

Установка и использование

1. Запуск окружения

Запустите уязвимый контейнер. Это автоматически создаст базы данных и заполнит их данными.

root@kitploit:~
docker-compose up -d

Подождите около 10-15 секунд, пока база данных инициализируется и загрузит данные.

Примечание: Если вы уже запускали эту лабораторию ранее, сбросьте том, чтобы загрузить актуальную структуру данных:

root@kitploit:~
docker-compose down -v
docker-compose up -d

2. Установка зависимостей

Вы можете установить необходимые зависимости с помощью pip, используя устаревший requirements.txt или современный pyproject.toml.

Вариант A: Использование requirements.txt (стандартный)

root@kitploit:~
pip install -r requirements.txt

Вариант B: Использование pyproject.toml (современный) Это установит проект и его зависимости в текущее окружение.

root@kitploit:~
pip install .

3. Проверка настройки лаборатории (опционально)

Мы предоставили скрипт проверки, чтобы убедиться, что база данных доступна и данные были корректно загружены.

root@kitploit:~
python verify_lab.py

Этот скрипт использует учётные данные администратора для проверки существования баз данных, таких как sensitive_db, legacy_crm и т.д.

4. Запуск эксплойта

Запустите Python-скрипт для атаки на сервер. Для этого шага не требуются учётные данные, что демонстрирует неаутентифицированный характер уязвимости.

root@kitploit:~
python exploit.py --host localhost --port 27017 --min 100 --max 5000

Процесс эксплуатации

Скрипт выполняет следующие шаги:

  1. Формирует вредоносный BSON-полезный груз.
  2. Сжимает его и упаковывает в заголовок OP_COMPRESSED с поддельным завышенным размером.
  3. Отправляет его на целевой сервер.
  4. Прослушивает ответы с ошибками.
  5. Выводит любой читаемый текст, найденный в ответе сервера (полученный из утечки памяти).

Ожидаемый результат: Вы должны увидеть вывод, указывающий на найденные утечки по различным смещениям, а затем сводку обнаруженных секретов.

root@kitploit:~
[*] MongoBleed Exploit (Custom Implementation)
[*] Target: localhost:27017
[*] Scanning memory offsets 100 to 5000...
[+] Offset 120  | ... dbmongotesting ... compute_instances ...
[+] Offset 145  | ... field name 'AKIAIOSFODNN7EXAMPLE' is not valid ... [!] FOUND AKIA
[+] Offset 210  | ... "token": "eyJhbGciOiJSUzI1NiIsImtpZCI6Ik16UTBOVFZ... [!] FOUND token

[*] Scan completed in 12.45s
[*] Total bytes leaked: 4502
[*] Unique fragments: 156

[*] Secrets Summary:
[!] Found pattern: AKIA
[!] Found pattern: token
[!] Found pattern: password

Устранение

Для исправления этой уязвимости в производственных средах:

  1. Обновление: Обновите MongoDB до исправленной версии (например, 6.0.27+, 7.0.28+, 8.0.17+).
  2. Сетевые ограничения: Убедитесь, что порты MongoDB (27017) не открыты для публичного интернета.

Лицензия

Этот проект лицензирован по лицензии MIT. Подробнее см. в файле LICENSE.

Отказ от ответственности

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

Ссылки

  • Эксплуатация открытого экземпляра MongoDB с помощью Mongobleed: пошаговое руководство для локальной лаборатории
  • CVE-2025-1623

Автор

ElJoamy
Joseph Meneses (ElJoamy)

Разработчик бэкенда и ИИ · Инженер по кибербезопасности · DBA · Специалист по тестированию на проникновение

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