
Exploiting misconfigured firebase databases
Ausnutzung von anfälligen/falsch konfigurierten Firebase Datenbanken
Nicht standardmäßige Python-Module:
Wenn die folgenden Befehle erfolgreich ausgeführt werden, können Sie das Skript verwenden:
git clone https://github.com/Turr0n/firebase.git
cd firebase
pip install -r requirements.txt
python3 firebase.py [-h] [--dnsdumpster] [-d /path/to/file.htm] [-o results.json] [-l /path/to/file] [-c 100] [-p 4]
Argumente:
-h Zeigt die Hilfemeldung an
-d Absoluter Pfad zur heruntergeladenen HTML-Datei.
-o Name der Ausgabedatei. Standard: results.json
-c Durchsucht Domains in den Top-1M von Alexa. Legen Sie fest, wie viele Domains durchsucht werden sollen, z.B. 100. Bis zu 1.000.000.
-p Anzahl der auszuführenden Prozesse. Standard: 1
-l Pfad zu einer Datei, die die zu durchsuchenden DBs enthält. Ein DB-Name pro Zeile. Diese Option kann nicht mit -d oder -c verwendet werden.
--dnsdumpster Verwenden Sie die DNSDumpster-API, um DBs zu sammeln
--just-v Ignoriere "nicht anfällige" DBs
--amass Pfad zur Ausgabedatei eines amass-Scans ([-o]-Argument)
Beispiel:
python3 firebase.py -p 4 -f results_1.json -c 150 --dnsdumpster Dies sucht die ersten 150 Domains in der Alexa-Datei sowie die von DNSDumpster bereitgestellten DBs. Die Ergebnisse werden in results_1.json gespeichert und das gesamte Skript wird mit 4 parallelen Prozessen ausgeführt.
Das Skript erstellt eine JSON-Datei mit den gesammelten anfälligen Datenbanken und deren gedumpten Inhalten. Jede Datenbank hat einen Status:
Für bessere Ergebnisse besuchen Sie pentest-tools.com und geben Sie im Subdomain-Scanner die folgende Domain ein: firebaseio.com. Sobald der Scan abgeschlossen ist, speichern Sie die HTML-Seite (STRG+S) und verwenden Sie das Argument -d [Pfad]. Dies ermöglicht es dem Skript, die von diesem Dienst entdeckten Subdomains zu analysieren. Weitere Subdomain-Crawler werden möglicherweise unterstützt.
Jetzt unterstützen wir den amass Scanner von @caffix! Durch das Ausführen eines beliebigen Scans mit diesem Tool gegen firebaseio.com mit dem Argument -o kann das Skript die Ausgabedatei verarbeiten und nach den entdeckten DBs suchen.
Firebase-DBs funktionieren mit dieser Struktur: https://[DB-Name].firebaseio.com/. Wenn Sie das Argument -l [Pfad] verwenden, muss die bereitgestellte Datei einen [DB-Name] pro Zeile enthalten, zum Beispiel:
airbnb
twitter
microsoft
Mit dieser Datei werden diese DBs überprüft: https://airbnb.firebaseio.com/.json, https://twitter.firebaseio.com/.json, https://microsoft.firebaseio.com/.json
Dieses Skript basiert stark auf der Arbeit des Mobile Threat Teams von appthority. Alle Anerkennung für die Forschung gebührt ihnen.
Um die Domains aus der Datei mit den 1 Million Top-Domains von Alexa herunterzuladen, wird das Skript von @evilpacket verwendet.