iOS Extracting Entitlements From Compiled Application

Support HackTricks

Summary of the page 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

Kada se radi sa IPA aplikacijom ili instaliranom aplikacijom na jailbroken uređaju, možda neće biti moguće direktno pronaći .entitlements datoteke ili embedded.mobileprovision datoteku. Međutim, liste svojstava entitlements i dalje se mogu izvući iz binarne datoteke aplikacije, prateći procedure opisane u poglavlju "iOS Basic Security Testing", posebno u odeljku "Acquiring the App Binary".

Čak i sa enkriptovanim binarnim datotekama, određeni koraci se mogu primeniti za ekstrakciju ovih datoteka. Ako ovi koraci ne uspeju, alati kao što su Clutch (ako je kompatibilan sa verzijom iOS-a), frida-ios-dump ili slične uslužne programe mogu biti potrebni za dekripciju i ekstrakciju aplikacije.

Extracting the Entitlements Plist from the App Binary

Sa binarnom datotekom aplikacije dostupnom na računaru, binwalk se može koristiti za ekstrakciju svih XML datoteka. Komanda ispod prikazuje kako to učiniti:

$ binwalk -e -y=xml ./Telegram\ X

DECIMAL       HEXADECIMAL     DESCRIPTION
--------------------------------------------------------------------------------
1430180       0x15D2A4        XML document, version: "1.0"
1458814       0x16427E        XML document, version: "1.0"

Alternativno, radare2 može biti korišćen za tiho pokretanje komande i izlazak, pretražujući sve stringove u aplikacionom binarnom fajlu koji sadrže "PropertyList":

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

Obe metode, binwalk i radare2, omogućavaju ekstrakciju plist fajlova, pri čemu inspekcija prvog (0x0015d2a4) otkriva uspešno vraćanje originalnog fajla sa ovlašćenjima iz Telegrama.

Za aplikacione binarne fajlove pristupene na jailbreakovanim uređajima (npr. putem SSH), grep komanda sa -a, --text flagom može se koristiti da tretira sve fajlove kao ASCII tekst:

$ grep -a -A 5 'PropertyList' /var/containers/Bundle/Application/...

Podešavanje -A num, --after-context=num opcije omogućava prikaz više ili manje linija. Ova metoda je izvodljiva čak i za enkriptovane aplikacione binarne datoteke i verifikovana je na više aplikacija iz App Store-a. Alati pomenuti ranije mogu se takođe koristiti na jailbreakovanim iOS uređajima u slične svrhe.

Napomena: Direktna upotreba strings komande se ne preporučuje za ovaj zadatak zbog njenih ograničenja u pronalaženju relevantnih informacija. Umesto toga, preporučuje se korišćenje grep-a sa -a opcijom na binarnoj datoteci ili korišćenje radare2 (izz)/rabin2 (-zz) za efikasnije rezultate.

Support HackTricks

Last updated