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

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

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

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

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

Категории

Все категории
Loading categories
mongobleed-detector — Скрипт обнаружения эксплуатации MongoBleed | Kitploit
Инструменты/GitHubGitHub/neo23x0/mongobleed-detector
Анализ уязвимостейСкриптинг и автоматизацияФорензикаЦифровая криминалистикаРазведка угрозРеагирование на ИнцидентыБезопасность Баз ДанныхАнализ Журналов
GitHubneo23x0/mongobleed-detector

mongobleed-detector

Скрипт обнаружения эксплуатации MongoBleed

Репозиторий
8113149 месяцев назадПроверено Kitploit

Популярное

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

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

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

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

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

Детектор MongoBleed

Офлайн-инструмент анализа MongoDB для CVE-2025-14847 (MongoBleed)

Автономный инструмент командной строки для Linux, который анализирует данные MongoDB для выявления вероятной эксплуатации уязвимости CVE-2025-14847 с использованием нескольких модулей обнаружения.

Оглавление

  • Обзор
  • Модули обнаружения
  • Требования
  • Установка
  • Два режима работы
  • Режим 1: Локальный анализ
  • Режим 2: Удалённый сбор
  • Параметры командной строки
  • Уровни уверенности
  • Пример вывода
  • Тестирование
  • Ограничения и предостережения
  • Ссылки и благодарности
  • Лицензия

Обзор

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

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

  • Модуль A: Корреляция журналов (события соединения, отсутствие метаданных)
  • Модуль B1: Анализ счётчиков assert (снимки serverStatus.asserts)
  • Модуль B2: Обнаружение всплесков FTDC (временные ряды diagnostic.data)

Ключевые особенности

  • Многомодульное обнаружение — коррелирует несколько источников данных для более высокой уверенности
  • Офлайн и без агента — не требуется сетевое подключение во время анализа
  • Автообнаружение — автоматически определяет доступные источники данных
  • Удалённый сбор — собирает данные с нескольких хостов через SSH
  • Комбинированная оценка — вердикты ВЫСОКИЙ/СРЕДНИЙ/НИЗКИЙ уровень уверенности
  • Потоковая обработка — эффективно обрабатывает большие файлы журналов

Модули обнаружения

Модуль A: Корреляция журналов

Анализирует JSON-журналы MongoDB для выявления шаблонов эксплуатации:

ID событияТипОписание
22943Соединение принятоРегистрируется при подключении клиента
51800Метаданные клиентаРегистрируется, когда клиент отправляет информацию о драйвере/приложении
22944Соединение закрытоРегистрируется при отключении клиента

Ключевое наблюдение: Легитимные драйверы MongoDB всегда отправляют метаданные клиента. Эксплойт MongoBleed подключается, извлекает память и отключается, но никогда не отправляет метаданные.

Модуль B1: Счётчики assert

