Skip to content

Update Information about obtaining and extracting iOS apps #3644

@bernhste

Description

@bernhste

During an iOS penetration test, I came across the following situation: The target app required a version larger than the latest jailbroken iOS, and it was only distributed through TestFlight. And this situation is becoming more common.

This lead me down a rabbit hole about how we can access iOS IPAs in 2025 and beyond.

So I tested the current (Dec 2025) available techniques methods to access iOS apps:

  1. Developers provides unencrypted IPA for mobile devices, Xcode-Simulator, Mac compatibility layer.
    • Directly patch frida.re gadget and resign it using the appropriate embedded.mobileprovision
    • Test it on a current stock device
  2. Download the prod IPA from the official store
    • OS version requirement <= latest Jailbreak: use dynamic FairPlay decryption (e.g. frida-ios-dump (MASTG-TOOL-0050)
    • OS version requirement > latest Jailbreak: Downgrade version and use static FairPlay decryption using TrollDecryptJB. However, this method only decrypted the main binary, not plugins an frameworks.
  3. Download IPA from TestFlight
    • OS version requirement <= latest Jailbreak: Test it on the jailbroken device directly.
    • OS version requirement > latest Jailbreak: Basically out of luck?

The last point was a dead end for me. I intercepted the TestFlight traffic on an old jailbroken device using Burp, changed the OS version and tricked TestFlight into installing it on the old device. But the static decryption with TrollDecryptJB did not work. So without the decrypted IPA I was not able to fully test the profile MAS-L2.

My question though is: How should we address this situation in MASTG? Because one can argue, that this situation is very uncommon for ethical hackers as they work together with a developer which wants to provide the decrypted IPA. Such cases can happen.

In any case, I would like to update MASTG-TECH-0054: Obtaining and Extracting Apps to add the downgrade/TrollStoreJB technique for the app store IPA as this is useful for ethical security testers.

Metadata

Metadata

Assignees

Labels

No labels
No labels

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions