> For the complete documentation index, see [llms.txt](https://mobile.mrw0l05zyn.cl/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://mobile.mrw0l05zyn.cl/android/analisis-dinamico/captura-de-trafico-de-red/burp-suite.md).

# Burp Suite

## Instalación de certificado CA de usuario en dispositivo Android <a href="#instalacion-de-certificado-ca-de-confianza-de-usuario-en-dispositivo-android" id="instalacion-de-certificado-ca-de-confianza-de-usuario-en-dispositivo-android"></a>

### 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"](/files/V4a6fFvIznhAekDk9LEc)

2\) Guardar certificado con nombre `cacert.der`.

![](/files/B2O2CStcCKLF4rZqOIs3)

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

```shell
cd ~/Downloads
mv cacert.der cacert.cer
```

4\) Transferir certificado al dispositivo.

```shell
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)

![](/files/yAnf5yo0ykIR0W2P6ZB7)

6\) Reiniciar el dispositivo.

```shell
adb reboot
```

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

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

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

![](/files/TdO0EPviqJ8GUmbskGec)

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"](/files/V4a6fFvIznhAekDk9LEc)

2\) Guardar certificado con nombre `cacert.der`.

![](/files/B2O2CStcCKLF4rZqOIs3)

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

```shell
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`

```shell
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`

```shell
mv cacert.pem 9a5ba575.0
```

6\) Transferir y configurar certificado en el dispositivo.

```shell
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.

```shell
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.

<figure><img src="/files/TdO0EPviqJ8GUmbskGec" alt=""><figcaption></figcaption></figure>

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 <a href="#instalacion-de-certificado-ca-de-confianza-de-sistema-en-dispositivo-android" id="instalacion-de-certificado-ca-de-confianza-de-sistema-en-dispositivo-android"></a>

1\) Exportar certificado desde Burp Suite.

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

![Seleccionar opción "Certificate in DER format"](/files/V4a6fFvIznhAekDk9LEc)

2\) Guardar certificado con nombre `cacert.der`.

![](/files/B2O2CStcCKLF4rZqOIs3)

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

```shell
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`

```shell
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`

```shell
mv cacert.pem 9a5ba575.0
```

6\) Transferir y configurar certificado en el dispositivo.

Opción 1:

```shell
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:

```shell
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):

```sh
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):

```shell
# 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):

```shell
# 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
```

{% hint style="info" %}
Recuerda que siempre se deberá iniciar el dispositivo emulado de Android Studio con la opción `-writable-system`.
{% endhint %}

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

```shell
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.

![](/files/h4UDB9FTC5mQmyTJHXrC)

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
