Ok, ragazzi, dopo tutta questa teoria, vediamo ora un esercizio pratico.
Iniziamo a sfruttare queste attività.
Siete pronti per questo?
Torniamo alla macchina virtuale Ubuntu.
Tornando a Ubuntu VM, torniamo a un'applicazione che abbiamo già analizzato un po'.
Mi riferisco all'applicazione CV sviluppata da MOI Labs, ora F-Secure.
È davvero sorprendente.
L'applicazione Cattura la bandiera è il punto in cui metteremo in pratica le nostre conoscenze.
Quindi, andiamo.
Ok.
Come sempre, potete trovare questa domanda come allegato della sezione.
L'ho già scaricato ed è qui.
Ok.
La prima cosa da fare è installare questa applicazione e verificare che funzioni sul nostro
dispositivo.
Quale dispositivo?
Sto usando l'emulatore.
Ma si può anche optare per un dispositivo vero e proprio.
Quindi dovrebbe funzionare perfettamente.
Ok, vediamo quale emulatore ho a disposizione.
ID dell'elenco di emulatori.
Ecco il prossimo.
Quindi sei applicabili 30.
Lo ripeterò spesso in questo corso.
Mi dispiace per questo se l'avete già sentito più volte.
Ma sì, rispetto agli emulatori successivi a 60 byte, questo è a mio avviso il migliore.
Non è molto potente, il che è positivo perché significa che non richiede molte risorse e quindi
non è così probabile come un dispositivo pixel, che potrebbe richiedere molte risorse.
Va bene.
Avviamo quindi questo emulatore e forniamo semplicemente questo nome.
Quindi l'emulatore si sta avviando e abbiamo già lo spawning, l'esecuzione e la virtualizzazione annidata.
Non è una buona idea, ma anche all'interno di questa macchina virtuale funziona perfettamente.
Ok, forse non perfettamente.
È un po' laggoso, ma non così grave come si potrebbe pensare in questo momento.
È inoltre possibile utilizzare il dispositivo o il nostro approccio x86 con la macchina virtuale esterna.
Nessun problema.
Quindi eccolo qui.
Iniziamo.
Ok, perfetto.
Ora i dispositivi sono in funzione.
Torniamo quindi nella nostra cartella delle applicazioni e vediamo di installare questa applicazione.
È un po' appeso.
Och.
Quindi, eccolo qui, in questo momento.
Iniziamo.
E si sta caricando.
E riceviamo già il messaggio che questa applicazione vuole accedere ai nostri file e supporti.
E questo è un aspetto di cui dobbiamo assolutamente occuparci, non per quanto riguarda la privacy.
Inoltre, se stiamo analizzando un'applicazione, dobbiamo capire cosa fa questa applicazione
con quei file.
Ad esempio, potrebbe esserci un accesso alla scheda SD e alla directory pubblica disponibile in cui potrebbero essere memorizzate
informazioni sensibili, cose del genere?
Quindi, se abbiamo a che fare con permessi come questo qui all'interno di un test di penetrazione,
dobbiamo capire cosa viene fatto con questi permessi.
E forse possiamo sfruttare queste cose per ora.
Non ci addentriamo troppo in questo argomento.
Vogliamo concentrarci solo su queste attività, quindi concediamo questo permesso.
Ok.
Ed ecco che lo facciamo lentamente.
La ventola gira un po'.
Io non lo faccio.
Spero che il microfono non sia così orribile.
Ok.
Ecco quindi che abbiamo questo momento.
Ed ecco l'avvertimento.
Questa applicazione è stata realizzata per una versione precedente.
Ma non preoccupatevi, l'ho testato su un dispositivo di livello AP 30, che è Android 11.
Credo che lì funzioni perfettamente.
È sufficiente fare clic su OK e il gioco è fatto.
Ok.
Abbiamo già parlato di questa applicazione e quindi non voglio prolungare inutilmente questo video
e vedere se è catturare il gestore di password bandiera in modo da poter fornire la password qui, che verrà utilizzato per crittografare
e decrittografare le nostre password memorizzate in questa applicazione.
Questa è l'intera funzionalità di vedere, ok.
Compiliamo rapidamente questo modulo.
Pertanto, utilizzo la shell ADB e l'input text, fornisco una password di 16 caratteri ed ecco
fatto.
E possiamo vedere che normalmente dovremmo usare cifre alfanumeriche, lettere maiuscole e almeno 16 cifre.
Ma possiamo usare semplicemente 60 numeri.
Questo sarebbe già in fase di ricerca, se si tratta di un'applicazione mobile che raccomanda l'uso di questo
set di caratteri.
Ma possiamo andare avanti con questo.
Quindi presentiamoci.
La nostra password sembra essere adatta.
Se lo vediamo qui, non possiamo commettere errori di battitura.
A proposito, se avete cose come questo e il PIN, per esempio, e inserite questo,
sì, quei numeri appaiono qui.
Una volta ero seduto a una presentazione in cui qualcuno aveva inserito la password in un campo modulo del presentatore,
in modo che tutti potessero vedere la password anche se si trattava di punti.
Intendo i personaggi visibili per un certo periodo di tempo.
Quindi non è una buona idea farlo.
Ma qui va bene.
Potete vedere le mie password.
Ora dobbiamo fornire un pin, che verrà utilizzato per accedere alla modalità rapida.
Quindi, se lo mettete in background e lo aprite di nuovo, dovrete inserire un pin solo
se avete già decifrato il database con questa password qui.
Definiamo quindi un pin.
Vi sottoponiamo questo.
E ora.
Ora dobbiamo inserire la password.
Abbiamo quindi una configurazione iniziale.
Ok.
Dobbiamo tenere a mente ciò che stiamo vedendo in questo momento, perché queste sono tutte attività.
Abbiamo quindi svolto un'attività riguardante il PIN Tune.
Abbiamo anche una password, un'attività relativa all'inserimento della password e cose del genere.
Quindi, se si naviga in un'applicazione, ora dobbiamo vederla con gli occhi di un attaccante.
Abbiamo quindi già visto alcune attività.
Bene, inseriamo qui la nostra password.
Ok.
Accediamo.
Ok.
Ora abbiamo un'altra attività.
Si tratta quindi di un contenuto diverso dello schermo.
E qui abbiamo le impostazioni.
Questa è un'altra attività.
Va bene.
Possiamo cambiare il pin, cancellare le password, fare il backup su scheda SD e cose del genere.
E qui possiamo definire una nuova voce.
Quindi facciamo questo al Nuovo Passaporto.
Abbiamo visto che è stata aperta un'altra schermata.
Questa è un'altra attività che abbiamo.
Abbiamo tonnellate di attività qui.
Diciamo che questa è la nostra applicazione bancaria.
Il nome utente è l'hacking dell'app e la password è super segreta.
Ok.
E sicuro.
Ora siamo tornati alla nostra attività di passaporto e.
Ecco la voce.
Ingresso.
EDIT Ok, ora possiamo vedere che questa è la nostra voce bancaria e se si fa clic su di essa, la password verrà
copiata negli appunti.
Questo è il nostro gestore di password.
E nella prima visualizzazione sembra, sembra decente perché se si chiude l'applicazione
o diciamo se la mettiamo in secondo piano e la riapriamo.
Cosa?
Non ci sono articoli recenti.
Quindi vediamo.
Ok.
Ecco fatto.
Quindi, se lo apriamo ancora una volta, non riusciamo ad accedervi.
Dobbiamo inserire il nostro pin.
Se lo facciamo, allora vediamo.
Ok, allora siamo dentro.
E se chiudiamo questa applicazione, dobbiamo inserire la password completa.
Quindi vediamo.
Sì.
Come potete vedere, è necessario inserire la password.
Vorrei controllare velocemente una cosa.
Se si sta inserendo una password errata e si tenta di accedere.
La password non è corretta.
Vediamo se riusciamo a forzarlo brutalmente.
Sì, in generale sarebbe possibile.
Ma avere 16 caratteri, anche se si tratta solo di cifre, non è molto pratico.
L'approccio del PIN è diverso.
Questa è un'altra storia.
Quindi il PIN composto da numeri di quattro cifre significa che abbiamo 1000 possibilità, dieci quadrati quattro.
E questo sarebbe possibile forzarlo, ma non questa password di 16 caratteri.
Ok.
Ora, finalmente, iniziamo ad hackerare questa applicazione.
Quindi torniamo alla shell ADB e iniziamo ad analizzarla.
I nostri metodi di inversione sono limitati al momento.
Abbiamo una sezione completamente inversa in cui analizziamo un'applicazione basata sul codice sorgente.
Quindi forse un po' di spoiler.
Se stiamo usando uno schermo oscuro e apriamo questo file APK, allora questo strumento ricostruisce il codice Java da quelle
classi, il file di testo.
Quindi ora abbiamo il codice Java.
Apriamo qualcosa.
Ad esempio, questa attività.
Qui possiamo vedere il codice.
Ma questo è qualcosa che non possiamo fare in questo momento.
Parleremo di questo approccio nella sezione dedicata all'inversione.
Voglio solo dimostrarvi che cose del genere sono possibili.
Questo non è il codice Java originale, è una sua interpretazione, ma è abbastanza
simile a quello originale.
Quindi abbiamo qualche freccia forse da metodi che non potevano essere compilati, ma il resto, voglio dire, è abbastanza
decente almeno per l'inversione.
È possibile farlo, ma è già stato detto che non è un'opzione.
E questo non è ancora un problema perché ciò che potremmo fare o che vogliamo sfruttare sono ora quelle attività.
E dove possiamo trovare queste attività?
Assolutamente corretto nell'esempio del manifest di Android.
E come si ottiene questo file?
La versione decodificata, strumento assolutamente corretto con lo strumento APK.
Quindi partiamo in piedi.
Scusate, utilizziamo lo strumento APK D per la nostra applicazione C.
Ora possiamo vedere la decodifica del manifest di Android con le risorse.
Va bene.
Stiamo anche decodificando un po' di più, ma va bene così.
Non abbiamo una directory finché non abbiamo il nostro manifest Android e vediamo di aprirlo con.
Sì.
Sì, ce l'abbiamo.
Un layout assolutamente bello, ma non facciamo questo su di loro.
Quindi, se ora li accatastate, non preoccupatevi.
Credo che questa sia o sia stata la domanda più posta su StackOverflow qualche tempo fa.
È possibile tornare indietro semplicemente premendo src, due punti, coda e punto esclamativo per forzarlo.
Se non lo sapevate, questo è un modo per uscirne, se non lo sapevate, è una salvezza assoluta per voi in questo
momento.
Ok.
Non lo apriamo con l'approccio al codice di Visual Studio.
Ok.
Quindi è stato caricato ed eccolo qui.
Possiamo anche selezionare il rappresentante.
Poi ci assicuriamo che ogni riga sia visibile, nel caso in cui sia più lunga, viene semplicemente arrotolata.
Ok.
Abbiamo già analizzato questo file di applicazione nell'esempio del manifest di Android.
Nel caso in cui non abbiate guardato questo video, è bene che lo abbiate perché qui
ci sono molte cose interessanti, come, ad esempio, i permessi personalizzati.
Ma non lo faremo adesso.
Vogliamo concentrarci solo sulle nostre attività.
Quindi ci concentriamo semplicemente su questi testi di attività.
Nessun servizio, nessun fornitore di contenuti.
In questo momento ci stiamo concentrando solo sulle attività.
In seguito, non preoccupatevi, sfrutteremo anche questi nuovi componenti.
Ma per ora, sì, concentriamoci su questo.
La prima attività che abbiamo qui è l'attività di selezione dei file.
Voglio dire, il nome potrebbe essere tutto, ma la maggior parte delle volte il nome dello sviluppatore, ci sono cose
come le cose che stanno facendo.
Quindi, in questo caso, potremmo avere un'attività che possiamo semplicemente selezionare e archiviare.
La parte più importante è l'esportazione di questa attività.
Quindi vediamo, forse, di farlo in questo modo e di ingrandirlo.
Ingrandiamo.
Questo non va bene.
Qui lo abbiamo in una riga.
Così Android ha esportato.
Vero.
Perfetto.
Ciò significa che l'attività di selezione dei file viene esportata e che possiamo avviare questa attività
dal mondo esterno.
Potremmo scrivere la nostra applicazione, che invia l'intento di avviare questa attività.
In alternativa, è possibile utilizzare la shell ADB.
Utilizzeremo la shell ADB e forse alla fine avremo una rapida sezione bonus su come scrivere la nostra
applicazione per sfruttarla.
Ma per il momento lo faremo nella shell ADB, perché è piuttosto semplice.
Va bene.
Questo significa che possiamo avviare l'attività di selezione dei file.
Ok.
Cos'altro possiamo fare allora?
Abbiamo questa attività.
Questa è l'attività principale di registrazione.
E la domanda che ci si pone in questo momento è: questo viene esportato?
Quindi, per favore, pensateci almeno per qualche secondo e mettete in pausa e riavvolgete questo video.
Ok.
Quindi eccoci di nuovo qui.
La risposta è sì, viene esportata perché abbiamo questa cartella di intenti.
Quindi, questa applicazione forse ci permette di ottenere un output grafico qui, in questa applicazione.
Vediamo se riesco a disegnarlo con il mouse.
Era.
Sì, credo che sia abbastanza buono.
Oh, è decente.
Questa è un'idea, nel caso in cui non l'abbiate ancora vista.
Quindi questa attività è in ascolto dello smartphone e questa è in attesa di un intento.
Questo intento deve avere l'azione principale e il lanciatore di categorie, il che significa che queste due operazioni
saranno attivate.
Se facciamo clic sull'icona di questa applicazione sul nostro smartphone, questi due elementi, questa azione e questa categoria,
verranno inviati alla nostra applicazione e in questo momento stiamo ascoltando questo evento.
Quindi questa attività ascolta quando appaiono questi eventi e poi avvia questa, l'attività di registrazione principale,
e questa è la nostra voce, la nostra schermata.
Quindi il punto di ingresso di questa applicazione, che vediamo qui, è la nostra attività di registrazione principale e questo
è il modo in cui funziona il filtro degli intenti.
Abbiamo quindi registrato la nostra cartella intent per ascoltare questi due eventi.
Va bene.
Ok.
Avere una cartella intent significa avere un'esportazione implicita, il che significa che anche questa attività di
registrazione principale viene esportata, anche se non viene definita come questa.
Ma ce l'abbiamo.
Questo è esploso.
Quindi entrambi vengono esportati.
Esplicito.
Implicito.
Va bene.
Perfetto.
Allora vediamo.
Abbiamo questa attività, che è un'attività di lista.
Viene esportato?
Sì, viene anche esportato.
E se si cerca questo, possiamo accorciare questo percorso proprio adesso.
Possiamo vedere che abbiamo questo file, selezionare l'elenco p w e questi due.
Questi servizi vengono anche esportati e trasmessi.
Spiacente, anche il fornitore di contenuti viene esportato, ma per ora lo abbiamo saltato.
Li analizzeremo in seguito.
Ok.
Qui possiamo vedere che non viene esportato nulla.
Non abbiamo queste impostazioni all'ingresso.
Chiusura breve.
Interessante.
Attività di benvenuto e di spillatura.
Nessuno di essi viene esportato.
Ciò significa che potremmo attaccare il file, selezionare l'elenco p w e teoricamente anche questo.
Ma è questa l'attività di lancio.
Sarebbe quindi ridicolo se qui ci fosse una vulnerabilità.
Ok.
Ora ponetevi la domanda: come possiamo iniziare un'attività?
Quindi, come possiamo dire allo smartphone o a questa applicazione in questo caso di aprire l'attività di selezione dei file, potremmo
scrivere la nostra applicazione.
In questo caso utilizziamo la shell ADB perché è il modo più semplice per attivare questo
evento.
Va bene.
Diamo quindi un'occhiata.
Stiamo aprendo un nuovo terminal.
Mettiamo questo a sinistra ed entriamo nella shell ADB.
L'arma che stiamo usando in questo momento è il gestore di attività.
E possiamo aprirlo con l'AM.
Va bene.
L'activity manager ha un sacco di roba qui dentro, perché il nome è un po' fuorviante.
Non si tratta solo di due attività.
Possiamo anche eseguire azioni relative ai servizi o ai ricevitori di trasmissione.
E questo aiuto qui, viene definito in due parti.
All'inizio, quindi, questa guida potrebbe essere un po' confusa, ma una volta che l'abbiamo
capita e la stiamo facendo proprio ora, non avremo più problemi con questa.
Va bene.
Ok.
Quindi vediamo.
Nella prima metà di questo gestore di attività, abbiamo molte opzioni che possiamo vedere.
Abbiamo questa opzione, avviare l'attività.
Perfetto.
Sembra proprio quello che vogliamo fare e abbiamo molti parametri qui.
Avviamo l'uso del profilatore e vediamo l'utente che è lo strumento che ci esegue, quindi possiamo definire un altro utente
che vuole avviare questa attività.
Possiamo attivare il debug, il debug nativo, attendere il completamento del lancio e cose del genere.
Quindi potremmo avviare un'attività e dire: "Ok, aspetta che il jetpack si costruisca o si attacchi
e cose del genere, ma non vogliamo fare nulla di tutto ciò".
Vogliamo solo iniziare la nostra attività e questo è tutto.
Ok, quindi stiamo usando il gestore di attività AM per avviare l'attività e digitiamo questo.
Ok.
Ora dobbiamo definire quale attività vogliamo avviare e se torniamo indietro verso l'alto, non troviamo alcuna informazione
su questa qui.
Possiamo vedere che abbiamo anche avviato il servizio di trasmissione, in modo da interagire con i ricevitori di trasmissione, ma non possiamo
definire quale attività vogliamo avviare.
Ora siamo nella seconda metà.
Quindi nella seconda metà di questo aiuto troveremo questa dichiarazione di intenti, questa, e qui abbiamo ora
tutte le informazioni necessarie.
Dobbiamo quindi dare un'occhiata all'inizio per capire cosa vogliamo fare.
Quindi, diciamo un'attività di base che avvia un'attività, interagendo con un ricevitore broadcast o con
un servizio.
E nel secondo tempo dobbiamo definire il nostro compito in questo momento.
Ok.
Quindi, nella seconda metà abbiamo cose come i dati di azione, l'URI o la categoria.
Ne parleremo più avanti.
Si tratta quindi di un aspetto importante per l'argomento intenzioni, di cui parleremo prossimamente.
Ma per ora possiamo semplicemente saltare questo punto.
Ci interessa solo il trattino e l'opzione perché è il nome del componente e il nome del componente è semplicemente
il nome dell'attività che vogliamo avviare.
Naturalmente deve essere un esportatore, ma questo è il caso nostro in questo momento.
Se torniamo qui, possiamo vedere che la nostra attività di selezione dei file è stata esportata e ora dobbiamo occuparci di questa
attività di selezione dei file.
Dobbiamo dire al nostro gestore di attività di iniziare esattamente da qui.
E questo viene fatto con il trattino e il nome del componente.
Quindi tutto ciò che dobbiamo fare è dire al nostro gestore di attività di avviare questa attività e dobbiamo fare
riferimento ad essa in un certo modo, perché l'attività di selezione dei file potrebbe essere usata molto spesso nelle
applicazioni e quindi il sistema Android saprà quale vogliamo avviare.
Il nome del componente esiste quindi spesso il nome del pacchetto, che è un identificatore univoco
in questo qui e poi barra e poi il nome della nostra attività.
Va bene.
Quindi il nome del componente è il nostro identificatore univoco con una barra e poi il nome dell'attività.
In questo modo, possiamo assicurarci di avviare esattamente questa attività di selezione dei file e non quella
all'interno di un'altra applicazione.
Esattamente all'interno di questo qui.
Torniamo al gestore delle attività e avviamo l'attività dash MN, che è il nome del componente e ora il nome del pacchetto.
Che è solo una barra e poi prendiamo il nome dell'attività.
Quindi il nome Android qui mantiene questo pensiero: l'inizio è richiesto, la tacca di citazione è richiesta, ma il punto
è richiesto.
Torniamo indietro.
Sì, questa attività viene esportata, il che significa che possiamo iniziare subito.
Va bene, facciamolo.
Quindi teniamo il telefono a destra e questo a sinistra.
E facciamo questo in 3 a 1.
Bello.
Fantastico.
Abbiamo aggirato la schermata di blocco e ora siamo solo a cinque attività selezionate.
Ma non significa che questo qui sia già vulnerabile.
È vero, ora stiamo selezionando solo l'attività dei file, ma dobbiamo capire cosa possiamo fare in questo momento.
Diamo quindi un'occhiata.
Non abbiamo pulsanti aggiuntivi qui e abbiamo questa directory di dati Android emulata dalla memoria.
Quindi vediamo questo percorso.
Ma non è un segreto.
Proviamo a entrare in questo caso, per esempio.
Oh, perché questo può essere letto.
Ok.
E se andiamo indietro, allora abbiamo dei file.
Ma qui non c'è nulla.
Ok.
Potrebbe essere che non sia stato creato alcun backup e che quindi questo sia vuoto.
È quindi opportuno eseguire tutte queste azioni in un'applicazione se si sta testando qualcosa.
Quindi, per il momento, non sembra che l'attività di selezione dei file stia facendo qualcosa per noi attaccanti.
Possiamo anche verificare se è possibile utilizzare il pulsante Indietro.
Sì.
Ma poi ci troviamo di nuovo all'interno dell'attività di inserimento della password.
Ok.
Quindi possiamo avviare questa attività di selezione dei file.
Ma non possiamo fare nulla in questo momento.
Forse perché il contenuto non è ancora stato creato.
Dovremmo tornare su questo argomento dopo averlo creato.
Ma per ora non si tratta di vulnerabilità.
Va bene.
A proposito, anche questo qui potrebbe essere interessante.
Cos'è questo?
Impostazioni.
Questo è già in fase di ricerca.
Cioè, possiamo accedere all'attività di impostazione tramite l'attività di chiusura principale.
Onestamente, non sono sicuro che si tratti di un comportamento voluto o di un errore di programmazione all'interno del sistema catturato,
se così fosse, supporrei che si tratti di un comportamento voluto.
Quindi anche questo è un aspetto da ricercare.
Va bene.
Ma per il momento abbiamo l'attività di impostazione.
Ma possiamo semplicemente sfruttare questo aspetto avendo.
Facendo clic su questo pulsante, e questo non è bello.
Vediamo quindi quali annunci possiamo fare?
Perché c'era un'attività aggiuntiva.
A proposito, l'attività delle impostazioni non viene esportata.
Quindi non possiamo iniziare subito.
Ma l'attività dell'elenco DPW viene esportata.
Quindi vediamo.
Forse un'attività iniziale e non sto usando un copia incolla dell'esempio o del codice prima perché digitandolo
sarà un po' più facile.
Ricordatelo in futuro.
Quindi è bene non copiare sempre queste cose.
È bello scriverle ancora una volta.
Ok.
Se ora volete affrontare l'attività dell'elenco p, dobbiamo avere il nome
del pacchetto davanti, quindi può venire m-w r esempio c slash dot e questo perché anche t dot viene incluso qui.
Ok.
Vediamo.
Tre, due, uno.
Bello.
Anche questo funziona e potrebbe essere già in fase di ricerca, perché possiamo vedere subito il servizio all'interno di questa
applicazione.
Abbiamo ottenuto il servizio bancario e ora vediamo se possiamo aprire questo.
Clicco su apri e.
Nessun errore.
Impossibile connettersi alla forza di servizio, uscire dall'applicazione e riprovare.
Ok, questo qui è un esempio perfetto.
Abbiamo aggirato con successo la schermata di registrazione della nostra applicazione, avviando direttamente l'attività
di elenco, l'esportazione in P. W Attività dell'elenco, in modo da non dover inserire la password.
Ora stiamo inserendo direttamente questa attività della nostra applicazione, ma riceviamo un errore.
Possiamo vedere che abbiamo ottenuto una voce bancaria, ma questa voce bancaria non può essere aperta.
Il motivo è che se l'applicazione avvia questa P. L'attività dell'elenco W deve essere avviata e servita
prima.
Quindi, dopo aver effettuato l'accesso a questa applicazione fornendo la password corretta, l'applicazione
si avvia per prima cosa in servizio e questo servizio viene utilizzato per decifrare le nostre password nella nostra cassaforte delle
password.
Il servizio non è stato avviato al momento e quindi stiamo cercando di inserire questa voce bancaria.
Ma questa voce bancaria non può essere decifrata perché questo servizio, che deve essere avviato prima, non è stato
avviato.
Non c'è alcun servizio.
Quindi questo non c'è più.
Questo significa che l'applicazione sta lanciando un errore perché questo servizio non è stato avviato
prima e quindi quelle voci sono ancora criptate.
Quindi non potremmo leggerli in questo momento, il che significa che sì, abbiamo una perdita di informazioni,
ma non è così grave come si potrebbe pensare a prima vista.
Quindi questo esempio è piuttosto fantastico.
Si potrebbe forse aggirare il problema avviando il servizio anche manualmente e inserendo poi il codice P. Attività della lista
W.
Ma questo lo faremo dopo aver parlato dei servizi, perché non voglio entrare in altri argomenti.
In questo momento abbiamo visto che questa attività può essere avviata, ma non possiamo utilizzarla appieno perché
non sono ancora stati configurati alcuni stati, che sarebbero stati configurati se avessimo effettuato
l'accesso a questa applicazione.
Ok.
Non significa che abbiamo finito, perché ora siamo entrati nel contesto sicuro di questa applicazione.
Ora siamo in un contesto sicuro e dobbiamo capire cos'altro possiamo fare qui.
Ad esempio, vediamo se è possibile creare una nuova voce.
Sì, possiamo inserirne una nuova e ora abbiamo un'attività di aggiunta di una nuova password.
Quindi vediamo questo.
Quale potrebbe essere l'attività di ingresso?
Quindi questa è l'attività di inserimento di ADD e questa non viene esportata.
Quindi, dall'attività elenco che è stata esportata, possiamo aprire anche questa attività, che non
è stata esportata, ma questa sì.
Quindi, se apriamo questo, siamo entrati nel contesto applicativo sicuro, il che significa che
possiamo anche avviare e interagire con tutti gli altri componenti collegati a questa attività qui.
Va bene.
Ok.
Vediamo quindi se possiamo davvero aggiungere una nuova voce, perché si tratta di qualcosa che al momento non conosciamo.
Ok.
Quindi il nome utente dello strumento bancario è test e la password è uno, due, tre, quattro.
Ora facciamo clic su Salva e.
Sì, non è possibile connettersi al servizio.
Quindi, ancora una volta, il servizio deve essere in funzione per interagire con questi componenti.
Quindi non si tratta di una vulnerabilità enorme.
Per ora si tratta solo di una fuga di informazioni, ma ora possiamo aprire anche questa.
Allora, cosa c'è qui?
Questa è l'attività di impostazione.
Immaginiamo che questa attività non sia disponibile nella schermata di registrazione.
Quindi anche questo non viene esportato, giusto?
Sì, non viene esportato.
Ma ancora una volta, siamo entrati nel contesto sicuro attraverso la P. L'elenco W e questo possono ora avviare anche queste attività di impostazione,
in modo da poter cercare le vulnerabilità all'interno di questo punto.
Ok.
Vediamo cosa possiamo fare.
Cambiare il perno.
Vediamo.
Apriamo questo.
E purtroppo dobbiamo inserire il vecchio pin.
Quindi, nel caso in cui non fosse necessario inserire il vecchio pin, se si potesse fornire un nuovo pin, questo potrebbe
essere sfruttabile.
Quindi, dopo che l'utente ha effettuato l'accesso e ha messo l'applicazione in background, non abbiamo bisogno di una
password.
Richiediamo il pin, il che significa che se ora state inserendo l'attività del pin, potremmo definire una nuova
password.
Se non è necessario inserire quelli vecchi, perché al momento non lo sappiamo.
Ok.
Potrebbe quindi essere sfruttabile, ma in questo caso non lo è perché dobbiamo inserire il vecchio pin e non possiamo
semplicemente sovrascrivere quello nuovo.
Ok.
Tuttavia, non arrendetevi.
Quindi torniamo indietro.
Cancellare i passaporti.
Vediamo.
In questo modo si cancella l'intero database.
Questo è un aspetto che vogliamo assolutamente testare alla fine.
Quindi non in questo momento.
Ma se potessimo cancellare l'intero database, anche questo potrebbe essere un problema.
Ok, eseguire il backup sulla scheda SD.
Quindi vediamo.
Questo salverà il database sulla scheda SD.
Facciamo così.
Vediamo se funziona.
Database esportato.
Bene, ora abbiamo esportato il database sulla scheda SD.
Verifichiamo questa scheda SD con shell ADB e vediamo come.
Ok, creiamo questo portatile.
Non possiamo vederlo da qui.
Ciò significa che i dati potrebbero essere salvati nella directory Android della scheda SD.
E questo su smartphone moderni e directory protette.
Ciò significa che anche se proviamo ad accedere alla directory dei dati, l'autorizzazione è negata.
Ok.
Per accedervi è necessario avere i privilegi di root, cosa che non avviene nella ricerca.
Tuttavia, diamo un'occhiata a questo caso.
Ok.
Possiamo ottenere i privilegi di root semplicemente entrando come voi e poi vediamo.
Sì.
Qui, possiamo già vederlo.
E sì, l'ID utente di questa applicazione è un 127.
Questa A può essere sostituita con 10.000, perché questo è il punto di ingresso da cui parte la nostra applicazione.
Ne abbiamo parlato nella sezione dei permessi: scopriremo cosa c'è dietro l'ID utente, il che significa che
solo questo utente o un utente con privilegi più elevati può accedere a questa directory.
Quindi ora siamo un privilegio superiore.
Vediamo, abbiamo questi file.
Oh, vi ricordate ancora la directory del sito?
Lo abbiamo visto nell'altra attività di selezione dei file.
Quindi forse abbiamo un file noto qui dentro.
Bene, stampiamo semplicemente il contenuto di questo file e poi andiamo.
Ok, qui conosciamo la password e il pin, che vengono memorizzati in chiaro in questo file.
Ok.
Quindi, se non considerassi questo come un vero e proprio ritrovamento, voglio dire, sì, quelle informazioni potrebbero essere protette, ma
abbiamo bisogno di privilegi più elevati per accedere a questo file.
Va bene.
Ma sugli smartphone più vecchi, questo potrebbe essere un finanziamento, perché lì non c'è questa directory Android e potrebbe
essere memorizzata direttamente sulla scheda SD e accessibile da ogni altro strumento applicativo.
Va bene.
Ok.
Per ora non ci interessa.
Vogliamo parlare delle attività e dare un'occhiata a destra e a sinistra all'analisi delle applicazioni.
Quindi anche questo non è male.
Ok, ora abbiamo un backup da mettere in rete.
Vediamo.
E questo database sulla sicurezza alimentare al server.
Ok, facciamo così.
Ok.
Non ricevo alcun messaggio o cose del genere.
E quindi, apriamo anche il blocco dell'ATP perché questo è qualcosa.
Ops, non di nuovo, perché questo è un aspetto che si dovrebbe sempre osservare nel registro ATP, dove
troveremo molte informazioni utili attraverso queste applicazioni.
Quindi, rifacciamolo ancora una volta.
Torna da Annette.
Sì.
Va bene.
Quindi è il responsabile della rete.
E non è riuscito a connettersi.
Ok.
Quindi abbiamo questo server a cui l'applicazione cerca di connettersi, ma questo non è un argomento che riguarda gli uomini
nel mezzo.
Abbiamo un intero capitolo su come entrare nella connessione di rete del dispositivo e intercettare e analizzare
il traffico.
Non è una cosa che faremo adesso, ma per ora possiamo vedere che lo smartphone non può connettersi
al server, ma la funzionalità sarebbe già stata data in questo momento.
E poi abbiamo il ripristino dalla scheda SD.
Apriamo questo.
Questo sostituirà il database attuale.
Sì.
Ed ecco che si va avanti.
Questa è la nostra lotta, un'attività selezionata.
E ora abbiamo questo file di backup qui.
Quindi, all'interno del nostro file, selezionare l'attività, se si sta aprendo di nuovo, potremmo
avere questo backup e sovrascrivere la configurazione attuale con una vecchia configurazione di mesi che è stata ripristinata.
Quindi anche questa potrebbe essere una scoperta.
Finora non è male per questa applicazione.
Quindi, forse, chiudiamo la questione.
Ok.
Finora non è male per questa applicazione.
Quindi possiamo eliminare queste voci.
Facciamo finalmente questa cosa.
Quindi vediamo.
Sì.
Database cancellato.
Ok, torniamo indietro.
Sì, non c'è più.
In questo modo, come utente, possiamo eludere la schermata di blocco e quindi accedere all'attività dell'elenco p w.
Potremmo avviare l'attività di impostazione da questa e poi cancellare queste voci.
Va bene.
È una scoperta.
Ma è più simile a una negazione del servizio.
Al momento non riceviamo queste informazioni.
Inoltre, il backup su Sdcard non funziona più sugli smartphone moderni.
E non voglio mostrarvi cose che sembrano assolutamente fantastiche ma che non funzionano con le applicazioni moderne.
Quindi le cose che vogliamo analizzare e imparare in questo momento riguardano le applicazioni più recenti e moderne
e non quelle che funzionano su Android per il backup in rete.
Potrebbe essere interessante se riuscissimo a eseguire un attacco man in the middle e poi a innescare questo evento manualmente, in
modo da poter recuperare queste informazioni.
Quindi le password e cose del genere.
Per questo motivo, se riusciamo a raggiungere questo obiettivo, lo esamineremo nella sezione
"Uomini al centro".
Va bene.
Ok.
Infine, abbiamo il ripristino da scheda SD che ci permette di ripristinare una
vecchia versione e di accedere direttamente a questa attività.
Ok, questo è tutto per questo video al momento.
È stato un po' lungo solo per il caso in cui abbiamo imparato come avviare un'attività.
Ma stiamo anche parlando di vista a destra e a manca e abbiamo anche parlato intensamente dello sfruttamento
delle cose che possiamo vedere avendo accesso alla shell ADB.
Potremmo avviare un'attività.
È il modo più semplice.
E se si vuole avere una prova di concetto, possiamo scrivere la nostra applicazione che esegue questo
bypass.
Quindi lo farò in un video bonus in seguito.
Ok.
Tuttavia, abbiamo bisogno di un qualche tipo di accesso fisico perché, se stiamo aggirando la schermata di blocco,
dobbiamo avere lo smartphone davanti a noi per eseguire queste azioni, il che rende la cosa non più così interessante.
Potrebbe essere ancora pericoloso, ma non è più così sofisticato.
Se dobbiamo avere lo smartphone davanti a noi.
Va bene.
Potremmo avere ulteriori vettori di attacco per le nostre attività, il che significa che se abbiamo un intento, di cui parleremo
in seguito, possiamo fornire informazioni aggiuntive alla nostra attività.
E queste informazioni potrebbero essere richieste da questa applicazione, il che potrebbe portare ad altre vulnerabilità.
Ne parleremo dopo la sezione sugli intenti, perché così sapremo cos'è un intento, come attivarlo
e come interagire con questo.
Tuttavia, l'attività deve essere esportata.
Quindi questa dovrebbe essere la prima vista.
Quindi, se l'attività viene esportata, esportata A tramite filtri espliciti o basati sull'intento, potremmo
avere ulteriori vettori di attacco nel caso in cui non venga esportata come questa, ad esempio
l'attività di impostazione, potremmo essere in grado di aprire questa attività di impostazione basata su un'altra.
Se non si dispone di alcun riferimento a un'attività di questo tipo, ad esempio l'attività di
registrazione breve, non c'è altro da fare in questo momento.
Per ora è tutto.
E non vedo l'ora di vederti nel prossimo video.