hacktricks/mobile-pentesting/android-app-pentesting/install-burp-certificate.md

182 lines
19 KiB
Markdown

# Install Burp Certificate
{% hint style="success" %}
Learn & practice AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
Learn & practice GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
<details>
<summary>Support HackTricks</summary>
* Check the [**subscription plans**](https://github.com/sponsors/carlospolop)!
* **Join the** ЁЯТм [**Discord group**](https://discord.gg/hRep4RUj7f) or the [**telegram group**](https://t.me/peass) or **follow** us on **Twitter** ЁЯРж [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
* **Share hacking tricks by submitting PRs to the** [**HackTricks**](https://github.com/carlospolop/hacktricks) and [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
</details>
{% endhint %}
<figure><img src="https://pentest.eu/RENDER_WebSec_10fps_21sec_9MB_29042024.gif" alt=""><figcaption></figcaption></figure>
{% embed url="https://websec.nl/" %}
## On a Virtual Machine
рд╕рдмрд╕реЗ рдкрд╣рд▓реЗ рдЖрдкрдХреЛ Burp рд╕реЗ Der рдкреНрд░рдорд╛рдгрдкрддреНрд░ рдбрд╛рдЙрдирд▓реЛрдб рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред рдЖрдк рдЗрд╕реЗ _**Proxy**_ --> _**Options**_ --> _**Import / Export CA certificate**_ рдореЗрдВ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред
![](<../../.gitbook/assets/image (367).png>)
**Der рдкреНрд░рд╛рд░реВрдк рдореЗрдВ рдкреНрд░рдорд╛рдгрдкрддреНрд░ рдирд┐рд░реНрдпрд╛рдд рдХрд░реЗрдВ** рдФрд░ рдЗрд╕реЗ **Android** рджреНрд╡рд╛рд░рд╛ **рд╕рдордЭреЗ рдЬрд╛рдиреЗ рдпреЛрдЧреНрдп** рд░реВрдк рдореЗрдВ **рдкрд░рд┐рд╡рд░реНрддрд┐рдд** рдХрд░реЗрдВред рдзреНрдпрд╛рди рджреЗрдВ рдХрд┐ **AVD рдореЗрдВ Android рдорд╢реАрди рдкрд░ burp рдкреНрд░рдорд╛рдгрдкрддреНрд░ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП** рдЖрдкрдХреЛ рдЗрд╕ рдорд╢реАрди рдХреЛ **`-writable-system`** рд╡рд┐рдХрд▓реНрдк рдХреЗ рд╕рд╛рде **рдЪрд▓рд╛рдирд╛** рд╣реЛрдЧрд╛ред\
рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдЖрдк рдЗрд╕реЗ рдЗрд╕ рддрд░рд╣ рдЪрд▓рд╛ рд╕рдХрддреЗ рд╣реИрдВ:
{% code overflow="wrap" %}
```bash
C:\Users\<UserName>\AppData\Local\Android\Sdk\tools\emulator.exe -avd "AVD9" -http-proxy 192.168.1.12:8080 -writable-system
```
{% endcode %}
рдлрд┐рд░, **рдмрд░реНрдк рдХреЗ рдкреНрд░рдорд╛рдгрдкрддреНрд░ рдХреЛ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП**:
{% code overflow="wrap" %}
```bash
openssl x509 -inform DER -in burp_cacert.der -out burp_cacert.pem
CERTHASHNAME="`openssl x509 -inform PEM -subject_hash_old -in burp_cacert.pem | head -1`.0"
mv burp_cacert.pem $CERTHASHNAME #Correct name
adb root && sleep 2 && adb remount #Allow to write on /syste
adb push $CERTHASHNAME /sdcard/ #Upload certificate
adb shell mv /sdcard/$CERTHASHNAME /system/etc/security/cacerts/ #Move to correct location
adb shell chmod 644 /system/etc/security/cacerts/$CERTHASHNAME #Assign privileges
adb reboot #Now, reboot the machine
```
{% endcode %}
рдПрдХ рдмрд╛рд░ рдЬрдм **рдорд╢реАрди рд░реАрдмреВрдЯ рдХрд░рдирд╛ рд╕рдорд╛рдкреНрдд рдХрд░ рджреЗ** рддреЛ рдмрд░реНрдк рдкреНрд░рдорд╛рдгрдкрддреНрд░ рдЗрд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рдореЗрдВ рд╣реЛрдЧрд╛!
## рдореИрдЬрд┐рдХ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛
рдпрджрд┐ рдЖрдкрдиреЗ **рдореИрдЬрд┐рдХ рдХреЗ рд╕рд╛рде рдЕрдкрдиреЗ рдбрд┐рд╡рд╛рдЗрд╕ рдХреЛ рд░реВрдЯ рдХрд┐рдпрд╛ рд╣реИ** (рд╢рд╛рдпрдж рдПрдХ рдПрдореБрд▓реЗрдЯрд░), рдФрд░ рдЖрдк **рдмрд░реНрдк рдкреНрд░рдорд╛рдгрдкрддреНрд░ рд╕реНрдерд╛рдкрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП** рдкрд┐рдЫрд▓реЗ **рдЪрд░рдгреЛрдВ рдХрд╛ рдкрд╛рд▓рди рдирд╣реАрдВ рдХрд░ рд╕рдХрддреЗ** рдХреНрдпреЛрдВрдХрд┐ **рдлрд╛рдЗрд▓ рд╕рд┐рд╕реНрдЯрдо рдХреЗрд╡рд▓ рдкрдврд╝рдиреЗ рдХреЗ рд▓рд┐рдП рд╣реИ** рдФрд░ рдЖрдк рдЗрд╕реЗ рд▓рд┐рдЦрдиреЗ рдпреЛрдЧреНрдп рдлрд┐рд░ рд╕реЗ рдорд╛рдЙрдВрдЯ рдирд╣реАрдВ рдХрд░ рд╕рдХрддреЗ, рддреЛ рдПрдХ рдФрд░ рддрд░реАрдХрд╛ рд╣реИред
[**рдЗрд╕ рд╡реАрдбрд┐рдпреЛ**](https://www.youtube.com/watch?v=qQicUW0svB8) рдореЗрдВ рд╕рдордЭрд╛рдпрд╛ рдЧрдпрд╛ рд╣реИ рдХрд┐ рдЖрдкрдХреЛ:
1. **рдПрдХ CA рдкреНрд░рдорд╛рдгрдкрддреНрд░ рд╕реНрдерд╛рдкрд┐рдд рдХрд░реЗрдВ**: рдмрд╕ **рдЦреАрдВрдЪреЗрдВ рдФрд░ рдЫреЛрдбрд╝реЗрдВ** DER рдмрд░реНрдк рдкреНрд░рдорд╛рдгрдкрддреНрд░ рдХреЛ **`.crt`** рдПрдХреНрд╕рдЯреЗрдВрд╢рди рдореЗрдВ рдмрджрд▓рддреЗ рд╣реБрдП рдореЛрдмрд╛рдЗрд▓ рдореЗрдВ рддрд╛рдХрд┐ рдпрд╣ рдбрд╛рдЙрдирд▓реЛрдб рдлрд╝реЛрд▓реНрдбрд░ рдореЗрдВ рд╕рдВрдЧреНрд░рд╣реАрдд рд╣реЛ рдЬрд╛рдП рдФрд░ `Install a certificate` -> `CA certificate` рдкрд░ рдЬрд╛рдПрдВред
<figure><img src="../../.gitbook/assets/image (53).png" alt="" width="164"><figcaption></figcaption></figure>
* рдпрд╣ рдЬрд╛рдВрдЪреЗрдВ рдХрд┐ рдкреНрд░рдорд╛рдгрдкрддреНрд░ рд╕рд╣реА рдврдВрдЧ рд╕реЗ рд╕рдВрдЧреНрд░рд╣реАрдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ `Trusted credentials` -> `USER` рдкрд░ рдЬрд╛рдХрд░ред
<figure><img src="../../.gitbook/assets/image (54).png" alt="" width="334"><figcaption></figcaption></figure>
2. **рдЗрд╕реЗ рд╕рд┐рд╕реНрдЯрдо рджреНрд╡рд╛рд░рд╛ рд╡рд┐рд╢реНрд╡рд╕рдиреАрдп рдмрдирд╛рдПрдВ**: рдореИрдЬрд┐рдХ рдореЙрдбреНрдпреВрд▓ [MagiskTrustUserCerts](https://github.com/NVISOsecurity/MagiskTrustUserCerts) (рдПрдХ .zip рдлрд╝рд╛рдЗрд▓) рдбрд╛рдЙрдирд▓реЛрдб рдХрд░реЗрдВ, рдЗрд╕реЗ рдлреЛрди рдореЗрдВ **рдЦреАрдВрдЪреЗрдВ рдФрд░ рдЫреЛрдбрд╝реЗрдВ**, рдлреЛрди рдореЗрдВ **рдореИрдЬрд┐рдХ рдРрдк** рдкрд░ рдЬрд╛рдПрдВ рдФрд░ **`Modules`** рд╕реЗрдХреНрд╢рди рдореЗрдВ, **`Install from storage`** рдкрд░ рдХреНрд▓рд┐рдХ рдХрд░реЗрдВ, `.zip` рдореЙрдбреНрдпреВрд▓ рдХрд╛ рдЪрдпрди рдХрд░реЗрдВ рдФрд░ рдПрдХ рдмрд╛рд░ рд╕реНрдерд╛рдкрд┐рдд рд╣реЛрдиреЗ рдкрд░ **рд░реАрдмреВрдЯ** рдХрд░реЗрдВ:
<figure><img src="../../.gitbook/assets/image (55).png" alt="" width="345"><figcaption></figcaption></figure>
* рд░реАрдмреВрдЯ рдХрд░рдиреЗ рдХреЗ рдмрд╛рдж, `Trusted credentials` -> `SYSTEM` рдкрд░ рдЬрд╛рдПрдВ рдФрд░ рдЬрд╛рдВрдЪреЗрдВ рдХрд┐ Postswigger рдкреНрд░рдорд╛рдгрдкрддреНрд░ рд╡рд╣рд╛рдВ рд╣реИред
<figure><img src="../../.gitbook/assets/image (56).png" alt="" width="314"><figcaption></figcaption></figure>
## рдПрдВрдбреНрд░реЙрдЗрдб 14 рдХреЗ рдмрд╛рдж
рд╣рд╛рд▓ рдХреЗ рдПрдВрдбреНрд░реЙрдЗрдб 14 рд░рд┐рд▓реАрдЬрд╝ рдореЗрдВ, рд╕рд┐рд╕реНрдЯрдо-рд╡рд┐рд╢реНрд╡рд╕рдиреАрдп рдкреНрд░рдорд╛рдгрдкрддреНрд░ рдкреНрд░рд╛рдзрд┐рдХрд░рдг (CA) рдкреНрд░рдорд╛рдгрдкрддреНрд░реЛрдВ рдХреЗ рдкреНрд░рдмрдВрдзрди рдореЗрдВ рдПрдХ рдорд╣рддреНрд╡рдкреВрд░реНрдг рдмрджрд▓рд╛рд╡ рджреЗрдЦрд╛ рдЧрдпрд╛ рд╣реИред рдкрд╣рд▓реЗ, рдпреЗ рдкреНрд░рдорд╛рдгрдкрддреНрд░ **`/system/etc/security/cacerts/`** рдореЗрдВ housed рдереЗ, рдЬрд┐рдиреНрд╣реЗрдВ рд░реВрдЯ рд╡рд┐рд╢реЗрд╖рд╛рдзрд┐рдХрд╛рд░ рд╡рд╛рд▓реЗ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛рдУрдВ рджреНрд╡рд╛рд░рд╛ рдПрдХреНрд╕реЗрд╕ рдФрд░ рд╕рдВрд╢реЛрдзрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рдерд╛, рдЬрд┐рд╕рд╕реЗ рд╕рд┐рд╕реНрдЯрдо рдореЗрдВ рддреБрд░рдВрдд рд▓рд╛рдЧреВ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рдерд╛ред рд╣рд╛рд▓рд╛рдБрдХрд┐, рдПрдВрдбреНрд░реЙрдЗрдб 14 рдХреЗ рд╕рд╛рде, рд╕рдВрдЧреНрд░рд╣рдг рд╕реНрдерд╛рди рдХреЛ **`/apex/com.android.conscrypt/cacerts`** рдореЗрдВ рд╕реНрдерд╛рдирд╛рдВрддрд░рд┐рдд рдХрд░ рджрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ, рдЬреЛ **`/apex`** рдкрде рдХреЗ рднреАрддрд░ рдПрдХ рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ рд╣реИ, рдЬреЛ рд╕реНрд╡рд╛рднрд╛рд╡рд┐рдХ рд░реВрдк рд╕реЗ рдЕрдкрд░рд┐рд╡рд░реНрддрдиреАрдп рд╣реИред
**APEX cacerts рдкрде** рдХреЛ рд▓рд┐рдЦрдиреЗ рдпреЛрдЧреНрдп рдХреЗ рд░реВрдк рдореЗрдВ рдлрд┐рд░ рд╕реЗ рдорд╛рдЙрдВрдЯ рдХрд░рдиреЗ рдХреЗ рдкреНрд░рдпрд╛рд╕ рд╡рд┐рдлрд▓ рд╣реЛрддреЗ рд╣реИрдВ, рдХреНрдпреЛрдВрдХрд┐ рд╕рд┐рд╕реНрдЯрдо рдРрд╕реА рд╕рдВрдЪрд╛рд▓рди рдХреА рдЕрдиреБрдорддрд┐ рдирд╣реАрдВ рджреЗрддрд╛ред рдЕрд╕реНрдерд╛рдпреА рдлрд╝рд╛рдЗрд▓ рдкреНрд░рдгрд╛рд▓реА (tmpfs) рдХреЗ рд╕рд╛рде рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ рдХреЛ рдЕрдирдорд╛рдЙрдВрдЯ рдпрд╛ рдУрд╡рд░рд▓реЗ рдХрд░рдиреЗ рдХреЗ рдкреНрд░рдпрд╛рд╕ рднреА рдЕрдкрд░рд┐рд╡рд░реНрддрдиреАрдпрддрд╛ рдХреЛ рдирд╣реАрдВ рд░реЛрдХрддреЗ; рдЕрдиреБрдкреНрд░рдпреЛрдЧ рдореВрд▓ рдкреНрд░рдорд╛рдгрдкрддреНрд░ рдбреЗрдЯрд╛ рддрдХ рдкрд╣реБрдВрдЪрдирд╛ рдЬрд╛рд░реА рд░рдЦрддреЗ рд╣реИрдВ рдЪрд╛рд╣реЗ рдлрд╝рд╛рдЗрд▓ рд╕рд┐рд╕реНрдЯрдо рд╕реНрддрд░ рдкрд░ рдкрд░рд┐рд╡рд░реНрддрди рд╣реЛрдВ рдпрд╛ рди рд╣реЛрдВред рдпрд╣ рд▓рдЪреАрд▓рд╛рдкрди **`/apex`** рдорд╛рдЙрдВрдЯ рдХреЗ PRIVATE рдкреНрд░реЛрдкрдЧреЗрд╢рди рдХреЗ рд╕рд╛рде рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рд╣реЛрдиреЗ рдХреЗ рдХрд╛рд░рдг рд╣реИ, рдпрд╣ рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдХрд░рддрд╛ рд╣реИ рдХрд┐ **`/apex`** рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ рдХреЗ рднреАрддрд░ рдХреЛрдИ рднреА рд╕рдВрд╢реЛрдзрди рдЕрдиреНрдп рдкреНрд░рдХреНрд░рд┐рдпрд╛рдУрдВ рдХреЛ рдкреНрд░рднрд╛рд╡рд┐рдд рдирд╣реАрдВ рдХрд░рддрд╛ред
рдПрдВрдбреНрд░реЙрдЗрдб рдХрд╛ рдкреНрд░рд╛рд░рдВрднрд┐рдХрдХрд░рдг `init` рдкреНрд░рдХреНрд░рд┐рдпрд╛ рджреНрд╡рд╛рд░рд╛ рд╣реЛрддрд╛ рд╣реИ, рдЬреЛ рдСрдкрд░реЗрдЯрд┐рдВрдЧ рд╕рд┐рд╕реНрдЯрдо рд╢реБрд░реВ рдХрд░рдиреЗ рдкрд░ Zygote рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдХреЛ рднреА рдкреНрд░рд╛рд░рдВрдн рдХрд░рддрд╛ рд╣реИред рдпрд╣ рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдирдП рдорд╛рдЙрдВрдЯ рдирд╛рдорд╕реНрдерд╛рди рдХреЗ рд╕рд╛рде рдЕрдиреБрдкреНрд░рдпреЛрдЧ рдкреНрд░рдХреНрд░рд┐рдпрд╛рдУрдВ рдХреЛ рд▓реЙрдиреНрдЪ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЬрд┐рдореНрдореЗрджрд╛рд░ рд╣реИ рдЬрд┐рд╕рдореЗрдВ рдПрдХ рдирд┐рдЬреА **`/apex`** рдорд╛рдЙрдВрдЯ рд╢рд╛рдорд┐рд▓ рд╣реИ, рдЗрд╕ рдкреНрд░рдХрд╛рд░ рдЗрд╕ рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ рдореЗрдВ рдкрд░рд┐рд╡рд░реНрддрдиреЛрдВ рдХреЛ рдЕрдиреНрдп рдкреНрд░рдХреНрд░рд┐рдпрд╛рдУрдВ рд╕реЗ рдЕрд▓рдЧ рдХрд░рддрд╛ рд╣реИред
рдлрд┐рд░ рднреА, рдЙрди рд▓реЛрдЧреЛрдВ рдХреЗ рд▓рд┐рдП рдПрдХ рд╕рдорд╛рдзрд╛рди рд╣реИ рдЬрд┐рдиреНрд╣реЗрдВ **`/apex`** рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ рдХреЗ рднреАрддрд░ рд╕рд┐рд╕реНрдЯрдо-рд╡рд┐рд╢реНрд╡рд╕рдиреАрдп CA рдкреНрд░рдорд╛рдгрдкрддреНрд░реЛрдВ рдХреЛ рд╕рдВрд╢реЛрдзрд┐рдд рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред рдЗрд╕рдореЗрдВ **`/apex`** рдХреЛ рдореИрдиреНрдпреБрдЕрд▓ рд░реВрдк рд╕реЗ рдлрд┐рд░ рд╕реЗ рдорд╛рдЙрдВрдЯ рдХрд░рдирд╛ рд╢рд╛рдорд┐рд▓ рд╣реИ рддрд╛рдХрд┐ PRIVATE рдкреНрд░реЛрдкрдЧреЗрд╢рди рдХреЛ рд╣рдЯрд╛ рджрд┐рдпрд╛ рдЬрд╛рдП, рдЬрд┐рд╕рд╕реЗ рдЗрд╕реЗ рд▓рд┐рдЦрдиреЗ рдпреЛрдЧреНрдп рдмрдирд╛рдпрд╛ рдЬрд╛ рд╕рдХреЗред рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдореЗрдВ **`/apex/com.android.conscrypt`** рдХреА рд╕рд╛рдордЧреНрд░реА рдХреЛ рдПрдХ рдЕрдиреНрдп рд╕реНрдерд╛рди рдкрд░ рдХреЙрдкреА рдХрд░рдирд╛, рдкрдврд╝рдиреЗ рдХреЗ рд▓рд┐рдП рдХреЗрд╡рд▓ рдкреНрд░рддрд┐рдмрдВрдз рдХреЛ рд╕рдорд╛рдкреНрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП **`/apex/com.android.conscrypt`** рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ рдХреЛ рдЕрдирдорд╛рдЙрдВрдЯ рдХрд░рдирд╛, рдФрд░ рдлрд┐рд░ рд╕рд╛рдордЧреНрд░реА рдХреЛ **`/apex`** рдХреЗ рднреАрддрд░ рдЙрдирдХреЗ рдореВрд▓ рд╕реНрдерд╛рди рдкрд░ рдкреБрдирд░реНрд╕реНрдерд╛рдкрд┐рдд рдХрд░рдирд╛ рд╢рд╛рдорд┐рд▓ рд╣реИред рдЗрд╕ рджреГрд╖реНрдЯрд┐рдХреЛрдг рдХреЗ рд▓рд┐рдП рдкреНрд░рдгрд╛рд▓реА рдХреНрд░реИрд╢ рд╕реЗ рдмрдЪрдиреЗ рдХреЗ рд▓рд┐рдП рддреНрд╡рд░рд┐рдд рдХрд╛рд░реНрд░рд╡рд╛рдИ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИред рдЗрди рдкрд░рд┐рд╡рд░реНрддрдиреЛрдВ рдХреЗ рдкреНрд░рдгрд╛рд▓реА-рд╡реНрдпрд╛рдкреА рдЕрдиреБрдкреНрд░рдпреЛрдЧ рдХреЛ рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, `system_server` рдХреЛ рдкреБрдирд░рд╛рд░рдВрдн рдХрд░рдиреЗ рдХреА рд╕рд┐рдлрд╛рд░рд┐рд╢ рдХреА рдЬрд╛рддреА рд╣реИ, рдЬреЛ рдкреНрд░рднрд╛рд╡реА рд░реВрдк рд╕реЗ рд╕рднреА рдЕрдиреБрдкреНрд░рдпреЛрдЧреЛрдВ рдХреЛ рдкреБрдирд░рд╛рд░рдВрдн рдХрд░рддрд╛ рд╣реИ рдФрд░ рдкреНрд░рдгрд╛рд▓реА рдХреЛ рдПрдХ рд╕реБрд╕рдВрдЧрдд рд╕реНрдерд┐рддрд┐ рдореЗрдВ рд▓рд╛рддрд╛ рд╣реИред
```bash
# Create a separate temp directory, to hold the current certificates
# Otherwise, when we add the mount we can't read the current certs anymore.
mkdir -p -m 700 /data/local/tmp/tmp-ca-copy
# Copy out the existing certificates
cp /apex/com.android.conscrypt/cacerts/* /data/local/tmp/tmp-ca-copy/
# Create the in-memory mount on top of the system certs folder
mount -t tmpfs tmpfs /system/etc/security/cacerts
# Copy the existing certs back into the tmpfs, so we keep trusting them
mv /data/local/tmp/tmp-ca-copy/* /system/etc/security/cacerts/
# Copy our new cert in, so we trust that too
mv $CERTIFICATE_PATH /system/etc/security/cacerts/
# Update the perms & selinux context labels
chown root:root /system/etc/security/cacerts/*
chmod 644 /system/etc/security/cacerts/*
chcon u:object_r:system_file:s0 /system/etc/security/cacerts/*
# Deal with the APEX overrides, which need injecting into each namespace:
# First we get the Zygote process(es), which launch each app
ZYGOTE_PID=$(pidof zygote || true)
ZYGOTE64_PID=$(pidof zygote64 || true)
# N.b. some devices appear to have both!
# Apps inherit the Zygote's mounts at startup, so we inject here to ensure
# all newly started apps will see these certs straight away:
for Z_PID in "$ZYGOTE_PID" "$ZYGOTE64_PID"; do
if [ -n "$Z_PID" ]; then
nsenter --mount=/proc/$Z_PID/ns/mnt -- \
/bin/mount --bind /system/etc/security/cacerts /apex/com.android.conscrypt/cacerts
fi
done
# Then we inject the mount into all already running apps, so they
# too see these CA certs immediately:
# Get the PID of every process whose parent is one of the Zygotes:
APP_PIDS=$(
echo "$ZYGOTE_PID $ZYGOTE64_PID" | \
xargs -n1 ps -o 'PID' -P | \
grep -v PID
)
# Inject into the mount namespace of each of those apps:
for PID in $APP_PIDS; do
nsenter --mount=/proc/$PID/ns/mnt -- \
/bin/mount --bind /system/etc/security/cacerts /apex/com.android.conscrypt/cacerts &
done
wait # Launched in parallel - wait for completion here
echo "System certificate injected"
```
### Bind-mounting through NSEnter
1. **рдПрдХ рд▓рд┐рдЦрдиреЗ рдпреЛрдЧреНрдп рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ рд╕реЗрдЯ рдХрд░рдирд╛**: рдкреНрд░рд╛рд░рдВрдн рдореЗрдВ, рдПрдХ рд▓рд┐рдЦрдиреЗ рдпреЛрдЧреНрдп рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ рд╕реНрдерд╛рдкрд┐рдд рдХреА рдЬрд╛рддреА рд╣реИ рдЬреЛ рдореМрдЬреВрджрд╛ рдЧреИрд░-APEX рд╕рд┐рд╕реНрдЯрдо рдкреНрд░рдорд╛рдгрдкрддреНрд░ рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ рдкрд░ `tmpfs` рдХреЛ рдорд╛рдЙрдВрдЯ рдХрд░рдХреЗ рдмрдирд╛рдИ рдЬрд╛рддреА рд╣реИред рдпрд╣ рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдХрдорд╛рдВрдб рдХреЗ рд╕рд╛рде рдкреНрд░рд╛рдкреНрдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ:
```bash
mount -t tmpfs tmpfs /system/etc/security/cacerts
```
2. **CA рдкреНрд░рдорд╛рдгрдкрддреНрд░реЛрдВ рдХреА рддреИрдпрд╛рд░реА**: рд▓рд┐рдЦрдиреЗ рдпреЛрдЧреНрдп рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ рдХреА рд╕реЗрдЯрдЕрдк рдХреЗ рдмрд╛рдж, CA рдкреНрд░рдорд╛рдгрдкрддреНрд░реЛрдВ рдХреЛ рдЗрд╕ рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ рдореЗрдВ рдХреЙрдкреА рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдПред рдЗрд╕рдореЗрдВ `/apex/com.android.conscrypt/cacerts/` рд╕реЗ рдбрд┐рдлрд╝реЙрд▓реНрдЯ рдкреНрд░рдорд╛рдгрдкрддреНрд░реЛрдВ рдХреЛ рдХреЙрдкреА рдХрд░рдирд╛ рд╢рд╛рдорд┐рд▓ рд╣реЛ рд╕рдХрддрд╛ рд╣реИред рдЗрди рдкреНрд░рдорд╛рдгрдкрддреНрд░реЛрдВ рдХреА рдЕрдиреБрдорддрд┐рдпреЛрдВ рдФрд░ SELinux рд▓реЗрдмрд▓ рдХреЛ рдЙрдЪрд┐рдд рд░реВрдк рд╕реЗ рд╕рдорд╛рдпреЛрдЬрд┐рдд рдХрд░рдирд╛ рдЖрд╡рд╢реНрдпрдХ рд╣реИред
3. **Zygote рдХреЗ рд▓рд┐рдП рдмрд╛рдЗрдВрдб рдорд╛рдЙрдВрдЯрд┐рдВрдЧ**: `nsenter` рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реБрдП, рдХреЛрдИ Zygote рдХреЗ рдорд╛рдЙрдВрдЯ рдирд╛рдорд╕реНрдерд╛рди рдореЗрдВ рдкреНрд░рд╡реЗрд╢ рдХрд░рддрд╛ рд╣реИред Zygote, рдЬреЛ Android рдЕрдиреБрдкреНрд░рдпреЛрдЧреЛрдВ рдХреЛ рд▓реЙрдиреНрдЪ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЬрд┐рдореНрдореЗрджрд╛рд░ рдкреНрд░рдХреНрд░рд┐рдпрд╛ рд╣реИ, рдЗрд╕ рдХрджрдо рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИ рддрд╛рдХрд┐ рд╕рднреА рдЕрдиреБрдкреНрд░рдпреЛрдЧ рдЬреЛ рдЖрдЧреЗ рд╢реБрд░реВ рдХрд┐рдП рдЬрд╛рддреЗ рд╣реИрдВ, рдирдП рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХрд┐рдП рдЧрдП CA рдкреНрд░рдорд╛рдгрдкрддреНрд░реЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВред рдЙрдкрдпреЛрдЧ рдХреА рдЬрд╛рдиреЗ рд╡рд╛рд▓реА рдХрдорд╛рдВрдб рд╣реИ:
```bash
nsenter --mount=/proc/$ZYGOTE_PID/ns/mnt -- /bin/mount --bind /system/etc/security/cacerts /apex/com.android.conscrypt/cacerts
```
рдпрд╣ рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдХрд░рддрд╛ рд╣реИ рдХрд┐ рд╣рд░ рдирдпрд╛ рдРрдк рдЬреЛ рд╢реБрд░реВ рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛, рдЕрдкрдбреЗрдЯреЗрдб CA рд╕рд░реНрдЯрд┐рдлрд┐рдХреЗрдЯ рд╕реЗрдЯрдЕрдк рдХрд╛ рдкрд╛рд▓рди рдХрд░реЗрдЧрд╛ред
4. **рдЪрд▓ рд░рд╣реЗ рдРрдкреНрд╕ рдкрд░ рдкрд░рд┐рд╡рд░реНрддрди рд▓рд╛рдЧреВ рдХрд░рдирд╛**: рдкрд╣рд▓реЗ рд╕реЗ рдЪрд▓ рд░рд╣реЗ рдЕрдиреБрдкреНрд░рдпреЛрдЧреЛрдВ рдкрд░ рдкрд░рд┐рд╡рд░реНрддрди рд▓рд╛рдЧреВ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, `nsenter` рдХрд╛ рдлрд┐рд░ рд╕реЗ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ рддрд╛рдХрд┐ рдкреНрд░рддреНрдпреЗрдХ рдРрдк рдХреЗ рдирд╛рдорд╕реНрдерд╛рди рдореЗрдВ рд╡реНрдпрдХреНрддрд┐рдЧрдд рд░реВрдк рд╕реЗ рдкреНрд░рд╡реЗрд╢ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХреЗ рдФрд░ рдПрдХ рд╕рдорд╛рди рдмрд╛рдЗрдВрдб рдорд╛рдЙрдВрдЯ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХреЗред рдЖрд╡рд╢реНрдпрдХ рдХрдорд╛рдВрдб рд╣реИ:
```bash
nsenter --mount=/proc/$APP_PID/ns/mnt -- /bin/mount --bind /system/etc/security/cacerts /apex/com.android.conscrypt/cacerts
```
5. **рд╡реИрдХрд▓реНрдкрд┐рдХ рджреГрд╖реНрдЯрд┐рдХреЛрдг - рд╕реЙрдлреНрдЯ рд░реАрдмреВрдЯ**: рдПрдХ рд╡реИрдХрд▓реНрдкрд┐рдХ рд╡рд┐рдзрд┐ `init` рдкреНрд░рдХреНрд░рд┐рдпрд╛ (PID 1) рдкрд░ рдмрд╛рдЗрдВрдб рдорд╛рдЙрдВрдЯ рдХрд░рдиреЗ рдХреЗ рдмрд╛рдж рдСрдкрд░реЗрдЯрд┐рдВрдЧ рд╕рд┐рд╕реНрдЯрдо рдХрд╛ рд╕реЙрдлреНрдЯ рд░реАрдмреВрдЯ рдХрд░рдирд╛ рд╢рд╛рдорд┐рд▓ рд╣реИ, рдЬрд┐рд╕рдореЗрдВ `stop && start` рдХрдорд╛рдВрдб рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдпрд╣ рджреГрд╖реНрдЯрд┐рдХреЛрдг рд╕рднреА рдиреЗрдорд╕реНрдкреЗрд╕ рдореЗрдВ рдкрд░рд┐рд╡рд░реНрддрдиреЛрдВ рдХреЛ рдлреИрд▓рд╛рдПрдЧрд╛, рдкреНрд░рддреНрдпреЗрдХ рдЪрд▓ рд░рд╣реЗ рдРрдк рдХреЛ рд╡реНрдпрдХреНрддрд┐рдЧрдд рд░реВрдк рд╕реЗ рд╕рдВрдмреЛрдзрд┐рдд рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╕реЗ рдмрдЪрддреЗ рд╣реБрдПред рд╣рд╛рд▓рд╛рдВрдХрд┐, рдЗрд╕ рд╡рд┐рдзрд┐ рдХреЛ рдЖрдорддреМрд░ рдкрд░ рд░реАрдмреВрдЯ рдХрд░рдиреЗ рдХреА рдЕрд╕реБрд╡рд┐рдзрд╛ рдХреЗ рдХрд╛рд░рдг рдХрдо рдкрд╕рдВрдж рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред
## рд╕рдВрджрд░реНрдн
* [https://httptoolkit.com/blog/android-14-install-system-ca-certificate/](https://httptoolkit.com/blog/android-14-install-system-ca-certificate/)
<figure><img src="https://pentest.eu/RENDER_WebSec_10fps_21sec_9MB_29042024.gif" alt=""><figcaption></figcaption></figure>
{% embed url="https://websec.nl/" %}
{% hint style="success" %}
Learn & practice AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
Learn & practice GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
<details>
<summary>Support HackTricks</summary>
* Check the [**subscription plans**](https://github.com/sponsors/carlospolop)!
* **Join the** ЁЯТм [**Discord group**](https://discord.gg/hRep4RUj7f) or the [**telegram group**](https://t.me/peass) or **follow** us on **Twitter** ЁЯРж [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
* **Share hacking tricks by submitting PRs to the** [**HackTricks**](https://github.com/carlospolop/hacktricks) and [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
</details>
{% endhint %}