iOS Extracting Entitlements From Compiled Application

HackTricks'i Destekleyin

Sayfanın özeti 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:

$ 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:

$ 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 yetki dosyasının başarılı bir şekilde kurtarıldığını ortaya koymaktadır.

Jailbroken cihazlarda erişilen uygulama ikili dosyaları için (örneğin, SSH üzerinden), grep komutu -a, --text bayrağı ile tüm dosyaları ASCII metin olarak ele almak için kullanılabilir:

$ 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.

Support HackTricks

Last updated