🟠
Mobile Application Penetration Testing
  • Inicio
  • General
    • Metodologías y estándares
    • Recursos de aprendizaje
  • Android
    • Aplicaciones vulnerables
    • Emuladores
    • Root
    • Android Debug Bridge (adb)
    • Drozer
    • Obtención de app (APK)
    • Análisis estático
      • AndroidManifest.xml
      • Network security config
      • Directorios y archivos
      • Patrones y palabras claves en el código
      • Reversing
        • Aplicaciones nativas
          • Java / Kotlin
        • Aplicaciones híbridas
          • Flutter
          • React Native
          • Xamarin
        • Código nativo / bibliotecas compartidas
      • Ofuscación / Desofuscación
      • Automatizado
    • Análisis dinámico
      • Activities
      • Deep links
      • Content providers
      • Services
      • Anti-root
      • Captura de tráfico de red
        • Burp Suite
        • SSL Pinning
      • Almacenamiento de datos
        • SD card
        • SharedPreferences
        • Bases de datos
      • Logs
      • WebViews
      • Hooking
        • Frida
        • Objection
      • Memory dump
      • Automatizado
    • Firma de app
    • Herramientas
  • iOS
    • Aplicaciones vulnerables
    • Emuladores
    • Jailbreak
    • SSH (Secure SHell)
    • Transferencia de archivos
    • Análisis estático
      • Archivo IPA
      • Info.plist
      • Automatizado
    • Análisis dinámico
      • Anti-jailbreak
      • Biometría
      • Captura de tráfico de red
        • Burp Suite
        • SSL Pinning
      • Almacenamiento de datos
        • Archivos Property List (PList)
        • NSUserDefaults
        • Cache.db
        • Keychain
        • Screenshots
      • Frida
      • Logs
      • Hooking
    • Herramientas
  • Herramientas transversales
    • Frida
    • Frida Gadget
    • Objection
  • Checklist
    • Android application penetration testing
    • iOS application penetration testing
Con tecnología de GitBook
En esta página
  • Instalación de certificado CA de usuario en dispositivo Android
  • Instalación desde GUI (automática)
  • Instalación desde línea de comandos (manual)
  • Instalación de certificado CA de sistema en dispositivo Android

¿Te fue útil?

  1. Android
  2. Análisis dinámico
  3. Captura de tráfico de red

Burp Suite

AnteriorCaptura de tráfico de redSiguienteSSL Pinning

Última actualización hace 1 mes

¿Te fue útil?

Instalación de certificado CA de usuario en dispositivo Android

Instalación desde GUI (automática)

1) Exportar certificado desde Burp Suite.

  • Burp Suite -> Proxy -> Proxy settings -> Proxy listeners -> Import / export CA certificate

2) Guardar certificado con nombre cacert.der.

3) Cambiar extensión al certificado exportado de .der a .cer.

cd ~/Downloads
mv cacert.der cacert.cer

4) Transferir certificado al dispositivo.

adb push cacert.cer /sdcard/Download/

5) Instalación de certificado en el dispositivo.

Dispostivos Samsung:

  • Ajustes -> Datos biométricos y seguridad -> Otros ajustes de seguridad -> Instalar desde almacenamiento

Dispositivos Xiaomi:

  • Configuración -> Contraseñas y seguridad -> Privacidad -> Encriptación y credenciales -> Instalar desde la tarjeta SD

Dispositivos Nexus:

  • Settings -> Security -> Install from SD card

Genymotion:

  • Setting -> Security -> Encryption & credentials -> Install from SD card

Android Studio:

  • Settings -> Security -> Encryption & credentials -> Install a certificate (Install certificates from SD card)

6) Reiniciar el dispositivo.

adb reboot

7) Verificación de instalación del certificado CA de usuario mediante línea de comandos.

adb shell "su -c ls -la /data/misc/user/0/cacerts-added/"

8) Verificación de certificado CA de usuario desde GUI.

