GCP - Firebase Enum
Reading time: 4 minutes
tip
Aprenda e pratique Hacking AWS:HackTricks Training AWS Red Team Expert (ARTE)
Aprenda e pratique Hacking GCP: HackTricks Training GCP Red Team Expert (GRTE)
Aprenda e pratique Hacking Azure:
HackTricks Training Azure Red Team Expert (AzRTE)
Support HackTricks
- Confira os planos de assinatura!
- Junte-se ao đŹ grupo do Discord ou ao grupo do telegram ou siga-nos no Twitter đŠ @hacktricks_live.
- Compartilhe truques de hacking enviando PRs para o HackTricks e HackTricks Cloud repositĂłrios do github.
Firebase
O Firebase Realtime Database Ă© um banco de dados NoSQL hospedado na nuvem que permite armazenar e sincronizar dados entre seus usuĂĄrios em tempo real. Saiba mais.
Enum NĂŁo Autenticado
Alguns endpoints do Firebase podem ser encontrados em aplicativos mĂłveis. Ă possĂvel que o endpoint do Firebase utilizado esteja mal configurado, concedendo privilĂ©gios a todos para ler (e escrever) nele.
Esta Ă© a metodologia comum para pesquisar e explorar bancos de dados do Firebase mal configurados:
- Obtenha o APK do aplicativo, vocĂȘ pode usar qualquer uma das ferramentas para obter o APK do dispositivo para este POC.
VocĂȘ pode usar âAPK Extractorâ https://play.google.com/store/apps/details?id=com.ext.ui&hl=e - Decompile o APK usando apktool, siga o comando abaixo para extrair o cĂłdigo-fonte do APK.
- VĂĄ para o res/values/strings.xml e procure por isso e busque pela palavra-chave âfirebaseâ
- VocĂȘ pode encontrar algo como esta URL âhttps://xyz.firebaseio.com/â
- Em seguida, vå para o navegador e navegue até a URL encontrada: https://xyz.firebaseio.com/.json
- 2 tipos de respostas podem aparecer:
- âPermissĂŁo Negadaâ: Isso significa que vocĂȘ nĂŁo pode acessĂĄ-lo, entĂŁo estĂĄ bem configurado
- Resposta ânullâ ou um monte de dados JSON: Isso significa que o banco de dados Ă© pĂșblico e vocĂȘ pelo menos tem acesso de leitura.
- Nesse caso, vocĂȘ pode verificar os privilĂ©gios de escrita, um exploit para testar os privilĂ©gios de escrita pode ser encontrado aqui: https://github.com/MuhammadKhizerJaved/Insecure-Firebase-Exploit
Nota interessante: Ao analisar um aplicativo mĂłvel com MobSF, se ele encontrar um banco de dados do Firebase, verificarĂĄ se este estĂĄ disponĂvel publicamente e notificarĂĄ.
Alternativamente, vocĂȘ pode usar Firebase Scanner, um script em python que automatiza a tarefa acima, conforme mostrado abaixo:
python FirebaseScanner.py -f <commaSeperatedFirebaseProjectNames>
Enum Autenticado
Se vocĂȘ tiver credenciais para acessar o banco de dados do Firebase, pode usar uma ferramenta como Baserunner para acessar mais facilmente as informaçÔes armazenadas. Ou um script como o seguinte:
#Taken from https://blog.assetnote.io/bug-bounty/2020/02/01/expanding-attack-surface-react-native/
#Install pyrebase: pip install pyrebase4
import pyrebase
config = {
"apiKey": "FIREBASE_API_KEY",
"authDomain": "FIREBASE_AUTH_DOMAIN_ID.firebaseapp.com",
"databaseURL": "https://FIREBASE_AUTH_DOMAIN_ID.firebaseio.com",
"storageBucket": "FIREBASE_AUTH_DOMAIN_ID.appspot.com",
}
firebase = pyrebase.initialize_app(config)
db = firebase.database()
print(db.get())
Para testar outras açÔes no banco de dados, como escrever no banco de dados, consulte a documentação do Pyrebase4 que pode ser encontrada aqui.
Acessar informaçÔes com APPID e API Key
Se vocĂȘ descompilar o aplicativo iOS e abrir o arquivo GoogleService-Info.plist
e encontrar a API Key e o APP ID:
- API KEY AIzaSyAs1[...]
- APP ID 1:612345678909:ios:c212345678909876
VocĂȘ pode ser capaz de acessar algumas informaçÔes interessantes
Requisição
curl -v -X POST "https://firebaseremoteconfig.googleapis.com/v1/projects/612345678909/namespaces/firebase:fetch?key=AIzaSyAs1[...]" -H "Content-Type: application/json" --data '{"appId": "1:612345678909:ios:c212345678909876", "appInstanceId": "PROD"}'
ReferĂȘncias
- âhttps://blog.securitybreached.org/2020/02/04/exploiting-insecure-firebase-database-bugbounty/â
- âhttps://medium.com/@danangtriatmaja/firebase-database-takover-b7929bbb62e1â
tip
Aprenda e pratique Hacking AWS:HackTricks Training AWS Red Team Expert (ARTE)
Aprenda e pratique Hacking GCP: HackTricks Training GCP Red Team Expert (GRTE)
Aprenda e pratique Hacking Azure:
HackTricks Training Azure Red Team Expert (AzRTE)
Support HackTricks
- Confira os planos de assinatura!
- Junte-se ao đŹ grupo do Discord ou ao grupo do telegram ou siga-nos no Twitter đŠ @hacktricks_live.
- Compartilhe truques de hacking enviando PRs para o HackTricks e HackTricks Cloud repositĂłrios do github.