Анализирует снимки db.serverStatus().asserts для обнаружения необычных паттернов в счётчике asserts.user:

  • Несколько снимков: Сравнивает снимки во времени для выявления внезапных всплесков assert`ов пользователя
  • Эвристика одного снимка: Если доступен только один снимок, выявляет подозрительные паттерны путём сравнения asserts.user с другими типами assertов. Если пользовательские assertы непропорционально высоки (отношение ≥250x) или все остальные типы равны нулю, помечается как подозрительный (СРЕДНИЙ уровень уверенности)

Примечание: Кумулятивные счётчики могут давать ложные срабатывания. Для наилучших результатов используйте в комбинации с модулем FTDC (Модуль B2).

Модуль B2: Обнаружение всплесков FTDC

Анализирует файлы полного диагностического сбора данных (FTDC) MongoDB для выявления локализованных по времени всплесков счётчиков assert. FTDC периодически снимает показания serverStatus, что позволяет точно определить время потенциальной атаки.

Требования

Shell-скрипт (mongobleed-detector.sh)

  • Linux или macOS (bash 4+)
  • jq — обработчик JSON
  • awk (рекомендуется gawk)
  • gzip — поддержка сжатых журналов

Компоненты Python (опционально, для декодирования FTDC)

  • Python 3.8+
  • pymongo — декодирование файлов FTDC

Удалённый сканер (mongobleed-remote.py)

  • Python 3.8+
  • Встроенный SSH-клиент (команды ssh, scp)
  • Дополнительные пакеты Python для базовой работы не требуются

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

# Зависимости shell-скрипта
# Debian/Ubuntu
apt-get install jq gawk gzip

# RHEL/CentOS/Fedora
dnf install jq gawk gzip

# macOS
brew install jq gawk

# Зависимости Python (для декодирования FTDC)
pip install -r requirements.txt

Установка

# Клонировать репозиторий
git clone https://github.com/your-org/mongobleed-detector.git
cd mongobleed-detector

# Сделать скрипты исполняемыми
chmod +x mongobleed-detector.sh
chmod +x mongobleed-remote.py
chmod +x ftdc-decode.py

# Установить зависимости Python (опционально, для поддержки FTDC)
pip install -r requirements.txt

Два режима работы

Режим 1: Локальный анализ

Анализ данных, собранных вручную с хостов MongoDB.

Режим 2: Удалённый сбор

Автоматический сбор данных с нескольких хостов через SSH с последующим локальным анализом.

Режим 1: Локальный анализ

Шаг 1: Сбор данных

Соберите данные с ваших хостов MongoDB и организуйте их в следующую структуру:

./collected-data/
├── logs/                    # JSON-журналы MongoDB
│   ├── mongod.log
│   ├── mongod.log.1
│   └── mongod.log.2.gz
├── assert-counts/           # Снимки serverStatus().asserts
│   ├── asserts-2025-01-01.json
│   └── asserts-2025-01-02.json
└── ftdc-files/              # Содержимое diagnostic.data FTDC
    ├── metrics.2025-01-02T10-00-00Z-00000
    └── metrics.interim

Сбор журналов

# Копирование с удалённого хоста
scp user@mongohost:/var/log/mongodb/mongod.log* ./collected-data/logs/

Сбор счётчиков assert

Выполните эту команду на хосте MongoDB (требуется доступ к mongosh):

mongosh --quiet --eval 'JSON.stringify({
  timestamp: new Date().toISOString(),
  hostname: db.hostInfo().system.hostname,
  asserts: db.serverStatus().asserts,
  uptime: db.serverStatus().uptime
})' > asserts-$(date +%Y%m%d-%H%M%S).json

Скопируйте полученный JSON-файл в ./collected-data/assert-counts/.

Совет: Запускайте эту команду несколько раз (например, ежечасно) для создания базовой линии и обнаружения всплесков.

Сбор файлов FTDC

Файлы FTDC находятся по адресам:

  • mongod: <storage.dbPath>/diagnostic.data/ (обычно /var/lib/mongodb/diagnostic.data/)
  • mongos: Определяется из systemLog.path (например, /var/log/mongodb/mongos.diagnostic.data/)
# Копирование файлов FTDC (может потребоваться sudo)
sudo cp /var/lib/mongodb/diagnostic.data/metrics.* ./collected-data/ftdc-files/

Шаг 2: Запуск анализа

# Режим автообнаружения — анализирует все доступные данные
./mongobleed-detector.sh --data-dir ./collected-data/

# С пользовательскими порогами
./mongobleed-detector.sh --data-dir ./collected-data/ \
    -t 1440 \              # Просмотр за последние 24 часа
    -c 50 \                # Снизить порог соединений
    --spike-threshold 50   # Снизить порог всплесков

Устаревший режим (только журналы)

Для обратной совместимости можно анализировать журналы напрямую:

# Сканирование путей по умолчанию
./mongobleed-detector.sh

# Сканирование конкретных файлов журналов
./mongobleed-detector.sh -p /path/to/logs/*.json

# Криминалистический режим (анализ нескольких хостов)
./mongobleed-detector.sh --forensic-dir /evidence/

Режим 2: Удалённый сбор

Автоматически собирает данные с нескольких хостов и анализирует:

# Создать файл хостов
cat > hosts.txt << EOF
mongo-prod-01.example.com
mongo-prod-02.example.com
mongo-staging.example.com
EOF

# Сбор и анализ
./mongobleed-remote.py --hosts-file hosts.txt --user admin --output-dir ./collected-data/

Параметры удалённого сканера

# Использовать конкретный SSH-ключ
./mongobleed-remote.py --hosts-file hosts.txt --user admin --key ~/.ssh/mongodb_key

# Параллельное выполнение
./mongobleed-remote.py --hosts-file hosts.txt --user admin --parallel 10
Скачать инструмент