Skip to content
KitploitKITPLOIT
StrumentiBlog
Log in
Invia
StrumentiBlog
Invia

Strumenti di Hacking, PenTest e Cybersecurity per il tuo Arsenale di Sicurezza!

Kitploit è una directory di strumenti di hacking, cybersecurity e pentesting. Scopri gli ultimi aggiornamenti dei progetti per trovare vulnerabilità, analizzare sistemi, automatizzare i test e rafforzare la tua sicurezza.

FeedContattoPrivacy© 2026 Kitploit

Directory degli strumenti

Categorie

Vedi tutte le categorie
Loading categories
mongobleed-detector — Script di rilevamento per lo sfruttamento di MongoBleed | Kitploit
Strumenti/GitHubGitHub/neo23x0/mongobleed-detector
Analisi delle VulnerabilitàScripting e AutomazioneInformatica ForenseDigital ForensicsThreat IntelligenceRisposta agli IncidentiSicurezza dei DatabaseAnalisi dei Log
GitHubneo23x0/mongobleed-detector

mongobleed-detector

Script di rilevamento per lo sfruttamento di MongoBleed

Vedi Repository
8113149 mesi faRevisionato da Kitploit

Più Popolari

Vedi tutti →

Scopri gli strumenti più utilizzati dalla nostra community.

Esplora tutti gli strumenti

Sfoglia la nostra collezione di strumenti

Vedi tutti gli strumenti →
Condividi

MongoBleed Detector

Strumento di analisi MongoDB offline per CVE-2025-14847 (MongoBleed)

Un tool standalone da riga di comando per Linux che analizza i dati di MongoDB per identificare probabili sfruttamenti di CVE-2025-14847 utilizzando molteplici moduli di rilevamento.

Indice

  • Panoramica
  • Moduli di rilevamento
  • Requisiti
  • Installazione
  • Due modalità operative
  • Modalità 1: Analisi locale
  • Modalità 2: Raccolta remota
  • Opzioni da riga di comando
  • Livelli di confidenza
  • Esempio di output
  • Test
  • Avvertenze e limitazioni
  • Riferimenti e crediti
  • Licenza

Panoramica

MongoBleed (CVE-2025-14847) è una vulnerabilità di divulgazione della memoria nella decompressione zlib di MongoDB che consente agli aggressori di estrarre dati sensibili—credenziali, token di sessione, PII—direttamente dalla memoria del server senza autenticazione.

Questo strumento aiuta i responder agli incidenti a rilevare tentativi di sfruttamento utilizzando molteplici fonti di prova:

  • Modulo A: Correlazione dei log (eventi di connessione, assenza di metadati)
  • Modulo B1: Analisi dei conteggi di asserzioni (istantanee di serverStatus.asserts)
  • Modulo B2: Rilevamento di picchi FTDC (serie temporali diagnostic.data)

Caratteristiche principali

  • Rilevamento multi-modulo - Correla più fonti di dati per una maggiore confidenza
  • Offline e senza agente - Nessuna connettività di rete richiesta durante l'analisi
  • Auto-scoperta - Rileva automaticamente le fonti di dati disponibili
  • Raccolta remota - Raccoglie dati da più host tramite SSH
  • Punteggio combinato - Verdetto ALTA/MEDIA/BASSA confidenza
  • Elaborazione in streaming - Gestisce file di log di grandi dimensioni in modo efficiente

Moduli di rilevamento

Modulo A: Correlazione dei log

Analizza i log JSON di MongoDB per rilevare schemi di sfruttamento:

ID eventoTipoDescrizione
22943Connessione accettataRegistrato quando un client si connette
51800Metadati clientRegistrato quando un client invia informazioni driver/ applicazione
22944Connessione chiusaRegistrato quando un client si disconnette

Intuizione chiave: I driver MongoDB legittimi inviano sempre i metadati del client. L'exploit MongoBleed si connette, estrae memoria e si disconnette—ma non invia mai metadati.

Modulo B1: Conteggi di asserzioni

Analizza le istantanee di db.serverStatus().asserts per rilevare schemi insoliti nei contatori asserts.user:

  • Istanze multiple: Confronta istantanee nel tempo per rilevare picchi improvvisi nelle asserzioni utente
  • Euristica con singola istantanea: Quando è disponibile una sola istantanea, rileva schemi sospetti confrontando asserts.user con altri tipi di asserzione. Se le asserzioni utente sono sproporzionatamente alte (rapporto ≥250x) o tutti gli altri tipi sono zero, viene segnalato come sospetto (confidenza MEDIA)

Nota: I contatori cumulativi possono produrre falsi positivi. Da utilizzare in combinazione con FTDC (Modulo B2) per risultati ottimali.

Modulo B2: Rilevamento di picchi FTDC

