# 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


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://mobile.mrw0l05zyn.cl/android/analisis-dinamico/captura-de-trafico-de-red/burp-suite.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
