
Este script se utiliza para identificar servicios de MongoDB que están expuestos en la red y permiten intercambios de protocolo no autenticados.
mongo_exposure_scanner.py
Verifica Python:
python3 --version
| Archivo | Propósito |
|---|---|
mongo_scanner.py | Script de escaneo |
targets.txt | Hosts y puertos objetivo |
mongo_exposed_targets.txt | Resultados del escaneo (creado automáticamente) |
targets.txt)Formatos admitidos:
# Solo host (se usan puertos por defecto)
10.99.1.52
# Host con puerto específico
mongo.example.com:3717
# Múltiples puertos
192.168.1.10:27017,28017
# Rango de puertos
172.16.0.20:27017-27030
Notas:
# se ignoranEjecuta el escáner:
python3 mongo_scanner.py
El script solicitará:
Enter target file name (default: targets.txt):
Opciones:
targets.txtprod_mongo.txtpython3 mongo_scanner.py
Enter target file name (default: targets.txt): prod_mongo.txt
[*] Using target file: prod_mongo.txt
[*] Total host:port pairs: 4
[*] Concurrency: 50 | Timeout: 5s
------------------------------------------------------------
[+] MongoDB OPEN: 10.99.1.52:3717
[-] 192.168.1.10:27017 - Not exposed
------------------------------------------------------------
[*] Done. Results saved to mongo_exposed_targets.txt
mongo_exposed_targets.txt
[2026-01-20 12:34:07] 10.99.1.52:3717 - Unauthenticated MongoDB exposed
[2026-01-20 12:34:07] dds-d9j6c3a7096ded641.mongodb.ap-southeast-5.rds.aliyuncs.com:3717 - Unauthenticated MongoDB exposed
| Estado | Significado |
|---|---|
MongoDB OPEN |
El servicio MongoDB respondió a hello |
Unauthenticated MongoDB exposed | El handshake permitió sin autenticación |
Not exposed | No es MongoDB o autenticación/conexión bloqueada |
Connection refused / timeout | Servicio no alcanzable |