fbpx

Creare sistema ad-hoc per analizzare applicazioni Android

In questo articolo andrò a spiegare passo passo come creare un sistema per analizzare le applicazioni Android, sia che si tratti di analisi statica/dinamica, sia per effetturare penetration test su di esse.

Io utilizzerò un sistema operativo Linux a 64 bit, in quanto raccomandato (ma non obbligatorio) per questo articolo. Se non lo avete potete creare una macchia virtuale (con VirtualBox) installando un qualsiasi sistema Linux. Per chi è alle prime armi consiglio Ubuntu. Ho avuto parecchi problemi ad installare AVD su macchine a 32 bit, per cui vi consiglio di sceglierle a 64 bit. Dò per scontato che il sistema abbia Java installato, per chi non lo avesse il download si trova qui.

Installazione Android Manager

 Disclaimer: l’interfaccia grafica è stata deprecata, la nuova guida per la creazione di un AVD è presente a questo indirizzo 

Collegatevi ora all’indirizzo AndroidStudio e scaricate la versione che si adatta al vostro sistema operativo; nel mio caso utilizzerò la versione, appunto, per Linux.

Dopo averla installata, andando nella cartella d’installazione (/home/nomeutente/Android/Sdk/tools/) bisognerà aprire il file android, il quale ci permetterà di installare i pacchetti e gli aggiornamenti che potranno servirci.

andriodtool1

Android SDK Manager

Scaricate la versione Android che preferite, io ne ho scelte un pò, ma potete scegliere quelle che volete. Finito il download e l’installazione andate sul menu a tendina in alto a sinstra, Tools–>Manage AVD. In questo modo potrete ricreare l’ambiente che volete testare per le applicazioni.

androidnexus

Menu per creare un nuovo dispositivo virtuale

 

Se non viene rilevato nessun problema, il dispositivo è pronto per essere avviato

androidnexus2

Dispositivo Android virtuale

Applicazioni vulnerabili

Al momento non so quale applicazione Android andrò ad analizzare nei prossimi articoli, ma alcune che potete già scaricare sono:

  • OWASP GoatDroid: ambiente completo per imparare la sicurezza nel mondo Android. A quanto pare sembra un progetto poco seguito ad oggi;
  • AndroidInsecureBank: applicazione vulnerabile da poter sfruttare e penetrare;
  • DIVA Android: Dannata Insicura e Vulnerabile Applicazione per Android.

Nel caso ne conosceste altre, contattatemi e provvederò ad aggiungerle alla lista.

Comandi principali di ADB

adb è un tool per la gestione e il penetration testing di applicazioni. Si trova, preinstallato, nel pacchetto Android Studio. Per aprirlo basta andare nella cartella platform-tools ed eseguirlo da terminale

Help di ADB

Per vedere i dispositivi attualmente caricati

root@kali:~/Android/Sdk/platform-tools# ./adb devices
List of devices attached
emulator-5554 device

Per prendere la shell del dispositivo online, il comando è invece

root@kali:~/Android/Sdk/platform-tools# ./adb shell
generic_x86:/ $ whoami
shell

Come potete vedere, non ho i permessi di root. Per averli, basta riavviare adb con il comando root:

Shell con i permessi di root

Dopo che si è dentro il sistema, per vedere i pacchetti installati in esso, il comando è

generic_x86:/ # pm list packages
package:com.android.smoketest
package:com.android.cts.priv.ctsshim
package:com.example.android.livecubes
package:com.android.providers.telephony
. . . . . . .

Spostare file tra Android e Computer

I comandi sono due, push e pull.

Con push vengono copiati i file dal computer al sistema. L’utilizzo è, ad esempio

root@kali:~/Android/Sdk/platform-tools# ./adb push /root/Desktop/filedacopiare.png /data/local/tmp

Esempio di push

 

Con pull, i dati vengono copiati dal sistema Android al computer. L’utilizzo è lo stesso di prima

Esempio di pull

Questi comandi sono utili quando abbiamo bisogno di file o applicazioni che scarichiamo dal nostro computer o, viceversa, abbiamo creato log da Android e vogliamo analizzarli sul nostro dispositivo.

Come scaricare un file Apk

Le modalità per avere un file Apk sono diverse, alcune sono:

  1. Collegarsi al sito APK Downloader ed inserire l’url dell’app (molte volte da errore);
  2. Scaricare e installare l’app di interesse sullo smartphone ed utilizzare un’altra app che estragga il file .apk  (si trovano facilmente nello store);
  3. Utilizzare lo script Google Play Crawler.

Il funzionamento dell’ultimo è molto semplice:

  1. Modificate il file “crawler.conf” inserendo i vostri dati di autenticazione per google play. Sono necessasi solo email, password e Android ID. Per reperire quest’ultimo, le possibilità sono diverse:
    1. Digitare *#*#8255#*#* sul proprio smartphone;
    2. Scaricare un’applicazione come “Device ID” che ritorna il valore dello stesso.
  2. Digitate java -jar googleplaycrawler-0.3.jar -f crawler.conf download nomeapplicazione.

Ricerca e download di un applicazione

Installare applicazione su AVD

Il comando è

./adb install nomeapplicazione

Quindi, con l’app appena scaricata

root@kali:~/Android/Sdk/platform-tools# ./adb install com.roidapp.photogrid.apk
Success

Conclusioni

Penso e spero di aver introdotto i maggiori comandi per gestire un Android virtuale sul proprio computer. Penso che non passerò, per ora, ad IOS perchè non ne conosco l’architettura e neanche il linguaggio con cui sono scritte le applicazioni. Nei prossimi articoli passeremo ad introdurre l’architettura Android e più avanti il penetration testing su mobile.

Lascia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *