
Un toolkit per l'analisi di applicazioni mobili in runtime con interfaccia web, basato su Frida, scritto in Python.
/ | \ ____ __ __ ______ ____
/ ~ \/ _ \| | \/ ___// __ \
\ Y ( <_> ) | /\___ \ ___/
\___|_ / \____/|____//____ >\___ >
\/ House \/ \/
Strumento di Analisi Mobile Dinamico
Contatto: [email protected]
House: Un toolkit di analisi delle applicazioni mobile runtime con interfaccia Web, basato su Frida, scritto in Python. È progettato per aiutare a valutare le applicazioni mobile implementando l'hooking e l'intercettazione dinamica delle funzioni e mira a rendere la scrittura di script Frida il più semplice possibile.
git clone https://github.com/nccgroup/house
cd house
pip3 install -r requirements.txt
pip3 install pipenv
pipenv --python=/usr/bin/python3 install
pipenv --python=/usr/bin/python3 shell
python3 app.py <PORT>
# or:
mkvirtualenv --python=/usr/local/bin/python3 house
workon house
pip install -r requirements.txt
python app.py <PORT>
# or: (only for Mac OS)
git clone https://github.com/nccgroup/house
cd house
pip3 install -r requirements.txt
pip3 install pipenv
pipenv --python=/usr/local/bin/python3 install
pipenv --python=/usr/local/bin/python3 shell
python3 app.py <PORT>
Per impostazione predefinita, House si collega a http://127.0.0.1:8000.
Per una panoramica delle capacità di House, puoi visitare il manuale utente per i dettagli.


Nota: Assicurati di aggiornare la tua versione di Frida a >= 12.8.3 per l'hooking delle funzioni di /dex/jar
In questa sezione viene fornito un piccolo esempio per illustrare l'uso base di House. Il caso demo viene eseguito su una piccola applicazione Android di test: com.ha0k3.overloads.
frida-ps -U.python app.py <PORT>.Refresh o riavvia l'applicazione e il server Frida.


sideload. In questo momento supporta il side loading di stetho; questo ci rende più facile esaminare l'interfaccia utente, l'archiviazione, ecc.





Rendering di script e tracciamento delle funzioni

Hook per funzioni in file dex/jar caricati dinamicamente

Opzione Mini Script

Gestione script cronologici

Tramite House, i ricercatori possono modificare dinamicamente gli argomenti passati alle funzioni target e inoltrarli.

A volte House non riesce a analizzare perfettamente le informazioni sugli argomenti. Ad esempio, un argomento può essere di tipo speciale. Nell'app di esempio, è implementata la funzione isLit che accetta un oggetto personalizzato come argomento. Per affrontare queste situazioni, House fornisce una semplice "REPL". I ricercatori di sicurezza possono digitare dinamicamente script Frida nel REPL e modificare il comportamento delle funzioni.

Diverse funzioni REPL sono fornite da House per rendere il test più semplice:
inspectObject(obj) usa java.lang.reflect per ispezionare le informazioni sui campi all'interno di un oggetto.setRetval(ret) prende un parametro e tenterà di convertirlo al tipo di ritorno corretto usando il costruttore del valore di ritorno originale.getStackTrace() stamperà la traccia dello stack.
Nota: Per hooking/intercettazione di metodi costruttori, inserisci $init come nome del metodo.
Per far funzionare House, hai bisogno di:
Prova anche a riavviare sia il server frida che House, se ancora non funziona, apri un issue.
Spesso accade quando sono collegati più dispositivi USB, prova a riavviare l'applicazione target.
House è stato testato con la versione 12.8.6 di Frida; potrebbero esserci alcuni problemi con altre versioni, assicurati anche che frida-python corrisponda alla versione di frida-server. Se ancora non funziona, prova a eseguire manualmente gli script frida generati per vedere se funzionano.
Un ringraziamento speciale ai seguenti progetti open-source per l'ispirazione su House:
Se hai ulteriori domande su House, o vuoi aiutare a estenderlo, sentiti libero di contattare:
O invia un'email a: Hao Ke