iOS Extracting Entitlements From Compiled Application

Support HackTricks

Samevatting van die bladsy 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

Wanneer jy met 'n app se IPA of 'n geïnstalleerde app op 'n jailbroken toestel werk, mag dit nie moontlik wees om .entitlements-lêers of die embedded.mobileprovision-lêer direk te vind nie. Dit is egter steeds moontlik om die entitlements eiendomslijste uit die app-binary te onttrek, volgens die prosedures uiteengesit in die "iOS Basic Security Testing" hoofstuk, veral die "Acquiring the App Binary" afdeling.

Selfs met versleutelde binaries kan sekere stappe gebruik word om hierdie lêers te onttrek. Indien hierdie stappe misluk, kan gereedskap soos Clutch (indien dit met die iOS weergawe versoenbaar is), frida-ios-dump, of soortgelyke nutsmiddels benodig word om die app te ontsleutel en onttrek.

Extracting the Entitlements Plist from the App Binary

Met die app-binary toeganklik op 'n rekenaar, kan binwalk gebruik word om alle XML-lêers te onttrek. Die onderstaande opdrag demonstreer hoe om dit te doen:

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

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

Alternatiewelik kan radare2 gebruik word om stilweg 'n opdrag uit te voer en te verlaat, terwyl daar gesoek word na alle strings in die app-binary wat "PropertyList" bevat:

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

Both methods, binwalk en radare2, stel die ekstraksie van plist-lêers in staat, met 'n inspeksie van die eerste een (0x0015d2a4) wat 'n suksesvolle herstel van die oorspronklike regte lêer van Telegram onthul.

Vir app-binaries wat op jailbreak-toestelle verkry word (bv. via SSH), kan die grep opdrag met die -a, --text vlag gebruik word om alle lêers as ASCII-teks te behandel:

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

Adjustering van die -A num, --after-context=num vlag laat toe dat meer of minder lyne vertoon word. Hierdie metode is lewensvatbaar selfs vir versleutelde app-binaries en is teen verskeie App Store-apps geverifieer. Gereedskap wat vroeër genoem is, kan ook op jailbreak iOS-toestelle vir soortgelyke doeleindes gebruik word.

Nota: Direkte gebruik van die strings opdrag word nie aanbeveel vir hierdie taak nie weens sy beperkings in die vind van relevante inligting. In plaas daarvan, is dit raadsaam om grep met die -a vlag op die binêre te gebruik of radare2 (izz)/rabin2 (-zz) te benut vir meer effektiewe resultate.

Last updated