Os escribo este post para compartir con vosotros una herramienta que he escrito. Se trata de un script en python que explota bases de datos Firebase vulnerables/mal configuradas. Me he inspirado en la investigación de appthority y el posterior artículo de thehackernews.
Mi
script en python adopta un enfoque diferente al utilizado por los
investigadores anteriormente citados: mediante la api (no oficial) de dnsdumpster y el escáner online disponible en pentest-tools se obtienen diversos subdominios de firebaseio.com
asociados con sus correspondientes bases de datos. Algunas de estas
bases de datos, quizás a propósito o quizás no, son accesibles sin
requerir ningún tipo de autenticación, tal y como descubrieron en
appthority.
Otra opción más
interesante que he implementado es intentar escanear DBs de firebase
mediante el recopilatorio del millón de sitios web más destacados de
Alexa.
Requisitos (módulos python no-estándar):
Instalación:
git clone https://github.com/Turr0n/firebase.git
cd firebase
pip install -r requirements.txt
Uso:
python3 firebase.py [-h] [--dnsdumpster] [-d /path/to/file.htm] [-o results.json] [-l /path/to/file] [-c 100] [-p 4]
Argumentos:
-h Show the help message
-d Absolute path to the downloaded HTML file.
-o Output file name. Default: results.json
-c Crawl for domains in the top-1m by Alexa. Set how many domains to crawl, for example: 100. Up to 1000000
-p How many processes to execute. Default: 1
-l Path to a file containing the DBs to crawl. One DB name per line. This option can't be used with -d or -c
--dnsdumpster Use the DNSDumpster API to gather DBs
--just-v Ignore "non-vulnerable" DBs
--amass Path of the output file of an amass scan ([-o] argument)
Ejemplos:
python3 firebase.py -p 4 -f results_1.json -c 150 --dnsdumpster
Esto buscará los primeros 150 dominios en Alexa así como los DB proporcionados por DNSDumpster. Los resultados se guardarán en results_1.json y todo el script se ejecutará usando 4 procesos en paralelo.
El script creará un archivo json que contiene las bases de datos vulnerables compiladas y sus contenidos. Cada base de datos tiene un estado:
El script creará un archivo json que contiene las bases de datos vulnerables compiladas y sus contenidos. Cada base de datos tiene un estado:
- -2: DB no existe
- -1: significa que no es vulnerable
- 0: puede ser posible una mayor explotación
- 1: vulnerable
Para
obtener mejores resultados es recomendable irse a pentest-tools.com y en el escáner
de subdominios introducir el siguiente dominio: firebaseio.com. Una
vez que finaliza el escaneo, guardar el HTML de la página (CRL + S) y
usar el argumento -d [ruta], esto permitirá que el script analice los
subdominios descubiertos por ese servicio. Es posible que otros escáneres de subdominios sean compatibles.
Ahora demás soporta el escáner Amass de @caffix. Al ejecutar cualquier análisis con esa herramienta contra firebaseio.com utilizando el argumento -o, el script podrá tratar el archivo de salida y rastrear los DB descubiertos.Los DB de Firebase funcionan con esta estructura: https://[nombre de DB].firebaseio.com/. Si estás utilizando el argumento -l [ruta], el archivo suministrado debe contener un [nombre DB] por línea, por ejemplo:
Usando ese archivo buscará https://airbnb.firebaseio.com/.json, https://twitter.firebaseio.com/.json, https://microsoft.firebaseio.com/.json
Ahora demás soporta el escáner Amass de @caffix. Al ejecutar cualquier análisis con esa herramienta contra firebaseio.com utilizando el argumento -o, el script podrá tratar el archivo de salida y rastrear los DB descubiertos.Los DB de Firebase funcionan con esta estructura: https://[nombre de DB].firebaseio.com/. Si estás utilizando el argumento -l [ruta], el archivo suministrado debe contener un [nombre DB] por línea, por ejemplo:
airbnb
twitter
microsoft
Usando ese archivo buscará https://airbnb.firebaseio.com/.json, https://twitter.firebaseio.com/.json, https://microsoft.firebaseio.com/.json
Podéis encontrar el script y más detalles de su funcionamiento en mi Github: https://github.com/Turr0n/firebase
Contribución gracias a Francesc Herrera (Turr0n)
pd. Si también quieres compartir tu herramienta envianos un correo a hackplayers_at_ymail (con "y" griega) o contáctanos a través de cualquiera de nuestras RR.SS.
Comentarios
Publicar un comentario