Torniamo, ragazzi, alla sfida finale per il nostro settore di reverse engineering.
E questa sfida, a mio avviso, è piuttosto sorprendente perché riassume tutto ciò che abbiamo imparato
finora, non solo in questo capitolo, ma anche in quello precedente.
Diamo quindi un'occhiata.
Quindi stiamo parlando dell'applicazione bancaria insicura, che mi piace molto.
Perciò l'autore di questo libro apprezza davvero tutto il lavoro che ha svolto.
Questa sfida consiste in un APK e anche in un server web, quindi dobbiamo configurare un po' di cose prima.
Ma non preoccupatevi, non è molto quello che dobbiamo fare per iniziare.
Prima di tutto, dobbiamo installarlo sul nostro dispositivo.
Ok, nessun problema.
Ma poi abbiamo anche un server web che consiste in Python e quindi abbiamo bisogno di installare prima
alcuni moduli.
Quindi dobbiamo eseguire pip three dash ah sul testo dei requisiti nella directory indicata.
Non preoccupatevi, lo organizzeremo insieme in seguito.
Ma che tu sappia cosa sta succedendo qui.
Ok.
Dopo aver installato tutti questi requisiti, possiamo avviare il nostro server web, semplicemente
con le tre API di Python.
L'ho convertita in Python 3, perché l'applicazione originale è stata progettata per Python 2.
E questo non funziona più sui sistemi moderni, perché Python 2 è ormai obsoleto.
Per questo motivo ho già provveduto al porting per voi.
Ok.
Dopo aver installato tutti questi requisiti, possiamo semplicemente eseguire questo python tre in Python
e poi il server web è in esecuzione e la connessione mobile o l'applicazione mobile può connettersi al
nostro server web qui.
Questi sono i passi che dobbiamo fare.
Ok, ora la domanda è: abbiamo diverse configurazioni e quale configurazione dovremmo usare in questo momento per questa applicazione.
Voglio dire, abbiamo il nostro emulatore, abbiamo un dispositivo come questo qui e potremmo avere anche questa macchina
migliore, questa macchina virtuale x86, cosa dovremmo usare in quale configurazione per farlo?
In questo momento, a mio parere, l'idea migliore è quella di utilizzare l'emulatore, perché questa applicazione è stata progettata
per funzionare al meglio nell'emulatore.
C'è anche qualche interazione con gli SMS e cose del genere che potrebbero non funzionare sulla macchina virtuale x86.
Potete anche utilizzare il vostro dispositivo, ma in tal caso utilizzate un dispositivo di prova.
Questa applicazione richiede molte autorizzazioni.
E sì, questo potrebbe essere qualcosa che non si vuole eseguire sul proprio modulo privato.
La macchina virtuale x86 potrebbe anche funzionare, ma non ha alcune funzioni, ad esempio la funzione SMS o
altre cose.
Quindi, se state eseguendo il sistema o l'emulatore su tutto il sistema, scegliete l'emulatore.
L'esperienza d'uso è assolutamente fantastica.
Anche se si utilizza una macchina virtuale, è possibile utilizzare l'emulatore perché non è necessario
interagire molto con questa applicazione.
E infine, ma non meno importante, c'è questo dispositivo di test.
Bene, ora alcune note di sicurezza.
Insomma, questi punti dovrebbero essere chiari, ma comunque ricapitoliamo qui.
Cioè, stiamo eseguendo codice Python sul nostro sistema e non abbiamo scritto il codice Python su noi stessi.
Pertanto, dovremmo dare almeno una rapida occhiata a questo aspetto.
Tuttavia, dovremmo sempre utilizzare solo apparecchiature di prova.
Quindi un quaderno di prova, una macchina virtuale di prova o un dispositivo di prova.
Altrimenti, se si mischiano i test con le cose private, potrebbe essere assolutamente orribile.
Quindi non si sa mai cosa sta succedendo.
Non fraintendetemi, mi fido dell'autore, ma queste sono raccomandazioni generali che dovremmo tenere a mente.
E anche seguendo questa linea guida attraverso il corso, nel mio caso, in questo momento, sto usando l'intero
sistema che è in fase di test.
Pertanto, posso facilmente eseguire l'emulatore sul sistema di test, nel caso in cui vogliate ancora separare queste
cose.
Si potrebbe utilizzare una macchina virtuale in cui si esegue un'istantanea e si seleziona un adattatore solo per l'host.
Se si esegue questo emulatore su questa macchina virtuale, è super laggoso, ma funziona, quindi non è così bello.
Ma è possibile eseguire tutte queste operazioni senza che questo sia in esecuzione sull'intero sistema o senza avere un
dispositivo reale.
Nel mio caso, ora, eseguirò tutto sulla macchina virtuale, il che dimostrerà che l'esperienza
dell'utente non è così piacevole, ma funziona.
In questo modo è possibile eseguire tutte queste operazioni anche senza disporre di un dispositivo reale e senza eseguire questa operazione sull'intero
sistema.
Ok.
Va bene.
Quindi la domanda, cosa stiamo cercando e la risposta è tutto ciò di cui abbiamo parlato finora.
Questa sfida è quindi straordinaria perché riassumerà tutto ciò che abbiamo imparato finora.
Non ho fatto questi argomenti per questa sfida.
Questa sfida è stata lanciata per quanto riguarda i miei argomenti.
Quindi siamo alla ricerca di attività non sicure, ricevitori broadcast e servizi di content provider, credenziali
di accesso memorizzate all'interno e cose del genere.
Quindi questa sfida è piuttosto sorprendente perché rifletterà alcune applicazioni del mondo reale e si tratta di
configurazioni errate o di errori di codifica.
E quindi possiamo ora, o comprendiamo ora, tutto ciò che è qui a Sì.
Per sfruttarli.
Per esempio, queste attività, voglio dire, le conosciamo abbastanza bene e sì, forse troverete
dei difetti, ma potete bypassare certe caratteristiche.
Quindi, se si avvia un'altra attività, significa che l'abbiamo già aggirata con successo.
Dobbiamo capire se possiamo ancora svolgere qualche attività lì dentro, perché se questa applicazione richiede qualche set.
Ad esempio, alcune credenziali di ricerca devono essere prima decifrate.
Se si salta questa parte, l'applicazione potrebbe non funzionare più correttamente.
Ma è una cosa che dobbiamo capire.
Per quanto riguarda i fornitori di contenuti.
Ho un compito speciale per voi.
Supponiamo di essere entrati in questa applicazione, che è un'applicazione bancaria, e
di aver eseguito alcune transazioni dannose al suo interno.
C'è anche una funzione di sblocco all'interno del fornitore di contenuti e vogliamo assolutamente nascondere i nostri trucchi.
Quindi forse troverete un modo per sbarazzarvi di questi file di log, il che sarebbe assolutamente fantastico.
Infine, c'è qualcosa che non va nelle credenziali di accesso.
Quindi c'è una crittografia e potrebbero esserci anche delle credenziali di registrazione aggiuntive.
Quindi le cose da cercare sono anche nelle applicazioni del mondo reale.
Ho dato una rapida occhiata a questa applicazione e ho giocato con queste cose, ma potrebbero esserci
tonnellate di altre cose all'interno, che finora non ho visto.
Quindi, purtroppo, non possiamo parlare di tutti perché il video potrebbe durare 4 ore, eppure
nessuno vuole guardarlo.
Ma vi fornirò anche alcuni suggerimenti o funzioni aggiuntive in un foglio di calcolo separato che potrete
consultare.
Se siete bloccati in questo momento, dovreste almeno fare un tentativo.
Ora stiamo facendo questa configurazione insieme e poi potrete dare un'occhiata a questa applicazione.
Va bene.
Ok, diamo un'occhiata.
Va bene.
Eccoci tornati alla macchina virtuale Ubuntu e ora facciamo una rapida configurazione insieme.
Troverete quindi tutti questi file nell'allegato di questa sezione e questi file qui.
Questo è il server web Python e questo è l'APK per il nostro dispositivo.
Va bene.
Prima di tutto, dobbiamo avere una connessione a Internet e dobbiamo installare tutte le librerie e
gli strumenti che Python richiede in questo momento.
Quindi i tre suggerimenti per l'installazione del trattino sono requisiti.
E poi potete vedere che li ho già installati.
Bene, ora possiamo semplicemente avviare questo server web eseguendo l'API Python tre.
Come già detto, la connessione a Internet non è più necessaria.
Ok.
Questo server web Python è ora in esecuzione su tutte le interfacce che abbiamo.
Quindi vediamo.
Questo significa che non abbiamo un indirizzo IP o una fase internet in corso qui e qui.
Quindi, dove dovrebbe connettersi questo emulatore?
Questo emulatore ha una propria interfaccia di rete dal nostro studio Android.
Ci sono quindi alcune impostazioni DHCP e l'indirizzo IP è il numero 00. 2, credo.
È quindi preinstallato in questa applicazione.
Ciò significa che su questa interfaccia abbiamo questa porta 88, 88 in ascolto, che è il nostro server
web e questo, e possiamo semplicemente connetterci a questo.
Ma per poter utilizzare questa interfaccia, dobbiamo prima avviare il nostro emulatore.
Quindi facciamo questo emulatore.
E non so come si chiama.
Quindi elencate AVD.
Elenco emulatori AVD.
Elenco di questi.
No, non lo ero.
S manca oc.
Questo è il nome.
Quindi emulatore.
E poi aggiungere e il nome.
Woops.
Ancora una volta, non è più così veloce.
Ok, ora ce l'abbiamo.
L'emulatore si avvia e il nodo è già in esecuzione in una macchina virtuale in un'altra macchina virtuale.
Non è una buona idea perché devono condividere le risorse.
E anche una macchina virtuale, forse, sta lottando con questa.
Ma possiamo vedere l'emulatore Nexus qui.
Funziona perfettamente.
Quindi anche in macchina virtuale.
Ok.
Ecco il dispositivo.
E si vede.
Sì, è abbastanza bene.
Va bene.
Ora dobbiamo installare questa applicazione.
Quindi, sotto il server del laboratorio, qui abbiamo una banca sicura.
La connessione ADB deve essere stabilita subito.
Il successo e la perfezione.
Raccomando inoltre di utilizzare questo emulatore Nexus perché gli altri sono più potenti e richiedono più
risorse.
Ma non abbiamo bisogno di un emulatore potente in questo momento.
Abbiamo bisogno di alcuni concetti di base e siamo pronti a partire.
Va bene.
Avviando questa applicazione, possiamo vedere un sacco di file e media autorizzati, qualcosa di piuttosto interessante.
Dobbiamo dare un'occhiata alla scheda SD perché potrebbero esserci dei file memorizzati in una directory
pubblica.
SMS, auto, contatti interessanti, telefonate, registro e posizione continua.
E.
Questa applicazione è stata realizzata per una versione precedente.
Non sono sicuro di cosa sia in esecuzione al momento, credo Android 11, ma su questo funziona perfettamente.
È sufficiente fare clic su OK e il gioco è fatto.
Va bene.
Ora, se apriamo il server Web e lo abbiamo.
Credo che sia questo.
Sì.
Quindi mettiamo questo a sinistra.
Possiamo liberare lo schermo?
No.
Poi lo eseguiamo di nuovo in modo semplice.
Ok.
Ora abbiamo questa applicazione e un server web come attaccante.
Non abbiamo accesso a questo file di registro perché è in esecuzione sull'unico server web reale.
Possiamo interagire con l'applicazione solo sul dispositivo.
Ma è bello vedere qualche feedback.
Guardate qui.
Ok.
Vediamo se tutto funziona.
Pertanto, dovremmo o dobbiamo configurare prima il server web.
Ma come già detto, se facciamo clic su questi tre punti, possiamo vedere le preferenze.
E qui possiamo vedere che l'IP del server è dieci 022 88, 80, 80.
Vediamo, vediamo questa interfaccia qui?
No, non si tratta di un'interfaccia di rete all'interno della nostra macchina virtuale Ubuntu, ma di un'interfaccia di rete nell'emulatore
in questo momento e l'emulatore viene fornito o questa interfaccia di rete da Android Studio.
Quindi abbiamo anche questo in esecuzione su questa interfaccia, il che significa che se clicchiamo, scusate, se
cliccate su invio.
Poi possiamo vedere la configurazione sicura con successo, ma non sappiamo se funziona.
Cerchiamo quindi di bloccarci a.
Sembra un po' troppo, ma per l'esecuzione in un'altra macchina, credo che vada bene.
E sto usando solo otto gigabyte di RAM.
Credo che non sia più così tanto.
Sono cresciuta in un'epoca in cui il 128 e B era una questione piuttosto importante.
Ma al giorno d'oggi otto gigabyte, credo sia uno standard.
Ok.
Facciamo clic su login.
E credenziali non valide.
Quindi appare qui e possiamo vedere che l'utente non esiste.
Ok, perfetto.
Funziona perfettamente.
Cioè, abbiamo ora questa fuga di informazioni che l'utente admin non esiste, ma questo sta accadendo sulla
parte del server web e come attaccante non abbiamo accesso a questo.
Va bene.
Questa è l'intera configurazione.
Vi auguro buona fortuna per questo.
Ma soprattutto.
Divertitevi.
Ok.
Come sempre, nel prossimo video farò il video della soluzione e poi vi darò qualche suggerimento
se vi bloccate in un certo punto.
Quindi, andiamo e ci vediamo nel prossimo video.