Dispostivos Samsung:

  • Ajustes -> Datos biométricos y seguridad -> Otros ajustes de seguridad -> Ver certificados de seguridad

Dispositivos Xiaomi:

  • Configuración -> Contraseñas y seguridad -> Privacidad -> Encriptación y credenciales -> Credenciales de confianza -> Usuario

Dispositivos Nexus:

  • Settings -> Security -> Trusted credentials

Genymotion:

  • Setting -> Security -> Encryption & credentials -> Trusted credentials

Android Studio:

  • Settings -> Security -> Encryption & credentials -> Trusted credentials

Instalación desde línea de comandos (manual)

1) Exportar certificado desde Burp Suite.

  • Burp Suite -> Proxy -> Proxy settings -> Proxy listeners -> Import / export CA certificate

2) Guardar certificado con nombre cacert.der.

3) Convertir certificado exportado de formato DER a formato PEM.

cd ~/Downloads
openssl x509 -inform DER -in cacert.der -out cacert.pem

4) Obtención de "subject hash old" del certificado en formato PEM.

  • Subject hash old = 9a5ba575

openssl x509 -inform PEM -subject_hash_old -in cacert.pem | head -1

5) Cambiar nombre de certificado a su "subject hash old" concatenado con ".0", es decir, [subject-hash-old].0.

  • Nombre certificado = cacert.pem

  • Subject hash old = 9a5ba575

  • Nombre final certificado = 9a5ba575.0

mv cacert.pem 9a5ba575.0

6) Transferir y configurar certificado en el dispositivo.

adb push 9a5ba575.0 /sdcard/
adb shell
su
mv /sdcard/9a5ba575.0 /data/misc/user/0/cacerts-added/
chmod 644 /data/misc/user/0/cacerts-added/9a5ba575.0
chgrp everybody /data/misc/user/0/cacerts-added/9a5ba575.0
chown system /data/misc/user/0/cacerts-added/9a5ba575.0

7) Verificación de instalación del certificado CA de usuario mediante línea de comandos.

adb shell "su -c ls -la /data/misc/user/0/cacerts-added/"

8) Verificación de instalación del certificado CA de usuario desde GUI.

Dispostivos Samsung:

  • Ajustes -> Datos biométricos y seguridad -> Otros ajustes de seguridad -> Ver certificados de seguridad

Dispositivos Xiaomi:

  • Configuración -> Contraseñas y seguridad -> Privacidad -> Encriptación y credenciales -> Credenciales de confianza -> Usuario

Dispositivos Nexus:

  • Settings -> Security -> Trusted credentials

Genymotion:

  • Setting -> Security -> Encryption & credentials -> Trusted credentials

Android Studio:

  • Settings -> Security -> Encryption & credentials -> Trusted credentials

Instalación de certificado CA de sistema en dispositivo Android

1) Exportar certificado desde Burp Suite.

  • Burp Suite -> Proxy -> Proxy settings -> Proxy listeners -> Import / export CA certificate

2) Guardar certificado con nombre cacert.der.

3) Convertir certificado exportado de formato DER a formato PEM.

cd ~/Downloads
openssl x509 -inform DER -in cacert.der -out cacert.pem

4) Obtención de "subject hash old" del certificado en formato PEM.

  • Subject hash old = 9a5ba575

openssl x509 -inform PEM -subject_hash_old -in cacert.pem | head -1

5) Cambiar nombre de certificado a su "subject hash old" concatenado con ".0", es decir, [subject-hash-old].0.

  • Nombre certificado = cacert.pem

  • Subject hash old = 9a5ba575

  • Nombre final certificado = 9a5ba575.0

mv cacert.pem 9a5ba575.0

6) Transferir y configurar certificado en el dispositivo.

Opción 1:

adb root
adb remount
adb push 9a5ba575.0 /sdcard/
adb shell
mv /sdcard/9a5ba575.0 /system/etc/security/cacerts/
chmod 644 /system/etc/security/cacerts/9a5ba575.0
chgrp root /system/etc/security/cacerts/9a5ba575.0

