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

42 lines
3.4 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# Derlenmiş Uygulamadan Yetkilerin Çıkarılması
{{#include ../../banners/hacktricks-training.md}}
Sayfanın özeti [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)
### **Yetkilerin ve Mobil Sağlama Dosyalarının Çıkarılması**
Bir uygulamanın IPA'sı veya jailbreak yapılmış bir cihazda kurulu bir uygulama ile çalışırken, `.entitlements` dosyalarını veya `embedded.mobileprovision` dosyasını doğrudan bulmak mümkün olmayabilir. Ancak, yetki özellik listeleri uygulama ikili dosyasından çıkarılabilir; bu, "iOS Temel Güvenlik Testi" bölümünde, özellikle "Uygulama İkili Dosyasını Edinme" kısmında belirtilen prosedürleri takip ederek yapılabilir.
Şifreli ikili dosyalarla bile, bu dosyaları çıkarmak için belirli adımlar uygulanabilir. Bu adımlar başarısız olursa, Clutch (iOS sürümüyle uyumluysa), frida-ios-dump veya benzeri yardımcı programlar uygulamayı şifre çözmek ve çıkarmak için gerekli olabilir.
#### **Uygulama İkili Dosyasından Yetki Plist'inin Çıkarılması**
Uygulama ikili dosyası bir bilgisayarda erişilebilir olduğunda, **binwalk** kullanılarak tüm XML dosyaları çıkarılabilir. Aşağıdaki komut bunu nasıl yapacağınızı göstermektedir:
```bash
$ binwalk -e -y=xml ./Telegram\ X
DECIMAL HEXADECIMAL DESCRIPTION
--------------------------------------------------------------------------------
1430180 0x15D2A4 XML document, version: "1.0"
1458814 0x16427E XML document, version: "1.0"
```
Alternatif olarak, **radare2** sessizce bir komut çalıştırmak ve çıkmak için kullanılabilir, "PropertyList" içeren uygulama ikili dosyasındaki tüm dizeleri aramak için:
```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"?>...
```
Her iki yöntem, binwalk ve radare2, `plist` dosyalarının çıkarılmasını sağlar; birincisinin (0x0015d2a4) incelenmesi, [Telegram'dan orijinal yetkilendirme dosyasının](https://github.com/peter-iakovlev/Telegram-iOS/blob/77ee5c4dabdd6eb5f1e2ff76219edf7e18b45c00/Telegram-iOS/Telegram-iOS-AppStoreLLC.entitlements) başarılı bir şekilde kurtarıldığını ortaya koymaktadır.
Jailbroken cihazlarda (örneğin, SSH üzerinden) erişilen uygulama ikili dosyaları için, **grep** komutu `-a, --text` bayrağı ile tüm dosyaları ASCII metin olarak ele almak için kullanılabilir:
```bash
$ grep -a -A 5 'PropertyList' /var/containers/Bundle/Application/...
```
`-A num, --after-context=num` bayrağını ayarlamak, daha fazla veya daha az satırın görüntülenmesine olanak tanır. Bu yöntem, şifreli uygulama ikili dosyaları için bile geçerlidir ve birden fazla App Store uygulaması üzerinde doğrulanmıştır. Daha önce bahsedilen araçlar, benzer amaçlar için jailbreak yapılmış iOS cihazlarında da kullanılabilir.
**Not**: Bu görev için `strings` komutunun doğrudan kullanılması, ilgili bilgileri bulmadaki sınırlamaları nedeniyle önerilmez. Bunun yerine, ikili dosya üzerinde `-a` bayrağı ile grep kullanmak veya daha etkili sonuçlar için radare2 (`izz`)/rabin2 (`-zz`) kullanmak tavsiye edilir.
{{#include ../../banners/hacktricks-training.md}}