
Un kit de herramientas de análisis de aplicaciones móviles en tiempo de ejecución con interfaz web, impulsado por Frida, escrito en Python.
/ | \ ____ __ __ ______ ____
/ ~ \/ _ \| | \/ ___// __ \
\ Y ( <_> ) | /\___ \ ___/
\___|_ / \____/|____//____ >\___ >
\/ House \/ \/
Herramienta de análisis dinámico para móviles
Contacto: [email protected]
House: Un conjunto de herramientas de análisis de aplicaciones móviles en tiempo de ejecución con una interfaz web, impulsado por Frida, escrito en Python. Está diseñado para ayudar a evaluar aplicaciones móviles implementando enganche e interceptación dinámica de funciones y tiene como objetivo hacer que la escritura de scripts de Frida sea lo más simple posible.
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>
Por defecto, House se vincula a http://127.0.0.1:8000.
Para obtener una visión general de las capacidades de House, puedes visitar el manual de usuario para más detalles.


Nota: Asegúrate de actualizar tu versión de Frida a >= 12.8.3 para el enganche de funciones en /dex/jar.
En esta sección, se proporciona un pequeño ejemplo para ilustrar el uso básico de House. El caso de demostración se realiza con una pequeña aplicación de prueba de Android: com.ha0k3.overloads.
Asegúrate de que un dispositivo Android esté conectado por USB y que el servidor de Frida se esté ejecutando en el dispositivo. Verifica que el servidor de Frida se haya iniciado correctamente usando el siguiente comando: frida-ps -U.
Inicia la aplicación House ejecutando app.py: python app.py <PORT>.
Abre un navegador y navega a http://127.0.0.1:PORT.
Observa la información del dispositivo que se muestra en la página; si no, haz clic en el botón Refresh o reinicia la aplicación y el servidor de Frida.


sideload (carga lateral). Actualmente soporta la carga lateral de Stetho, lo que facilita examinar la interfaz de usuario, almacenamiento, etc.





Renderizado de scripts y trazado de funciones:

Enganches para funciones en archivos dex/jar cargados dinámicamente:

Opción de Mini Script:

Gestión de scripts históricos:

A través de House, los investigadores pueden cambiar dinámicamente los argumentos que se pasan a las funciones objetivo y reenviarlos.

A veces House no puede analizar perfectamente la información de los argumentos. Por ejemplo, un argumento puede ser de un tipo especial. En la aplicación de ejemplo, implementa la función isLit que toma un objeto personalizado como argumento. Para abordar estas situaciones, House proporciona un simple "REPL". Los investigadores de seguridad pueden escribir dinámicamente scripts de Frida en el REPL y modificar el comportamiento de las funciones.

Varias funciones REPL son proporcionadas por House para facilitar las pruebas:
inspectObject(obj) usa java.lang.reflect para inspeccionar la información de los campos dentro de un objeto.setRetval(ret) toma un parámetro e intentará convertirlo al tipo de retorno correcto usando el constructor del valor de retorno original.getStackTrace() imprimirá la traza de la pila.
Nota: Para enganche/interceptación de métodos constructores, ingresa $init como nombre del método.
Para que House funcione, necesitarás:
También intenta reiniciar tanto el servidor de frida como House; si aún no funciona, por favor abre un issue.
A menudo ocurre cuando hay varios dispositivos USB conectados; intenta reiniciar la aplicación objetivo.
House ha sido probado con la versión 12.8.6 de Frida; podría haber problemas con otras versiones; asegúrate también de que frida-python coincida con la versión de frida-server. Si aún no funciona, intenta ejecutar los scripts de Frida generados manualmente para ver si funcionan.
Agradecimientos especiales a los siguientes proyectos de código abierto que inspiraron House:
Si tienes más preguntas sobre House o deseas ayudar a ampliarlo, no dudes en contactar:
O enviar un correo electrónico a: Hao Ke