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

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

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

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

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

Категории

Все категории
Loading categories
CVE-2025-14847 — MongoDB 内存泄露漏洞 (CVE-2025-14847) 检测工具 | Kitploit
Инструменты/GitHubGitHub/onewinner/cve-2025-14847
Vulnerability ScannersMemory ForensicsExploitationInformation GatheringPenetration TestingDatabase Security
GitHubonewinner/cve-2025-14847

CVE-2025-14847

MongoDB 内存泄露漏洞 (CVE-2025-14847) 检测工具

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

Популярное

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

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

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

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

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

Инструмент обнаружения уязвимости MongoDB CVE-2025-14847

Инструмент для обнаружения утечки памяти в MongoDB (CVE-2025-14847)


⚠️ Важное примечание: Этот инструмент предназначен только для авторизованного тестирования безопасности и оценки уязвимостей. Несанкционированное использование может нарушать закон.


📋 Содержание

  • Описание уязвимости
  • Возможности
  • Установка
  • Использование
  • Настройка тестовой среды
  • Примеры вывода
  • Принцип обнаружения
  • Рекомендации по устранению
  • Отказ от ответственности

🔍 Описание уязвимости

CVE-2025-14847 — критическая утечка памяти в обработке протокола сжатия Zlib в MongoDB. Злоумышленник может отправить специально сформированный сжатый пакет, в результате чего MongoDB возвращает неинициализированные данные из кучи, которые могут содержать конфиденциальную информацию.

Затронутые версии

Опасность уязвимости

  • 🔴 Серьёзность: CVSS 8.7 (высокая)
  • 💾 Утечка конфиденциальных данных из кучи
  • 🔑 Может содержать пароли, токены сессий, ключи шифрования и т. д.
  • 🚫 Не требует аутентификации
  • 🌐 Удалённая эксплуатация

✨ Возможности

  • ✅ Интеллектуальное обнаружение – автоматическое определение версии MongoDB и проверка уязвимости
  • ✅ Двойная проверка – проверка версии → проверка поддержки Zlib → извлечение утечки памяти
  • ✅ Сканирование одной цели – быстрая проверка одного экземпляра MongoDB
  • ✅ Пакетное сканирование – чтение списка целей из файла
  • ✅ Параллельное сканирование – поддержка многопоточности для повышения эффективности
  • ✅ Вывод в реальном времени – отображение утёкших данных памяти
  • ✅ Экспорт результатов – автоматическое сохранение уязвимых целей в файл
  • ✅ Лаконичный вывод – единый формат вывода, чёткий и понятный

🚀 Установка

Способ 1: Сборка из исходников

root@kitploit:~
# Клонирование репозитория
git clone https://github.com/onewinner/CVE-2025-14847.git
cd CVE-2025-14847

# Установка зависимостей
go mod download

# Сборка
go build -o mongodb-scanner main.go

# Запуск
./mongodb-scanner -t 127.0.0.1:27017

Способ 2: Запуск напрямую

root@kitploit:~
go run main.go -t 127.0.0.1:27017

Способ 3: Скачать предварительно собранную версию

Перейдите на страницу Releases и загрузите подходящую версию для вашей системы.

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

Базовая команда

root@kitploit:~
# Сканирование одной цели
./mongodb-scanner -t 127.0.0.1:27017

# Пакетное сканирование из файла
./mongodb-scanner -f targets.txt

# Пакетное сканирование (20 потоков)
./mongodb-scanner -f targets.txt -c 20

# Сканирование с сохранением уязвимых целей
./mongodb-scanner -f targets.txt -o vulnerable.txt

# Пользовательский диапазон смещений (более быстрое или более глубокое сканирование)
./mongodb-scanner -t 127.0.0.1:27017 --min-offset 20 --max-offset 1000

Параметры командной строки

Формат файла целей

Создайте файл targets.txt:

root@kitploit:~
# Список целей MongoDB
127.0.0.1:27017
192.168.1.100:27017
mongodb.example.com:27017

