Wenn man einen Penetrationtest auf iOS Apps machen möchte, dann braucht man im Vergleich zu Android Apps leider macOS und ein physisches iOS-Device. Natürlich argumentiert der Eine oder Andere ein Betriebssystem wie Mobexler welches auch iOS Penetration Testing Tools beinhaltet ist ebenso möglich, ich kann hier aber nüchtern aus der Erfahrung von bisher 72 iOS Penetration Tests sagen, dass es nicht so effizient und stabil ist wie mit macOS. Auch eine Simulation wie der Emulator von Xcode ist keine Alternative, weil jegliche Simulatoren keinen Netzwerktraffic senden und nicht vollen Umfang bieten.


Was eine Möglichkeit ist, aber sehr teuer ist, ist Corellium damit kannst du ein oder mehrere iOS Device Virtualisieren und darauf via USBFlux mittels VPN connecten. Soweit so gut, aber 600€/Monat für professionelles Testen ist leider doch teuerer als ein gebrauchtes iPhone 8/X, welche aktuell um 200-350€ gehandelt werden. Es gibt zwar eine Lösung wo man nach echtem Verbrauch zahlt und Ansicht scheint es nur ein paar Cent hier ein paar da, aber im Pentest mit 3 Tagen Budget, war es dann oft zwischen 150-200€ was uns an Kosten erwartet haben. Der Vorteil am Corellium ist jedoch, dass man sich nicht um den Jailbreak kümmern muss, den der wird automatisch für einen gemacht. Gut, Jailbreaking ist heutzutage auch nicht mehr so schwer :D Hierfür gibt es 2 gute Jailbreaks checkra1n und unc0ver.


Kommen wir nun zu den Tools, die wir täglich im iOS App Pentesting einsetzen:


  1. MOBSF
  2. Grapefruit/Passionfruit
  3. Hopper Dissassembler
  4. Frida + Objection
  5. Burp Suite (Pro)


Kommen wir nun zu den Details :)


MOBSF

MOBSF ist ein Opensource Tool, welches am besten über einen Docker-Container gestartet wird und für dich SAST (Static Application Security Testing) oder auch bekannt als statische Code Analyse bekannt ist. Sowohl für iOS Apps, als auch Android Apps ist es ein guter Start um Attack Surfaces und eine Analyse der PList/Manifest zu machen.


Mittels MOBSF kann man im iOS App Penetration Test einige Angriffsflächen wie falsche Permissions, schlechte Libraries oder falsche Compiler-Flags auslesen und sieht grob einen Überblick über die Angriffsvektoren der App.

MOBSF



Grapefruit & Passionfruit

Grapefruit und Passionfruit sind 2 Web-Applikationen, die mittels NPM installiert werden können und dir helfen, wenn du das Filesystem eines iPhones nach verwendeten lokalen Storage-Methoden, der Keychain und Files der App analysieren willst. Ich persönlich habe mit Passionfruit in Bezug auf Keychain dumping (Wenn ein Developer Dinge unverschlüsselt in die Keychain speichert können wir das auslesen) bessere Erfahrungen gemacht. Was dir persönlich besser gefällt von beiden Tools ist deine Entscheidung ;)

Grapefruit/Passionfruit



Hopper Dissassembler

Hopper ist in meinen Augen die beste Reverse Engineering Suite für macOS und iOS. Ja auch ein IDA Pro und ein Ghidra unterstützen es, jedoch nicht so gut wie ein Hopper, wenn es darum geht alle Methoden, Klassen und Instanzen auszulesen. Ebenso ist der Pseudo-Objektiv-Code von Hopper qualitativer als bei den anderen beiden. Und das Beste ist, dass Hopper nur einmalige 100€ kostet. Mit Hopper können wir Beispielsweise einen Jailbreak-Detection-Bypass oder SSL-Pinning-Bypass mittels Binary Patching machen. Auch hilft es uns Dinge wie statische SQL Statements zu identifizieren und gibt uns einen Aufschluss über den Aufbau der iOS App. Natürlich benötigt Reverse-Engineering sehr viel Zeit und einiges an Einlesen in die ARM Manuals für die iOS Architektur :D Daher ist wohl Frida + Objection für viele der Einstieg in das "soft" Reverse Engineering.

Hopper Dissassembler



Frida + Objection

Frida ist ähnlich ein Analyse und Exploitation Tool, dass dir viele Möglichkeiten bietet. Objection ist sozusagen Frida 2.0, es erweitert Frida und die Frida-Tools (z.B. frida-ps und frida-trace) um ein Command-Line UI wie es ein Drozer (bekannt aus unserem Android App Penetration Testing Blog-Post) hat. Mittels Frida kannst du Runtime Analyse/Runtime Reverse Engineering betreiben. Das heißt du kannst z.B. mittels frida-ps laufende Prozesse analysieren, mittels Frida-Trace während der Runtime Funktionen und Klassen analysieren und sogar eigene Frida-Scripts einschalten um dir Informationen von Klassen/Instances, Funktionen oder Speicheradressen zu dumpen. (Wir nehmen hierfür meistens Javascript, da es am Besten funktioniert, auch wenn wir eigentlich auf der Python-Seite sind ;) )

Objection kann dann auch z.B. einen Jailbreak-Detection-Bypass, SSL-Pinning-Bypass, Byometrics-Bypass machen, das wir normal mühsam über Binary Patching und Reverse Engineering machen müssten.

Frida + Objection



Burp Suite (Pro)

Eine Burp Suite ist doch für Web Application Penetration Testing oder etwa nicht? Ja und nein :D Wir können uns den Burp Proxy genauso für die Analyse der Requests von mobile Applications und deren Response der End-Points(APIs) einrichten. Das schöne an der Burp Suite ist einfach die Vielfältigkeit und dass wir sie ohne große Zauberei in unser iOS Device als Proxy einbinden können. Danach müssen wir nur mehr das Zertifikat der Burp Suite in unser Device importieren und akzeptieren. Dann können wir auch HTTPs Verbindungen intercepten. Vielleicht brauchen wir noch Objection für den SSL-Pinning-Bypass, aber dann sind wir ready to test. In den meisten Fällen brauchst du auch keine Pro-Version davon und kannst mit der kostenlosen Edition loslegen.

Burp Suite (Pro)


Wenn dich iOS Penetration Testing Interessiert, dann sieh dir doch das 3 Stündige Video von unserem YouTube-Channel an, da sprechen wir sehr detailliert über das iOS App Penetration Testing und zeigen einiges an Praxis.


Hat dir das Thema Spaß gemacht und du würdest gerne mehr davon haben? Dich zum professionellen Penetration Tester fortbilden? Dann bewirb dich bei uns im Mentoring und schon bald lebst du deinen Traum als Penetration Tester.

Senior Security Consultant/Penetration Tester | CEO

Home Seo Blog

Unsere Partner

Swiss Infosec AG ZTP
Stich IT TheMorpheus FrankITS
IT-S2-PG IT-S2-PG
Cookie Warnung

Akzeptieren Für statistische Zwecke und um bestmögliche Funktionalität zu bieten, speichert diese Website Cookies auf Ihrem Gerät. Das Speichern von Cookies kann in den Browser-Einstellungen deaktiviert werden. Wenn Sie die Website weiter nutzen, stimmen Sie der Verwendung von Cookies zu.