Analizza i file di Full-Time Diagnostic Data Capture (FTDC) di MongoDB per rilevare picchi localizzati nel tempo nei contatori di asserzioni. FTDC campiona serverStatus periodicamente, consentendo una tempistica precisa di potenziali attacchi.

Requisiti

Script shell (mongobleed-detector.sh)

  • Linux o macOS (bash 4+)
  • jq - Processore JSON
  • awk (gawk raccomandato)
  • gzip - Per il supporto di log compressi

Componenti Python (opzionali, per decodifica FTDC)

  • Python 3.8+
  • pymongo - Per la decodifica dei file FTDC

Scanner remoto (mongobleed-remote.py)

  • Python 3.8+
  • Client SSH nativo (comandi ssh, scp)
  • Nessun pacchetto Python aggiuntivo richiesto per il funzionamento base

Installare le dipendenze

# Dipendenze dello script shell
# Debian/Ubuntu
apt-get install jq gawk gzip

# RHEL/CentOS/Fedora
dnf install jq gawk gzip

# macOS
brew install jq gawk

# Dipendenze Python (per decodifica FTDC)
pip install -r requirements.txt

Installazione

# Clona il repository
git clone https://github.com/your-org/mongobleed-detector.git
cd mongobleed-detector

# Rendi eseguibili gli script
chmod +x mongobleed-detector.sh
chmod +x mongobleed-remote.py
chmod +x ftdc-decode.py

# Installa le dipendenze Python (opzionale, per supporto FTDC)
pip install -r requirements.txt

Due modalità operative

Modalità 1: Analisi locale

Analizza i dati raccolti manualmente dagli host MongoDB.

Modalità 2: Raccolta remota

Raccoglie automaticamente dati da più host tramite SSH, poi analizza localmente.

Modalità 1: Analisi locale

Passo 1: Raccogliere i dati

Raccogli i dati dai tuoi host MongoDB e organizzali in questa struttura:

./collected-data/
├── logs/                    # Log JSON di MongoDB
│   ├── mongod.log
│   ├── mongod.log.1
│   └── mongod.log.2.gz
├── assert-counts/           # Istanze di serverStatus().asserts
│   ├── asserts-2025-01-01.json
│   └── asserts-2025-01-02.json
└── ftdc-files/              # Contenuti di diagnostic.data FTDC
    ├── metrics.2025-01-02T10-00-00Z-00000
    └── metrics.interim

Raccogliere i log

# Copia da host remoto
scp user@mongohost:/var/log/mongodb/mongod.log* ./collected-data/logs/

Raccogliere i conteggi di asserzioni

Esegui questo comando sull'host MongoDB (richiede accesso a 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

Copia il file JSON risultante in ./collected-data/assert-counts/.

Suggerimento: Esegui questo comando più volte (ad esempio, ogni ora) per stabilire una baseline e rilevare picchi.

Raccogliere i file FTDC

I file FTDC si trovano in:

  • mongod: <storage.dbPath>/diagnostic.data/ (comunemente /var/lib/mongodb/diagnostic.data/)
  • mongos: Derivato da systemLog.path (es. /var/log/mongodb/mongos.diagnostic.data/)
# Copia file FTDC (potrebbe richiedere sudo)
sudo cp /var/lib/mongodb/diagnostic.data/metrics.* ./collected-data/ftdc-files/

Passo 2: Eseguire l'analisi

# Modalità auto-scoperta - analizza tutti i dati disponibili
./mongobleed-detector.sh --data-dir ./collected-data/

# Con soglie personalizzate
./mongobleed-detector.sh --data-dir ./collected-data/ \
    -t 1440 \              # Finestra di 24 ore
    -c 50 \                # Soglia connessioni più bassa
    --spike-threshold 50   # Soglia picco più bassa

Modalità legacy (solo log)

Per compatibilità con versioni precedenti, puoi ancora analizzare i log direttamente:

# Scansiona percorsi predefiniti
./mongobleed-detector.sh

# Scansiona file di log specifici
./mongobleed-detector.sh -p /percorso/dei/log/*.json

# Modalità forense (analizza più host)
./mongobleed-detector.sh --forensic-dir /prove/

Modalità 2: Raccolta remota

Raccogli automaticamente dati da più host e analizza:

# Crea file hosts
cat > hosts.txt << EOF
mongo-prod-01.example.com
mongo-prod-02.example.com
mongo-staging.example.com
EOF

# Raccogli e analizza
./mongobleed-remote.py --hosts-file hosts.txt --user admin --output-dir ./collected-data/

Opzioni dello scanner remoto

# Usa una chiave SSH specifica
./mongobleed-remote.py --hosts-file hosts.txt --user admin --key ~/.ssh/mongodb_key
Scarica lo strumento