# Если порт не указан, по умолчанию используется 27017
192.168.1.101

🐳 Настройка тестовой среды

Для безопасного тестирования этого инструмента рекомендуется использовать Docker для создания локальной тестовой среды.

Быстрый запуск уязвимой MongoDB

root@kitploit:~
# Запуск MongoDB 6.0.14 (уязвимая версия) с включённым сжатием Zlib
docker run -d \
  --name mongodb-vulnerable \
  -p 27017:27017 \
  mongo:6.0.14 \
  --networkMessageCompressors snappy,zlib

# Проверка состояния контейнера
docker ps

# Тестирование уязвимости
./mongodb-scanner -t 127.0.0.1:27017

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

Создайте файл docker-compose.yml:

root@kitploit:~
version: '3.8'

services:
  # Уязвимая версия (с Zlib)
  mongodb-vulnerable:
    image: mongo:6.0.14
    container_name: mongodb-vulnerable
    ports:
      - "27017:27017"
    command: mongod --networkMessageCompressors snappy,zlib

  # Исправленная версия (для сравнения)
  mongodb-patched:
    image: mongo:6.0.27
    container_name: mongodb-patched
    ports:
      - "27018:27017"
    command: mongod --networkMessageCompressors snappy,zlib

volumes:
  mongodb-data:
  mongodb-patched-data:

Запуск тестовой среды:

root@kitploit:~
# Запуск всех контейнеров
docker-compose up -d

# Тестирование уязвимой версии
./mongodb-scanner -t 127.0.0.1:27017

# Тестирование исправленной версии
./mongodb-scanner -t 127.0.0.1:27018

# Остановка и очистка
docker-compose down -v

Очистка тестовой среды

root@kitploit:~
# Остановка и удаление контейнера
docker stop mongodb-vulnerable && docker rm mongodb-vulnerable

# Очистка томов
docker volume prune -f

📊 Примеры вывода

Описание формата вывода

Инструмент использует единые префиксы для маркировки вывода:

  • [*] – информационный вывод (цель, версия, конфигурация и т. д.)
  • [+] – успех / наличие уязвимости / извлечение данных
  • [-] – неудача / безопасно / уязвимость отсутствует
  • [!] – предупреждение / важная информация

Сканирование одной цели – уязвимость найдена

root@kitploit:~
╔══════════════════════════════════════════════════════════════╗
║  Инструмент обнаружения уязвимости MongoDB CVE-2025-14847   ║
╚══════════════════════════════════════════════════════════════╝
⚠️  Только для авторизованного тестирования | Несанкционированное тестирование может быть незаконным

[*] Цели: 1 | Потоки: 10 | Тайм-аут: 2s | Смещение: 20-1000
[*] Начало сканирования...

[*] Цель: 127.0.0.1:27017
[*] Версия: 6.0.14
[+] Уязвимая версия: да
[+] Сжатие Zlib: включено
[!] Уязвимость эксплуатируема, начинаем извлечение памяти...
[+] Смещение=229 Длина=250: :00\"},\"s\":\"I\",  \"c\":\"NETWORK\",  \"id\":22944,   \"ctx\":\"conn102932\",

[+] 127.0.0.1:27017 – уязвимость эксплуатируема (v6.0.14) – 3468ms
[+] Успешно извлечено 1 фрагмент данных памяти:
    [1] :00\"},\"s\":\"I\",  \"c\":\"NETWORK\",  \"id\":22944,   \"ctx\":\"conn102932\",\"msg\":\"Connection ended\",\"attr\":{\"remote\":\"172.17.0.1:44936\"...

======================================================================
[*] Сканирование завершено | Всего: 1 | Эксплуатируемо: 1 | Безопасно: 0 | Затрачено: 3.4s
======================================================================

Сканирование одной цели – версия безопасна

root@kitploit:~
[*] Цель: 127.0.0.1:27018
[*] Версия: 6.0.27
[-] Уязвимая версия: нет

