NotasAndroid_Termux

5 minute read

  5 minute read

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

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

  • as : De lenguage emsablador a codigo maquina
  • ld :

Intoducion al los comceptos basicos de ensamblaje arm

Explotacion

ROP

[1]

Desarollo de exploit ARM

1

2

Radare2

  • CLI
    • -d :
  • Inter
    • “iE” :
    • bdi : Punto de intrucsion
    • pdda : 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

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 ]

Contenido de la comunidad

Pendientes por resolver

Foros que me llamaron la atencion

bypassing-root-detection

BypassSelinux

Seguridad de android

Buscar numeros magicos