Drozer Tutorial
Suggerimento per bug bounty: iscriviti a Intigriti, una piattaforma premium per bug bounty creata da hacker, per hacker! Unisciti a noi su https://go.intigriti.com/hacktricks oggi e inizia a guadagnare taglie fino a $100,000!
APK da testare
Sieve (da mrwlabs)
Parti di questo tutorial sono state estratte dalla documentazione pdf di Drozer.
Installazione
Installa il client Drozer all'interno del tuo host. Scaricalo dalle ultime versioni rilasciate.
Scarica e installa l'APK di drozer dalle ultime versioni. Al momento è questo.
Avvio del server
L'agente è in esecuzione sulla porta 31415, è necessario eseguire il port forwarding per stabilire la comunicazione tra il Cliente Drozer e l'Agente, ecco il comando da utilizzare:
Infine, avvia l'applicazione e premi il pulsante "ON" in basso.
E connettiti ad essa:
Comandi Interessanti
Comandi | Descrizione |
Help MODULE | Mostra l'aiuto del modulo selezionato |
list | Mostra un elenco di tutti i moduli drozer che possono essere eseguiti nella sessione corrente. Questo nasconde i moduli per i quali non si hanno le autorizzazioni appropriate per eseguirli. |
shell | Avvia una shell interattiva Linux sul dispositivo, nel contesto dell'Agente. |
clean | Rimuove i file temporanei memorizzati da drozer sul dispositivo Android. |
load | Carica un file contenente comandi drozer ed eseguili in sequenza. |
module | Trova e installa moduli drozer aggiuntivi da Internet. |
unset | Rimuove una variabile nominata che drozer passa a qualsiasi shell Linux che avvia. |
set | Memorizza un valore in una variabile che verrà passata come variabile ambientale a qualsiasi shell Linux avviata da drozer. |
shell | Avvia una shell interattiva Linux sul dispositivo, nel contesto dell'Agente. |
run MODULE | Esegue un modulo drozer. |
exploit | Drozer può creare exploit da eseguire nel dispositivo. |
payload | Gli exploit necessitano di un payload. |
Pacchetto
Trova il nome del pacchetto filtrando per parte del nome:
Informazioni di base del pacchetto:
Leggi Manifest:
Superficie di attacco del pacchetto:
Attività: Forse puoi avviare un'attività e aggirare qualche tipo di autorizzazione che dovrebbe impedirti di lanciarla.
Provider di contenuti: Forse puoi accedere a dati privati o sfruttare qualche vulnerabilità (SQL Injection o Path Traversal).
Servizi:
is debuggable: Ulteriori informazioni
Attività
Il valore "android:exported" di un componente di attività esportato è impostato su "true" nel file AndroidManifest.xml:
Elencare le attività esportate:
Avviare attività:
Forse puoi avviare un'attività e bypassare qualche tipo di autorizzazione che dovrebbe impedirti di lanciarla.
Puoi anche avviare un'attività esportata da adb:
PackageName è com.example.demo
Nome attività esportata è com.example.test.MainActivity
Fornitori di contenuti
Questo post era troppo grande per essere qui, quindi puoi accedervi nella sua pagina dedicata qui.
Servizi
Un servizio esportato è dichiarato all'interno del Manifest.xml:
All'interno del codice controlla la funzione **handleMessage
** che riceverà il messaggio:
Elenco dei servizi
Interagire con un servizio
Esempio
Dai un'occhiata all'aiuto di drozer per app.service.send
:
Nota che invierai prima i dati all'interno di "msg.what", poi "msg.arg1" e "msg.arg2", dovresti controllare nel codice quali informazioni vengono utilizzate e dove.
Utilizzando l'opzione --extra
puoi inviare qualcosa interpretato da "msg.replyTo", e utilizzando --bundle-as-obj
crei un oggetto con i dettagli forniti.
Nell'esempio seguente:
what == 2354
arg1 == 9234
arg2 == 1
replyTo == object(string com.mwr.example.sieve.PIN 1337)
Ricevitori di trasmissione
Nella sezione delle informazioni di base su Android puoi vedere cos'è un Ricevitore di trasmissione.
Dopo aver scoperto questi Ricevitori di trasmissione dovresti controllare il codice di essi. Presta particolare attenzione alla funzione onReceive
poiché gestirà i messaggi ricevuti.
Rilevare tutti i ricevitori di trasmissione
Verifica i ricevitori di trasmissione di un'app
Interazioni di Broadcast
Invia un messaggio
In questo esempio sfruttando il FourGoats apk Content Provider puoi inviare un SMS arbitrario a una qualsiasi destinazione non premium senza chiedere il permesso all'utente.
Se leggi il codice, i parametri "phoneNumber" e "message" devono essere inviati al Content Provider.
È possibile eseguire il debug
Un APK di produzione non dovrebbe mai essere possibile da debuggare. Ciò significa che è possibile collegare un debugger Java all'applicazione in esecuzione, ispezionarla in tempo reale, impostare punti di interruzione, procedere passo dopo passo, raccogliere i valori delle variabili e persino modificarli. InfoSec institute ha un ottimo articolo su come approfondire quando la tua applicazione è debuggabile e iniettare codice in tempo reale.
Quando un'applicazione è debuggabile, comparirà nel Manifest:
Puoi trovare tutte le applicazioni debuggabili con Drozer:
Tutorial
Ulteriori informazioni
Suggerimento per bug bounty: iscriviti a Intigriti, una piattaforma premium per bug bounty creata da hacker, per hacker! Unisciti a noi su https://go.intigriti.com/hacktricks oggi stesso e inizia a guadagnare taglie fino a $100,000!
Last updated