hacktricks/mobile-pentesting/ios-pentesting/extracting-entitlements-from-compiled-application.md

53 lines
6.5 KiB
Markdown

# Extracting Entitlements from Compiled Application
{% 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 %}
Summary of the page [https://mas.owasp.org/MASTG/tests/ios/MASVS-PLATFORM/MASTG-TEST-0069/#review-entitlements-embedded-in-the-compiled-app-binary](https://mas.owasp.org/MASTG/tests/ios/MASVS-PLATFORM/MASTG-TEST-0069/#review-entitlements-embedded-in-the-compiled-app-binary)
### **Extracting Entitlements and Mobile Provision Files**
рдЬрдм рдПрдХ рдРрдк рдХреЗ IPA рдпрд╛ рдЬреЗрд▓рдмреНрд░реЛрдХрди рдбрд┐рд╡рд╛рдЗрд╕ рдкрд░ рд╕реНрдерд╛рдкрд┐рдд рдРрдк рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░ рд░рд╣реЗ рд╣реЛрдВ, рддреЛ рд╕реАрдзреЗ `.entitlements` рдлрд╝рд╛рдЗрд▓реЗрдВ рдпрд╛ `embedded.mobileprovision` рдлрд╝рд╛рдЗрд▓ рдЦреЛрдЬрдирд╛ рд╕рдВрднрд╡ рдирд╣реАрдВ рд╣реЛ рд╕рдХрддрд╛ рд╣реИред рд╣рд╛рд▓рд╛рдБрдХрд┐, рдРрдк рдмрд╛рдЗрдирд░реА рд╕реЗ рдПрдВрдЯрд╛рдЗрдЯрд▓рдореЗрдВрдЯ рдкреНрд░реЙрдкрд░реНрдЯреА рд▓рд┐рд╕реНрдЯ рдХреЛ рдЕрднреА рднреА рдирд┐рдХрд╛рд▓рд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ, "iOS Basic Security Testing" рдЕрдзреНрдпрд╛рдп рдореЗрдВ рд╡рд░реНрдгрд┐рдд рдкреНрд░рдХреНрд░рд┐рдпрд╛рдУрдВ рдХрд╛ рдкрд╛рд▓рди рдХрд░рддреЗ рд╣реБрдП, рд╡рд┐рд╢реЗрд╖ рд░реВрдк рд╕реЗ "Acquiring the App Binary" рдЕрдиреБрднрд╛рдЧред
рдПрдиреНрдХреНрд░рд┐рдкреНрдЯреЗрдб рдмрд╛рдЗрдирд░реА рдХреЗ рд╕рд╛рде рднреА, рдЗрди рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреЛ рдирд┐рдХрд╛рд▓рдиреЗ рдХреЗ рд▓рд┐рдП рдХреБрдЫ рдХрджрдо рдЙрдард╛рдП рдЬрд╛ рд╕рдХрддреЗ рд╣реИрдВред рдпрджрд┐ рдпреЗ рдХрджрдо рд╡рд┐рдлрд▓ рд╣реЛрддреЗ рд╣реИрдВ, рддреЛ Clutch (рдпрджрд┐ iOS рд╕рдВрд╕реНрдХрд░рдг рдХреЗ рд╕рд╛рде рд╕рдВрдЧрдд рд╣реЛ), frida-ios-dump, рдпрд╛ рд╕рдорд╛рди рдЙрдкрдпреЛрдЧрд┐рддрд╛рдПрдБ рдРрдк рдХреЛ рдбрд┐рдХреНрд░рд┐рдкреНрдЯ рдФрд░ рдирд┐рдХрд╛рд▓рдиреЗ рдХреЗ рд▓рд┐рдП рдЖрд╡рд╢реНрдпрдХ рд╣реЛ рд╕рдХрддреА рд╣реИрдВред
#### **Extracting the Entitlements Plist from the App Binary**
рдЬрдм рдРрдк рдмрд╛рдЗрдирд░реА рдПрдХ рдХрдВрдкреНрдпреВрдЯрд░ рдкрд░ рд╕реБрд▓рдн рд╣реЛ, рддреЛ **binwalk** рдХрд╛ рдЙрдкрдпреЛрдЧ рд╕рднреА XML рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреЛ рдирд┐рдХрд╛рд▓рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред рдиреАрдЪреЗ рджрд┐рдП рдЧрдП рдХрдорд╛рдВрдб рд╕реЗ рдРрд╕рд╛ рдХрд░рдиреЗ рдХрд╛ рддрд░реАрдХрд╛ рджрд░реНрд╢рд╛рдпрд╛ рдЧрдпрд╛ рд╣реИ:
```bash
$ binwalk -e -y=xml ./Telegram\ X
DECIMAL HEXADECIMAL DESCRIPTION
--------------------------------------------------------------------------------
1430180 0x15D2A4 XML document, version: "1.0"
1458814 0x16427E XML document, version: "1.0"
```
рд╡реИрдХрд▓реНрдкрд┐рдХ рд░реВрдк рд╕реЗ, **radare2** рдХрд╛ рдЙрдкрдпреЛрдЧ рдЪреБрдкрдЪрд╛рдк рдПрдХ рдХрдорд╛рдВрдб рдЪрд▓рд╛рдиреЗ рдФрд░ рдмрд╛рд╣рд░ рдирд┐рдХрд▓рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ, рдРрдк рдмрд╛рдЗрдирд░реА рдореЗрдВ "PropertyList" рд╡рд╛рд▓реЗ рд╕рднреА рд╕реНрдЯреНрд░рд┐рдВрдЧреНрд╕ рдХреА рдЦреЛрдЬ рдХрд░рддреЗ рд╣реБрдП:
```bash
$ r2 -qc 'izz~PropertyList' ./Telegram\ X
0x0015d2a4 ascii <?xml version="1.0" encoding="UTF-8" standalone="yes"?>...
0x0016427d ascii H<?xml version="1.0" encoding="UTF-8"?>...
```
рджреЛрдиреЛрдВ рд╡рд┐рдзрд┐рдпрд╛рдБ, binwalk рдФрд░ radare2, `plist` рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреЛ рдирд┐рдХрд╛рд▓рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддреА рд╣реИрдВ, рдкрд╣рд▓реЗ рд╡рд╛рд▓реЗ (0x0015d2a4) рдХреА рдЬрд╛рдВрдЪ рдХрд░рдиреЗ рдкрд░ Telegram рд╕реЗ [рдореВрд▓ рдЕрдзрд┐рдХрд╛рд░ рдлрд╝рд╛рдЗрд▓ рдХреА рд╕рдлрд▓ рд╡рд╕реВрд▓реА](https://github.com/peter-iakovlev/Telegram-iOS/blob/77ee5c4dabdd6eb5f1e2ff76219edf7e18b45c00/Telegram-iOS/Telegram-iOS-AppStoreLLC.entitlements) рдХрд╛ рдкрддрд╛ рдЪрд▓рддрд╛ рд╣реИред
рдЬреЗрд▓рдмреНрд░реЛрдХрди рдЙрдкрдХрд░рдгреЛрдВ рдкрд░ рдкрд╣реБрдБрдЪреА рдЧрдИ рдРрдк рдмрд╛рдЗрдирд░реАрдЬрд╝ (рдЬреИрд╕реЗ, SSH рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ) рдХреЗ рд▓рд┐рдП, **grep** рдХрдорд╛рдВрдб рдХреЗ рд╕рд╛рде `-a, --text` рдзреНрд╡рдЬ рдХрд╛ рдЙрдкрдпреЛрдЧ рд╕рднреА рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреЛ ASCII рдкрд╛рда рдХреЗ рд░реВрдк рдореЗрдВ рдорд╛рдирдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ:
```bash
$ grep -a -A 5 'PropertyList' /var/containers/Bundle/Application/...
```
`-A num, --after-context=num` рдлреНрд▓реИрдЧ рдХреЛ рд╕рдорд╛рдпреЛрдЬрд┐рдд рдХрд░рдиреЗ рд╕реЗ рдЕрдзрд┐рдХ рдпрд╛ рдХрдо рд▓рд╛рдЗрдиреЛрдВ рдХреЛ рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рдорд┐рд▓рддреА рд╣реИред рдпрд╣ рд╡рд┐рдзрд┐ рдПрдиреНрдХреНрд░рд┐рдкреНрдЯреЗрдб рдРрдк рдмрд╛рдЗрдирд░реА рдХреЗ рд▓рд┐рдП рднреА рд╡реНрдпрд╡рд╣рд╛рд░реНрдп рд╣реИ рдФрд░ рдЗрд╕реЗ рдХрдИ рдРрдк рд╕реНрдЯреЛрд░ рдРрдкреНрд╕ рдХреЗ рдЦрд┐рд▓рд╛рдл рд╕рддреНрдпрд╛рдкрд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред рдкрд╣рд▓реЗ рдЙрд▓реНрд▓реЗрдЦрд┐рдд рдЙрдкрдХрд░рдгреЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдЬреЗрд▓рдмреНрд░реЛрдХрди iOS рдЙрдкрдХрд░рдгреЛрдВ рдкрд░ рд╕рдорд╛рди рдЙрджреНрджреЗрд╢реНрдпреЛрдВ рдХреЗ рд▓рд┐рдП рднреА рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред
**рдиреЛрдЯ**: рдЗрд╕ рдХрд╛рд░реНрдп рдХреЗ рд▓рд┐рдП `strings` рдХрдорд╛рдВрдб рдХрд╛ рдкреНрд░рддреНрдпрдХреНрд╖ рдЙрдкрдпреЛрдЧ рдЗрд╕рдХреА рдкреНрд░рд╛рд╕рдВрдЧрд┐рдХ рдЬрд╛рдирдХрд╛рд░реА рдЦреЛрдЬрдиреЗ рдореЗрдВ рд╕реАрдорд╛рдУрдВ рдХреЗ рдХрд╛рд░рдг рдЕрдиреБрд╢рдВрд╕рд┐рдд рдирд╣реАрдВ рд╣реИред рдЗрд╕рдХреЗ рдмрдЬрд╛рдп, рдмрд╛рдЗрдирд░реА рдкрд░ `-a` рдлреНрд▓реИрдЧ рдХреЗ рд╕рд╛рде grep рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рдпрд╛ рдЕрдзрд┐рдХ рдкреНрд░рднрд╛рд╡реА рдкрд░рд┐рдгрд╛рдореЛрдВ рдХреЗ рд▓рд┐рдП radare2 (`izz`)/rabin2 (`-zz`) рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рдЙрдЪрд┐рдд рд╣реИред