
Il nuovo ponte tra Burp Suite e Frida!
Brida è un'estensione per Burp Suite che, fungendo da ponte tra Burp Suite e Frida, ti consente di utilizzare e manipolare i metodi propri delle applicazioni mentre alteri il traffico scambiato tra le applicazioni e i loro servizi/server di back-end. Supporta tutte le piattaforme supportate da Frida (Windows, macOS, Linux, iOS, Android e QNX).
Questa idea nasce da un'esigenza emersa durante l'analisi di alcune applicazioni mobili che utilizzano una crittografia simmetrica forte con chiavi casuali: senza conoscere il segreto corretto, nessun dato era modificabile tramite Burp, nemmeno con un plugin personalizzato. Più in generale, la logica delle applicazioni potrebbe basarsi su token crittografici, potrebbe utilizzare comlessi algoritmi challenge-response e così via. Come possiamo alterare i messaggi? La maggior parte delle volte l'unico approccio praticabile è decompilare/disassemblare l'applicazione, identificare le funzioni o i metodi che ci interessano E reimplementarli. Questo approccio è ovviamente dispendioso in termini di tempo e non sempre realmente percorribile: ad esempio, la generazione di token e/o le routine di crittografia potrebbero basarsi su materiale crittografico strettamente legato allo stato del dispositivo e/o memorizzato in aree protette e quindi non direttamente accessibile... È qui che Brida torna utile: invece di cercare di estrarre chiavi/certificati e riscrivere le routine che ci interessano, perché non lasciare che sia l'applicazione a fare il lavoro sporco per noi?
La risposta breve è tutti!
La risposta lunga è che Brida è una collezione di strumenti, alcuni creati per velocizzare le valutazioni quotidiane delle applicazioni mobili e per aiutare i nuovi utenti di Frida, altri pensati per affrontare situazioni molto complesse, in cui Brida può davvero fare la differenza.
Gli strumenti utili per gestire e velocizzare le valutazioni quotidiane delle app mobili sono i seguenti:
Tuttavia, l'idea che ha portato alla creazione di Brida era quella di aiutare penetration tester, reverser e hacker ad analizzare i webservice delle applicazioni mobili target in cui sono presenti complesse funzionalità di sicurezza per proteggere la confidenzialità e l'integrità delle richieste e delle risposte HTTP. Crittografia, offuscamento, routine di firma eseguite su richieste e risposte possono rendere il lavoro dei tester molto difficile e dispendioso in termini di tempo, perché di solito è necessario fare reverse engineering dei meccanismi di sicurezza e implementare un plugin per Burp Suite o uno strumento esterno che prima decifri/deoffuschi i messaggi HTTP e poi eventualmente crittografi/offuschi/firmi i messaggi modificati. Lo stesso vale anche per alcuni scenari non legati alla sicurezza, ad esempio se viene utilizzato un protocollo binario personalizzato per formattare il corpo delle richieste/risposte HTTP per motivi di interoperabilità o prestazioni.
Brida cerca di velocizzare il più possibile queste procedure, limitando lo sforzo di reverse engineering e rimuovendo completamente (nella maggior parte delle situazioni) lo sforzo di sviluppo, offrendo un motore che consente di creare graficamente plugin personalizzati che ispezionano e modificano richieste e risposte HTTP utilizzando le stesse funzioni mobili usate dall'applicazione mobile stessa, grazie a Frida. Prendendo come esempio un'applicazione mobile che crittografa/decifra tutte le richieste e risposte con un algoritmo di crittografia personalizzato/sconosciuto, Brida consente di creare graficamente un semplice plugin personalizzato che decifra i messaggi HTTP crittografati utilizzando direttamente il codice mobile utilizzato dall'applicazione mobile per svolgere il lavoro. Un altro esempio può essere un plugin personalizzato che aggiorna in modo trasparente le firme delle richieste HTTP firmate quando vengono inviate al backend, utilizzando la stessa funzionalità mobile usata dall'applicazione stessa.
Più in dettaglio, Brida consente di creare graficamente plugin che:
E se il motore dei plugin personalizzati di Brida non fosse sufficiente per le nostre situazioni super-complesse, è anche possibile scrivere estensioni Burp Suite esterne in Python/Java che lasciano a Brida il compito di eseguire le funzioni dell'applicazione mobile target sui dati dell'estensione. Lo strumento "Genera stub" di Brida genera il codice Java o Python che può essere incollato in estensioni Python o Java esterne per utilizzare il ponte di Brida.
Frida 17 introduce importanti aggiornamenti nello strumento stesso e nelle sue API JavaScript. Era necessario un importante refactoring del codice JS, che ha rotto la compatibilità con le versioni precedenti di frida. Di conseguenza, le ultime versioni di Brida richiedono una versione di frida maggiore o uguale a 17. Se hai bisogno di utilizzare una versione precedente di Frida, puoi scaricare la versione 0.6pre dalle release di GitHub.
Requisiti:
pip install frida frida-tools pyro4)Installazione da GitHub: