Al giorno d’oggi per eseguire attacchi informatici le alternative alla classica workstation  sono svariate: tablet, smartphone,  raspberry fino ad arrivare ai droni.
Naturalmente ci sono anche i lati “white” della medaglia, ad esempio chi lavora nell’ IT security può trarre vantaggio nel poter testare applicativi o infrastrutture comodamente dal proprio device portatile.L’azienda Offensive Security, nota per la famosa Kali Linux e per le prestigiosi certificazioni, ha ideato una distribuzione di penetration testing appositamente per i dispositivi mobile: Kali Linux NetHunter.
Da specifiche la distribuzione NetHunter viene rilasciata per i device Nexus 4/5/6/7/9/10 e OnePlus One Phone, ma grazie al lavoro di jcadduno è possibile installare un kernel compatibile con i device Galaxy S5 e Galaxy Note 3.
I sorgenti del kernel, naturalmente open-source , sono scaricabili all’indirizzo github.
Possedendo un Samsung Galaxy S5 (klte), spinto dalla curiosità di provare NetHunter ho deciso di scrivere questo post per condividere la mia esperienza nella speranza che possa essere d’aiuto.

Premessa

Il post verrà aggiornato via via che troverò bug o informazioni interessanti da pubblicare, detto questo ci tengo a precisare quattro punti fondamentali:

  1. Non mi ritengo responsabile per qualsiasi danno che potreste recare al vostro dispositivo o verso terzi bla bla bla ecc…
  2. Per installare NetHunter sarà necessario eseguire il root del vostro dispositivo così da far decadere la garanzia Samsung!!!!
  3. Per installare NetHunter sarà necessario eseguire un wipe completo del dispositivo, quindi verrà cancellato TUTTO il contenuto.
  4. Per utilizzare i tools wifi di NetHunter sarà necessario utilizzare un dongle usb Wifi e un cavetto/convertitore usb OTG

La procedura d’installazione che ho seguito a grandi linee è consultabile nel forum xda-developers: Kali NetHunter for the Galaxy S5

Questo post vuole essere, almeno per adesso, solo una linea guida.
Non ho molta esperienza nel rooting o modding dei device Android ma ho cercato di riportare tutti gli articoli e video più interessanti che ho seguito per raggiungere lo scopo.

Prerequisiti

  1. Samsung Galaxy S5 klte SMG900F
  2. Microsd (memoria espansione) con almeno 2GB liberi
  3. Driver Samsung per Windows
  4. Windows 7/8/10
  5. Cavetto micro-usb -> USB per collegare lo smartphone al pc
  6. Ultima versione Odin (Android ROM Flashing ROM)
  7. Ultima versione Recovery Rom TWRP 3.x
  8. Ultima versione CF-Auto-Root
  9. Ultima versione CyanogenMod 13.x per Samsung S5 klte
  10. Ultima versione Google Apps o Open GApps
  11. Ultima versione NetHunter 3 kernel-nethunter-klte e nethunter-generic-armhf-kalifs-full-rolling

Operazioni preinstallazione

La prima azione da fare è quella di farsi un bel backup dei dati personali presenti nel dispositivo.
Esistono vari tipi di programmi e applicazioni, scegliete quello che preferite.
Fatto il backup scaricate e installate i driver Samsung per Windows (vedi punto 3 prerequisiti).
Adesso che il vostro sistema Windows è in grado di rilevare il dispositivo Samsung, dovete abilitare:

  1. Opzione sviluppatore (Video|Testo)
  2. Debug USB (Video|Testo)

Installazione Recovery Manager

TWRP è una recovery rom che permette di eseguire varie operazioni nella fase di boot del telefono, ovvero prima che parta il sistema Android.
Tra le sue moltissime utilità quella che preferisco è la possibilità di fare il backup completo e restore del dispositivo, questa tecnica di salvataggio viene chiamata: nandroid backup.Backup a parte, TWRP vi servirà per scrivere la memoria interna con le rom desiderate (ROM flashing) prelevandole direttamente dalla memoria d’espansione del telefono (microSD).
Prima di iniziare con le varie operazioni dovrete scaricare l’ultima versione di Odin (punto 6 prerequisiti) e TWRP (punto 7 prerequisiti).
Odin è il software che vi permetterà di sostituire la stock recovery del telefono Samsung con la ROM TWRP.
Ecco gli step che dovrete eseguire:

  1. Spengere il telefono ed avviare Android in “Download Mode” (Video|Testo)
  2. Eseguire il ROM flashing di TWRP tramite Odin (Video|Testo)

Root Samsung Galaxy S5

Per acquisire i diritti di root e installare una Custom ROM ho utilizzato metodo Odin + CF-Auto-Root.
Nel momento in cui sto scrivendo  l’articolo la versione stock di Android più aggiornata per il Samsung S5 è la 5.0 (Lollipop).
Nella pagina autoroot chainfire, cercate all’interno della tabella il modello “SM-G900F” e a seconda del proprio Build ID scaricate il pacchetto necessario.
Il Build ID lo troverete nel menù informazioni del telefono (Opzioni -> Info Telefono).
Ecco gli step che dovrete eseguire:

  1. Spengere il telefono ed avviare Android in “Download Mode” (Video|Testo)
  2. Collegare il telefono al pc ed eseguire il root (Video|Testo)

Installazione Custom ROM CyanogenMod + Google Apps

