# Network Layer Security

{% embed url="<https://mas.owasp.org/MASTG/iOS/0x06g-Testing-Network-Communication/#static-analysis_2>" %}

## Send over HTTP

[proxy-burp](https://ajin-1.gitbook.io/documentation/mobile/ios/configuration/proxy-burp "mention") [configuration-proxy-ios](https://ajin-1.gitbook.io/documentation/mobile/ios/configuration/configuration-proxy-ios "mention") [installation-certificat](https://ajin-1.gitbook.io/documentation/mobile/ios/configuration/installation-certificat "mention") à regarder.

<figure><img src="https://1236449586-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FnLNcn403FNHCLyLwYmTO%2Fuploads%2Fbd3FIVOcfIAQVobdaQ5u%2Fimage.png?alt=media&#x26;token=a01a0910-ac3d-44c6-a72c-2e6daa85122c" alt=""><figcaption></figcaption></figure>

## Send over HTTPS

<figure><img src="https://1236449586-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FnLNcn403FNHCLyLwYmTO%2Fuploads%2FWy6bXmXnpzsd5COsbeAl%2Fimage.png?alt=media&#x26;token=4d6405a3-4170-4465-92ce-032952b3263c" alt=""><figcaption></figcaption></figure>

## SSL Pinning&#x20;

Lorsque que le SSL pinning est activé, cela nous empêche de faire des attaques type MITM donc notre proxy burp ne fonctionnera pas. Il est necessaire de bypass cette protection sinon il nous sera impossible d'analyser les trames et de pouvoir réaliser notre TI mobile.

## Certificate pinning

### Méthode 1 : Objection

Pour bypass le certificate pinning on peut utiliser objection pour intercepter de nouveau le traffic :&#x20;

<figure><img src="https://1236449586-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FnLNcn403FNHCLyLwYmTO%2Fuploads%2FR6l2zvWisCyQASOXxuO7%2Fimage.png?alt=media&#x26;token=438e3960-2757-41a1-9417-08ffc0f77828" alt=""><figcaption></figcaption></figure>

<figure><img src="https://1236449586-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FnLNcn403FNHCLyLwYmTO%2Fuploads%2F6IKKkj8UYQxWMnX9Sk4A%2Fimage.png?alt=media&#x26;token=bc94e85a-8135-49e7-9d0a-3c7f7c6539d1" alt=""><figcaption></figcaption></figure>

### Méthode 2 : Frida&#x20;

Le problème avec l'utilisation de objection c'est la possibilité que l'outils n'arrive pas à désactiver le ssl pinning car les développeur ont utilisé une méthode custom propre à leur code. Il faudra donc désactiver le ssl pinning en faisant du reverse engineering et en utilisant frida.

<https://github.com/sensepost/objection/blob/master/agent/src/ios/pinning.ts>

## Public Key Pinning

### Méthode 1 : Objection&#x20;

<figure><img src="https://1236449586-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FnLNcn403FNHCLyLwYmTO%2Fuploads%2F59DZbHWaav3a20kX2bmA%2Fimage.png?alt=media&#x26;token=9ccc1f43-c719-4b36-a6b7-12f806a5ed55" alt=""><figcaption></figcaption></figure>

### Méthode 2 : Frida&#x20;

<https://github.com/sensepost/objection/blob/master/agent/src/ios/pinning.ts>

## Objection fonctionne très bien pour bypass le ssl pinning sur ios mais beaucoup moins sur Android.

### ATS

Ces informations se trouve dans le fichier Info.plist&#x20;

<figure><img src="https://1236449586-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FnLNcn403FNHCLyLwYmTO%2Fuploads%2FGqigXKV0VwlDQoyVfZyI%2Fimage.png?alt=media&#x26;token=dc534f87-3c62-43b1-9745-4359592f784a" alt=""><figcaption></figcaption></figure>

<figure><img src="https://1236449586-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FnLNcn403FNHCLyLwYmTO%2Fuploads%2F8wVHZykisV4CQLJjBzaE%2Fimage.png?alt=media&#x26;token=2c2860d2-db21-4b4a-94da-a05df735ced9" alt=""><figcaption></figcaption></figure>

##