[-] 127.0.0.1:27018 – версия безопасна (v6.0.27) – 156ms

======================================================================
[*] Сканирование завершено | Всего: 1 | Эксплуатируемо: 0 | Безопасно: 1 | Затрачено: 0.2s
======================================================================

Сканирование одной цели – Zlib не включён

root@kitploit:~
[*] Цель: 127.0.0.1:27017
[*] Версия: 6.0.14
[+] Уязвимая версия: да
[-] Сжатие Zlib: не включено

[-] 127.0.0.1:27017 – Zlib не включён (v6.0.14) – 234ms

======================================================================
[*] Сканирование завершено | Всего: 1 | Эксплуатируемо: 0 | Безопасно: 1 | Затрачено: 0.3s
======================================================================

Пакетное сканирование

root@kitploit:~
[*] Цели: 5 | Потоки: 10 | Тайм-аут: 2s | Смещение: 20-8192
[*] Начало сканирования...

[+] 192.168.1.10:27017 – уязвимость эксплуатируема (v6.0.14) – 3521ms
[+] Успешно извлечено 2 фрагмента данных памяти:
    [1] Connection ended...
    [2] network statistics...

[-] 192.168.1.11:27017 – версия безопасна (v6.0.27) – 145ms
[-] 192.168.1.12:27017 – Zlib не включён (v6.0.14) – 198ms
[+] 192.168.1.13:27017 – уязвимость эксплуатируема (v7.0.15) – 2987ms
[!] 192.168.1.14:27017 – уязвимость эксплуатируема, но данные не извлечены (v6.0.20) – 4123ms

======================================================================
[*] Сканирование завершено | Всего: 5 | Эксплуатируемо: 3 | Безопасно: 2 | Затрачено: 5.2s
======================================================================

[+] Уязвимые цели сохранены в: vulnerable.txt

🔬 Принцип обнаружения

Инструмент использует трёхэтапный механизм обнаружения:

1️⃣ Проверка версии

  • Подключение к экземпляру MongoDB
  • Получение информации о версии (команда buildInfo)
  • Определение, находится ли версия в диапазоне уязвимости

2️⃣ Проверка поддержки сжатия Zlib

  • Отправка тестового сжатого пакета Zlib
  • Проверка, отвечает ли сервер сжатым ответом
  • Подтверждение, включена ли функция сжатия Zlib

3️⃣ Извлечение утечки памяти

  • Отправка специально сформированного сжатого пакета
    • Утверждается, что размер после декомпрессии намного больше фактического
    • Запуск чтения сервером неинициализированной кучи памяти
  • Сканирование нескольких смещений для извлечения большего количества данных
  • Декомпрессия ответа сервера и извлечение утёкших имён полей
  • Отображение найденных данных памяти в реальном времени

Логика определения

УсловиеРезультат
Уязвимая версия + Zlib включён + данные извлечены✅ Уязвимость эксплуатируема – отображение утёкших данных
Уязвимая версия + Zlib включён + данные не извлечены⚠️ Уязвимость эксплуатируема, но данные не извлечены
Уязвимая версия + Zlib не включён❌ Zlib не включён – эксплуатация невозможна

🛠️ Рекомендации по устранению

Срочное исправление

Немедленно обновитесь до одной из исправленных версий:

  • MongoDB Server 8.2.3
  • MongoDB Server 8.0.17
  • MongoDB Server 7.0.28
  • MongoDB Server 6.0.27
  • MongoDB Server 5.0.32
  • MongoDB Server 4.4.30

Временные меры смягчения

Если обновление невозможно в краткосрочной перспективе, примите следующие временные меры:

1. Отключение сжатия Zlib

В файле mongod.conf или mongos.conf настройте:

root@kitploit:~
net:
  compression:
    compressors: []

Или в параметрах запуска явно исключите zlib:

root@kitploit:~
mongod --networkMessageCompressors snappy,zstd

