Tapjacking

Impara l'hacking AWS da zero a eroe con htARTE (Esperto Red Team AWS di HackTricks)!

Altri modi per supportare HackTricks:

Informazioni di Base

Tapjacking è un attacco in cui un'applicazione malevola viene avviata e si posiziona sopra un'applicazione vittima. Una volta che oscura visivamente l'app vittima, la sua interfaccia utente è progettata in modo da ingannare l'utente affinché interagisca con essa, mentre passa l'interazione all'app vittima. Di fatto, acceca l'utente dal sapere che sta effettivamente eseguendo azioni sull'app vittima.

Rilevamento

Per individuare le app vulnerabili a questo attacco, è necessario cercare le attività esportate nel manifesto Android (nota che un'attività con un intent-filter è automaticamente esportata per impostazione predefinita). Una volta trovate le attività esportate, verificare se richiedono qualche permesso. Questo perché la applicazione malevola avrà bisogno anche di quel permesso.

Protezione

Android 12 (API 31,32) e superiori

Secondo questa fonte, gli attacchi di tapjacking sono automaticamente impediti da Android da Android 12 (API 31 e 30) in poi. Quindi, anche se l'applicazione è vulnerabile, non sarà possibile sfruttarla.

filterTouchesWhenObscured

Se android:filterTouchesWhenObscured è impostato su true, la View non riceverà tocchi ogni volta che la finestra della vista è oscurata da un'altra finestra visibile.

setFilterTouchesWhenObscured

L'attributo setFilterTouchesWhenObscured impostato su true può anche prevenire lo sfruttamento di questa vulnerabilità se la versione di Android è inferiore. Se impostato su true, ad esempio, un pulsante può essere automaticamente disabilitato se è oscurato:

<Button android:text="Button"
android:id="@+id/button1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:filterTouchesWhenObscured="true">
</Button>

Sfruttamento

Tapjacking-ExportedActivity

La più recente applicazione Android che esegue un attacco Tapjacking (+ invocando prima un'attività esportata dell'applicazione attaccata) può essere trovata in: https://github.com/carlospolop/Tapjacking-ExportedActivity.

Segui le istruzioni del README per usarla.

FloatingWindowApp

Un progetto di esempio che implementa FloatingWindowApp, che può essere utilizzato per sovrapporsi ad altre attività per eseguire un attacco di clickjacking, può essere trovato in FloatingWindowApp (un po' datato, buona fortuna a costruire l'apk).

Qark

Sembra che questo progetto non sia più mantenuto e questa funzionalità non funzioni più correttamente

Puoi utilizzare qark con i parametri --exploit-apk --sdk-path /Users/username/Library/Android/sdk per creare un'applicazione dannosa per testare possibili vulnerabilità di Tapjacking.

La mitigazione è relativamente semplice poiché lo sviluppatore può scegliere di non ricevere eventi touch quando una vista è coperta da un'altra. Utilizzando il Riferimento dello Sviluppatore Android:

A volte è essenziale che un'applicazione possa verificare che un'azione venga eseguita con la piena conoscenza e il consenso dell'utente, come concedere una richiesta di autorizzazione, effettuare un acquisto o fare clic su un annuncio. Purtroppo, un'applicazione dannosa potrebbe cercare di ingannare l'utente affinché esegua queste azioni, ignaro, nascondendo lo scopo previsto della vista. Come rimedio, il framework offre un meccanismo di filtraggio dei touch che può essere utilizzato per migliorare la sicurezza delle viste che forniscono accesso a funzionalità sensibili.

Per abilitare il filtraggio dei touch, chiamare setFilterTouchesWhenObscured(boolean) o impostare l'attributo di layout android:filterTouchesWhenObscured su true. Quando abilitato, il framework scarterà i touch ricevuti ogni volta che la finestra della vista è oscurata da un'altra finestra visibile. Di conseguenza, la vista non riceverà touch ogni volta che compare una toast, una dialog o un'altra finestra sopra la finestra della vista.

Impara l'hacking AWS da zero a eroe con htARTE (HackTricks AWS Red Team Expert)!

Altri modi per supportare HackTricks:

Last updated