Prima di cominciare ad installare la custom ROM, se non è stato già fatto, eseguire il backup del dispositivo dato che sarà necessario effettuare un wipe completo.
Sia il wipe che l’installazione della rom e delle google apps verranno effettuati dalla modalità recovery (TWRP).
Ecco gli step che dovrete eseguire:

  1. Collegare il dispositivo al pc e copiare gli archivi compressi di CyanogenMod 13 e Google apps dentro la memoria esterna (microSD).
  2. Spengere il dispositivo e riavviarlo in modalità recovery. (Video|Testo)
  3. Da TWRP eseguire il wipe completo (Video|Testo)
  4. Da TWRP installare la custom ROM CyanogenMod 13 (Video|Testo)
  5. Da TWRP installare le Google apps (Video|Testo)
  6. Riavviare il dispositivo ed effettuare il primo accesso a CyanogenMod

Installazione kernel NetHunter

L’installazione del kernel va eseguita sempre con TWRP nelle stesse modalità d’installazione delle Google Apps:

  1. Collegare il dispositivo al pc e copiare l’archivio kernel-nethunter-klte dentro la memoria esterna (microSD).
  2. Spengere il dispositivo e riavviarlo in modalità recovery.
  3. Da TWRP installare il kernel NetHunter.
  4. Riavviare il dispositivo e controllare se il boot avviene in maniera corretta.

Installazione pacchetto completo NetHunter

L’installazione del pacchetto completo NetHunter va eseguita sempre con TWRP nelle stesse modalità d’installazione delle Google Apps:

  1. Collegare il dispositivo al pc e copiare l’archivio nethunter-generic-armhf-kalifs-full-rolling dentro la memoria esterna (microSD).
  2. Spengere il dispositivo ed avviarlo in modalità recovery
  3. Da TWRP installare il pacchetto nethunter-generic-armhf-kalifs-full-rolling
  4. Riavviare il dispositivo e controllare se il boot avviene in maniera corretta.

Operazioni postinstallazione

Se tutto è andato a buon fine non vi resta che eseguire l’applicazione “NetHunter” in modo da preparare l’ambiente chroot per il sistema.
Appena cliccato sull’icona apparirà la richiesta dell’app SuperSU che vi chiederà i permessi per eseguire NetHunter come super user, naturalmente dovrete acconsentire.

Wi-fi

Come anticipato all’inizio dell’articolo, il chipset wifi a bordo del Samsung Galaxy S5 non supporta la modalità injection e monitor.
Per utilizzare i vari software come wifite o aircrack-ng dovrete utilizzare un dongle wifi usb che supporti le modalità sopraelencate e un adattatore/cavo Micro USB to USB OTG.

Aggiornamenti CyanogenMod

Quando installerete gli aggiornamenti di CyanogenMod sul vostro Samsung, il custom kernel e il SuperSU di NetHunter non saranno più presenti.
Per rendere il ripristinare tutto i passaggi sono:

  1. Scaricare dal sito idlekernel l’ultima versione del kernel-nethunter-klte-marshmallow e update-nethunter-generic-armhf
  2. Collegare il telefono al pc e copiare i precedenti file nella memoria microSD esterna
  3. Riavviare il telefono in modalità recovery (TWRP) ed eseguire un backup del dispositivo
  4. Avviare CyanogenMod ed eseguire l’aggiornamento di sistema
  5. Riavviare il telefono in modalità recovery (TWRP) ed installare i pacchetti kernel-nethunter-klte-marshmallow e update-nethunter-generic-armhf
  6. Entrare nel sistema Android ed eseguire l’applicazione NetHunter per riabilitare l’ambiente chroot

Aggiornamenti NetHunter

I passaggi da eseguire per installare gli aggiornamenti sono:

  1. Scaricare dal sito idlekernel l’ultima versione del pacchetto update-nethunter-generic-armhf
  2. Collegare il telefono al pc e copiare il precedente file nella memoria microSD esterna
  3. Riavviare il telefono in modalità recovery (TWRP) ed eseguire un backup del dispositivo
  4. Da TWRP eseguire un dalvik cache wipe
  5. Da TWRP installare il pacchetto update-nethunter-generic-armhf

Problemi e Fix

Questa sezione è dedicata ai problemi già noti o riscontrati dal sottoscritto durante l’utilizzo del sistema.
Se riscontrate un problema vi consiglio di provare riprodurlo con il sistema pulito, ovvero senza NetHunter, tenete di conto che la distribuzione CyanogenMod 13 è una versione nightly quindi da considerare come unstable.

  1. L’installazione su CyanogenMod 12 sembra non funzionare.
    Al contrario da come viene specificato sul forum del progetto, ho riscontrato un grosso problema nell’installare NetHunter sulla versione CyanogenMod 12 di Android.
    Riesco ad installare il custom kernel tranquillamente ma dopo l’installazione del pacchetto nethunter-generic-armhf-kalifs-full-rolling entro in un loop al momento del boot.
  2. **USB Keyboard & VNC
    **Google Keyboard, AOSP Keyboard, CM Keyboard non funzionano correttamente col VNC client, utilizzare Hacker’s Keyboard.
  3. **Applicazione Terminale
    **Non funzionano correttamente le applicazioni tipo vim o nano in full-screen, eseguire il comando “resize” ogni volta che si apre un nuovo terminale.
  4. **Problema Fotocamera
    **Le fotocamere dello smartphone diventano inutilizzabili dopo un periodo di tempo non definito dall’accensione del dispositivo.
    Ho riscontrato il problema con le app Whatsapp, Twitter, Camera, Instagram ecc…
    Reinstallando una versione pulita di CyanogenMod il problema NON si ripresenta, quindi credo che la causa sia da additare al pacchetto nethunter-generic-armhf-kalifs-full-rolling.  [UPDATE 01-06-2016 – Il problema pare fixato ]

Foto di rito 😀

nethunter

nethunter