2. Использование других алгоритмов сжатия

Рекомендуется использовать snappy или zstd вместо zlib:

root@kitploit:~
net:
  compression:
    compressors: snappy,zstd

3. Ограничение сетевого доступа

  • Ограничьте порт MongoDB только для доверенных IP
  • Используйте правила брандмауэра или настройку bindIp
  • Включите шифрование TLS/SSL

4. Включение контроля доступа

  • Включите механизм аутентификации (параметр --auth)
  • Используйте политику надёжных паролей
  • Применяйте принцип минимальных привилегий

5. Мониторинг и аудит

  • Отслеживайте подозрительные соединения и шаблоны доступа к памяти
  • Включите журнал аудита
  • Регулярно проверяйте журналы безопасности

⚠️ Важное примечание: Временные меры могут только снизить риск, но не являются окончательным решением. Настоятельно рекомендуется как можно скорее обновиться до исправленной версии.

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

Важное примечание:

  • ✅ Этот инструмент предназначен только для авторизованного тестирования безопасности и оценки уязвимостей
  • ✅ Перед использованием убедитесь, что у вас есть разрешение на тестирование целевой системы
  • ❌ Несанкционированное сканирование может нарушать законы и правила
  • ❌ Автор не несёт ответственности за любое злоупотребление

Используя этот инструмент, вы соглашаетесь:

  1. Использовать его только на системах, на которые получено явное разрешение
  2. Соблюдать законы и правила вашего региона
  3. Нести ответственность за любые последствия, вызванные использованием инструмента

📄 Лицензия

Этот проект распространяется под лицензией MIT.

🤝 Вклад

Приветствуются Issues и Pull Requests!

Руководство по вкладу

  1. Форкните репозиторий
  2. Создайте ветку для вашей функции (git checkout -b feature/AmazingFeature)
  3. Зафиксируйте изменения (git commit -m 'Add some AmazingFeature')
  4. Отправьте изменения в ветку (git push origin feature/AmazingFeature)
  5. Откройте Pull Request

📚 Ссылки

  • Детали CVE-2025-14847
  • Уведомление безопасности MongoDB
  • Руководство по обновлению MongoDB
  • Конфигурация сжатия MongoDB

👨‍💻 Автор

onewinner – @onewinner

Адрес проекта: https://github.com/onewinner/CVE-2025-14847

📝 Журнал изменений

v1.0.0 (2025-12-26)

  • 🎉 Первоначальный выпуск
  • ✅ Поддержка сканирования одной цели и пакетного сканирования
  • ✅ Поддержка многопоточного параллельного сканирования
  • ✅ Автоматическое определение версии и оценка риска
  • ✅ Интеллектуальное обнаружение утечки памяти
  • ✅ Подробные рекомендации по устранению

⭐ Если этот проект был вам полезен, поставьте звезду!

Создано с ❤️ исследователями безопасности

Скачать инструмент
Диапазон версийСтатус
8.2.0 – 8.2.2⚠️ Затронуто
8.0.0 – 8.0.16⚠️ Затронуто
7.0.0 – 7.0.27⚠️ Затронуто
6.0.0 – 6.0.26⚠️ Затронуто
5.0.0 – 5.0.31⚠️ Затронуто
4.4.0 – 4.4.29⚠️ Затронуто
4.2.x все версии⚠️ Затронуто
4.0.x все версии⚠️ Затронуто
3.6.x все версии⚠️ Затронуто
ПараметрОписаниеЗначение по умолчанию
-t <цель>Одиночная цель (например: 127.0.0.1:27017)–
-f <файл>Файл с целями (по одной на строку)–
-c <число>Количество потоков10
-timeout <время>Время ожидания соединения2s
-o <файл>Выходной файл (сохраняет уязвимые цели)–
--min-offset <число>Минимальное смещение длины документа20
--max-offset <число>Максимальное смещение длины документа8192
Неуязвимая версия
✅ Версия безопасна