Burp Suite

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

Seleccionar opción "Certificate in DER format"

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

Seleccionar opción "Certificate in DER format"

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

Seleccionar opción "Certificate in DER format"

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

Última actualización

¿Te fue útil?