NotasAndroid_Termux
Mis demonis en un solo lugar
[!WARNING]
[!NOTE] Mucho del mis imsobnios vine de la comunidad de
@ivam3
y sus subcriptores
Android Ingenieria Inversa desde Android
*Apk utiles
- Developer assistant
- Mt manager
- Current Activity
Programacion lenguajes
- C++ : [ 1 ] - [ 2 ]
- Java : [ 1 ] - [ 2 ] - [ 3 ] - [ 4 ]
- Kotlin : [ 1 ] - [ 2 ]
- XML : [ 1 ] - [ 2 ]
- Smali : [ 1 ] - [ 2 ] - [ 3 ] - [ 4 ] - [5]
- Assembly : [ 1 ] - [ 2 ] - [ 3 ] - [ 4 ]
Redes
- ISO model
- TCP/IP
- DNC
- HTTP
- SSL/TLS
- Proxy
Criptografia
- Encryption :
- Hashing :
- MAC :
- RSA :
- AES :
Diseño y arquitectura de Android
- Núcleo de Linux: [ 1 ]
- HAL
- Biblioteca Nativa
- Tiempo de ejecución de Android
- API de Java
- Creación de aplicación [1]
- CPI
- Aglutinante
- Máquina virtual Dalvik [1] - [2]
- Sandboxing (caja de arena)
- Usuario y grupo
- Sistema de archivos / Partición
- Archivo
- Base de datos
- SQLite:
Permisos
- Application level : [ 1 ]
- Protection levels
- Custom Permissio
Componentes de la aplicación
- Actividad : [ 1 ]
- Servicio : [ 1 ]
- Receptor de transmisión: [ 1 ]
- Proveedor de contenido: [ 1 ]
- Manifiesto: [ 1 ]
- Intención: [ 1 ] - [ 2 ]
API principal
- Criptografía: [ 1 ]
- Interacción con otras aplicaciones: [ 1 ]
- Interfaz de usuario: [ 1 ]
- Imágenes y gráficos: [ 1 ]
- Audio y vídeo: [ 1 ]
- procesamiento en segundo plano: [ 1 ]
- Datos y archivos de la aplicación: [ 1 ]
- Toque y entrada: [ 1 ]
- Sensores: [ 1 ]
- Conectividad: [ 1 ]
Interacción con el servidor
- Confidencialidad y Autenticación
- Biblioteca HTTP
- OkHttp
- Voleo
- Modernización
- Suite para eructos
- Fijación SSL
- Validación de certificados
- Proxy y sniffer para tráfico HTTP
- Implementación de SSL/TLS
Análisis estático
- Proceso de desarrollo de APK
- Estructura del APK: [ 1 ]
- Descompilación
- Herramienta APK
- Parcheo de código
- Código nativo
- Desmontaje
- IDA
Análisis dinámico
- Rastreo de pila
- Enganche
- Depuración
- ADB
- Emulador
- Movimiento genético
- AVD
- Bluestack
- Detección / Bypass
- Maquina virtual
- PIN SSL
- Enraizamiento
- Drozer
- Objeción
- Xposed
- RMS
- MOBS
Ataques
- Componentes exportados inadvertidamente
- Componentes exportados protegidos de forma inadecuada
- Intenciones que son vulnerables a la interceptación o escuchas clandestinas
- Validación incorrecta del certificado x.509
- Creación de archivos legibles o escribibles por todo el mundo
- Actividades que pueden filtrar datos
- El uso de Sticky Intents
- Intenciones pendientes creadas de forma insegura
- Envío de intenciones de difusión inseguras
- Claves privadas incrustadas en la fuente
- Uso de criptografía débil o inadecuada
- Configuraciones de WebView potencialmente explotables
- Actividades de preferencia exportadas
- Robo de grifos
- Aplicaciones que permiten realizar copias de seguridad
- Aplicaciones que se pueden depurar
- Aplicaciones que admiten versiones de API obsoletas, con vulnerabilidades conocidas
- Transmisión de datos insegura
- IPC inseguro
- Problema de permiso
- Almacenamiento de datos inseguro
- Problema con la vista web
- Registros inseguros
☝️ Ariba las bases
👇 Abajo lo que veo en el camino
[!NOTE] La mayoría de los dispositivos Android funcionan con ARM
Herramientas
- Radare2: [ 1 ]
- am
- pm
- aapt2
- Fridra: [ 1 ] - [2]
- Ghidra
- JADX
- Apktool
- Qark : [ 1 ]
-
bundletool : [1]
Convierte de APKS a APK*
java -jar bundletool-all.jar build-apks --apks=tu_app.apks --output=salida.apk --mode=universal
Assembly
Comnados
Intoducion al los comceptos basicos de ensamblaje arm
Explotacion
ROP
Desarollo de exploit ARM
Radare2
- CLI
-d
:
- Inter
- “iE” :
bdi
: Punto de intrucsionpdda
: Comando para ver el ensamblado y el código fuente descompilado uno al lado del otro.- Debug commands
d
Plugings
r2dec
: Descompilador
Introducción a la interfaz nativa de Java (JNI)
La interfaz nativa de Java (JNI) permite a los desarrolladores declarar métodos Java implementados en código nativo (normalmente compilado en C/C++). La interfaz JNI no es específica de Android, pero está disponible de forma más general para aplicaciones Java que se ejecutan en diferentes plataformas.
Documentación de Oracle JNI
- Espesificacion de JNI
- Funciones de JNI «– Siempre tengo esta abierta y la consulto mientras invierto bibliotecas nativas de Android
Referencias de JNI y NDK de Android
- Consejos sobre JNI para Android <– Recomiendo leer la sección “Bibliotecas nativas” para comenzar
- Introducción al NDK <– Esta es una guía sobre cómo los desarrolladores desarrollan bibliotecas nativas y comprenden cómo se construyen las cosas, lo que hace que sea más fácil revertirlas.
Analisis Estatico
- Buscar cadenas
- (contraseñas, URL, API, cifrado, puertas traseras, tokens, UUID de Bluetooth…)
- Atención especial a las API de Firebase
- Leer el manifiesto
- Comprueba si el APK permite realizar copias de seguridad
- Actividades exportadas
- Servicios expuestos
- Esquemas de URL
Analisis Dinamico
-
Existe alguna fuga de datos no intencionada (registro, copiar/pegar, registros de fallos)?
-
¿Se guarda información confidencial en bases de datos SQLite ?
-
¿Actividades expuestas explotables ?
-
¿Proveedores de contenido explotables ?
-
¿Servicios expuestos explotables ?
-
¿Receptores de transmisión explotables ?
-
¿La aplicación transmite información en texto claro o utilizando algoritmos débiles ? ¿Es posible un MitM?
- Inspeccionar el tráfico HTTP/HTTPS
- Esto es realmente importante, porque si puedes capturar el tráfico HTTP puedes buscar vulnerabilidades web comunes (Hacktricks tiene mucha información sobre vulnerabilidades web).
-
Compruebe si hay posibles inyecciones del lado del cliente de Android (probablemente algún análisis de código estático ayudará aquí)
- Frida : Sólo Frida, úsala para obtener datos dinámicos interesantes de la aplicación (quizás algunas contraseñas…
Analisis Dinamico en Linea
Puedes crear una cuenta gratuita en: https://appetize.io/
. Esta plataforma te permite subir y ejecutar APKs, por lo que es útil para ver cómo se comporta un apk.
Incluso puedes ver los registros de tu aplicación en la web y conectarte a través de adb .
Referencias CTF
Apk-vulnerable [ 1 ] - [ 2 ] - [ 3 ]