Opción 2:

adb push 9a5ba575.0 /sdcard/
adb shell
su
mount -o rw,remount /
mv /sdcard/9a5ba575.0 /system/etc/security/cacerts/
chmod 644 /system/etc/security/cacerts/9a5ba575.0
chgrp root /system/etc/security/cacerts/9a5ba575.0
mount -o ro,remount /

Opción 3 (directorio /system sin permisos de escritura):

adb push 9a5ba575.0 /sdcard/
adb shell
su
mkdir -p -m 700 /data/local/tmp/ca-copy
mv /sdcard/9a5ba575.0 /data/local/tmp/ca-copy/
cp /system/etc/security/cacerts/* /data/local/tmp/ca-copy/
mount -t tmpfs tmpfs /system/etc/security/cacerts
mv /data/local/tmp/ca-copy/* /system/etc/security/cacerts/
chown root:root /system/etc/security/cacerts/*
chmod 644 /system/etc/security/cacerts/*
chcon u:object_r:system_file:s0 /system/etc/security/cacerts/*
rm -r /data/local/tmp/ca-copy

Opción 4 (Android Studio en Windows):

# Listado de nombres de dispositivos emulados
cd C:\Users\<user>\AppData\Local\Android\Sdk\emulator
.\emulator.exe -list-avds

# Inicio de dispositivo emulado con opción de escritura
.\emulator.exe -avd <emulated-device-name> -writable-system

# Transferencia y configuración de certificado en el dispositivo emulado
.\adb.exe root
.\adb.exe remount
.\adb.exe push 9a5ba575.0 /sdcard/
.\adb.exe shell
mv /sdcard/9a5ba575.0 /system/etc/security/cacerts/
chmod 644 /system/etc/security/cacerts/9a5ba575.0
chgrp root /system/etc/security/cacerts/9a5ba575.0

Opción 5 (Android Studio en Windows):

# Listado de nombres de dispositivos emulados
cd C:\Users\<user>\AppData\Local\Android\Sdk\emulator
.\emulator.exe -list-avds

# Inicio de dispositivo emulado con opción de escritura
.\emulator.exe -avd <emulated-device-name> -writable-system -no-snapshot-load

# Configuración necesaria para evitar que emulador se “congele”
.\adb.exe root
.\adb.exe shell avbctl disable-verification
.\adb.exe reboot

# Transferencia y configuración de certificado en el dispositivo emulado
.\adb.exe root
.\adb.exe remount
.\adb.exe push 9a5ba575.0 /sdcard/
.\adb.exe shell
mv /sdcard/9a5ba575.0 /system/etc/security/cacerts/
chmod 644 /system/etc/security/cacerts/9a5ba575.0
chgrp root /system/etc/security/cacerts/9a5ba575.0

Recuerda que siempre se deberá iniciar el dispositivo emulado de Android Studio con la opción -writable-system.

7) Verificación de instalación del certificado CA de sistema mediante línea de comandos.

adb shell "su -c ls -la /system/etc/security/cacerts/9a5ba575.0"

8) Verificación de instalación del certificado CA de sistema desde GUI.

Dispostivos Samsung:

  • Ajustes -> Datos biométricos y seguridad -> Otros ajustes de seguridad -> Ver certificados de seguridad

Dispositivos Xiaomi:

  • Configuración -> Contraseñas y seguridad -> Privacidad -> Encriptación y credenciales -> Credenciales de confianza

Dispositivos Nexus:

  • Settings -> Security -> Trusted credentials

Genymotion:

  • Setting -> Security -> Encryption & credentials -> Trusted credentials

Android Studio:

  • Settings -> Security -> Encryption & credentials -> Trusted credentials

Seleccionar opción "Certificate in DER format"
Seleccionar opción "Certificate in DER format"
Seleccionar opción "Certificate in DER format"