Jailbreak News

Wie funktioniert der evasi0n iOS 6.1 Jailbreak? planetbeing erklärt evasi0n

Der iOS 6.1 Jailbreak mit dem Jailbreak-Tool evasi0n der Evad3rs planetbeing, pimskeks, pod2g und pimskeks lässt sich extrem einfach auf das Gerät installieren. Einfach evasi0n downloaden und einen Button klicken – schon läuft der gesamte Jailbreak durch und Cydia ist drauf.

So einfach es für die User ist, so schwer war es für das Team, diesen einfachen Jailbreak zu entwickeln. Man kann sich als Normal-User nicht vorstellen, wie anspruchsvoll solch ein Jailbreak hinter den Kulissen zu programmieren ist.

Apple und die Jailbreaker spielen ständig ein Katz-und-Maus Spiel, wobei die Jailbreaker aktuell wieder die Katze sind. Der kalifornische iPhone-Konzern muss jedoch in Form eines iOS-Updates nachziehen, um die nun entdeckten Sicherheitslücken im System zu schließen. Dann geht alles wieder von vorne los.

planetbeing (David Wang) hat der Forbes nun erklärt, wie genau der Jailbreak von iOS 6.0, iOS 6.0.1, iOS 6.0.2 und iOS 6.1 mit evasi0n funktioniert. Wir haben die dortigen Aussagen übersetzt und vereinfacht für euch erklärt.

Insgesamt erfordere es laut planetbeing fünf Sicherheitslücken im System, damit evasi0n funktioniert.

Schritt 1: Zunächst wird libmobiledevice gestartet, um mit dem iOS-Gerät kommunizieren zu können. Von dieser Möglichkeit macht iTunes ebenfalls bei jeder Synchronisierung Gebrauch. Mit libmobiledevice wird dann eine Sicherheitslücke im Backup-System des iOS ausgenutzt, um Zugriff auf Dateien zu bekommen, die normalerweise nicht so einfach erreichbar sind. Von der Datei zur Einstellung der Zeitzone ist die Rede (deshalb verstellte sich bei manchen Geräten nach dem Jailbreak auch die Uhrzeit).

Schritt 2: In diese Zeitzonen-Datei wird dann eine Verknüpfung zu einer anderen Datei gesetzt. Damit wird der Aufruf von dem Programm Launch Daemon (launchd) ermöglicht. Bei launchd handelt es sich um einen Prozess, der immer dann startet, wenn man das iOS-Gerät einschaltet. Er kann Programmen root-Rechte verleihen, also Schreib- und Leserechte im System. Der Clou ist nun, dass bei jedem iTunes Backup-Vorgang automatisch allen Programmen Zugriff auf die Zeitzonen-Datei gewährt wird, welche dank dem “launchd-Trick” gleichzeitig Zugriff auf launchd erlaubt.

Schritt 3: An dieser Stelle kommt der iOS-Sicherheitsmechanismus Code-Signierung ins Spiel. Dieser verhindert normalerweise, dass unsignierte Programme Zugriff auf launchd erlangen können. Dafür wird von jedem Programmcode erfordert, dass er eine fälschungssichere Signatur von Apple aufweist. Um dies zu umgehen, wird beim Jailbreak-Vorgang auf dem Gerät die Applikation Jailbreak installiert, welche dem Gerät vorgaukelt, keinen Programmcode zu besitzen. Sobald der Benutzer diese Applikation antippt, wird ein Unix-Trick ausgeführt, der Code von einer anderen, signierten Applikation kopiert. Genauer gesagt wird Code von der Applikation launchd kopiert, auf welche aufgrund vorher erklärter Hacks Zugriff erlangt werden konnte. Diese wird dann benutzt, um das sonst schreibgeschützte iOS-Dateisystem beschreibbar zu machen.

Schritt 4: Mit dem nun erlangten Schreib- und Lesezugriff auf das Dateisystem verändert evasi0n die Datei launchd.conf, welche für die Konfiguration der launchd-Applikation zuständig ist. Somit muss das iOS-Gerät nicht jedes Mal zum Ausführen der Änderungen an launchd an den Computer angeschlossen werden (tethered Jailbreak), sondern die Änderungen sind permanent (untethered Jailbreak). Der Benutzer kann das iOS-Gerät daher ohne Probleme neustarten.

Schritt 5: Doch selbst nach diesem Vorgang ist das Gerät nicht gejailbreakt. Der Kernel ist nämlich auch für die Code-Signierung zuständig, damit unsignierte Applikationen nicht starten können. Er ist durch den Prozess Apple Mobile File Integrity Daemon (AMFID) geschützt. Als Lösung für dieses Problem benutzt evasi0n launchd, um eine Funktion in AMFID zu verändern, damit bei jeder Überprüfung ob ein Programm signiert ist, automatisch die Antwort “Ja” ausgegeben wird.

Schritt 6: Doch auch an dieser Stelle ist der Jailbreak noch nicht beendet. In iOS steckt ein weiterer Sicherheitsmechanismus namens Adress Space Layout Randomization (ASLR), der das Verändern von Speicher im Kernel verhindert. Dieser Prozess verteilt den Speicher zufällig bei jedem Neustart des Gerätes, damit er nicht an einer bestimmten Stelle permanent überschrieben werden kann. Dieses Problem umgeht evasi0n durch die Simulation eines Crashs, wodurch im Kernel der Ausnahme-Vektor aktiviert wird, der genau angibt, an welcher Stelle der Crash stattgefunden hat. Durch diese Information kann genau bestimmt werden, an welcher Stelle sich der Kernel im Speicher befindet.

Schritt 7: Schließlich, nach dem Aushebeln fast aller iOS-Sicherheitsmechanismen, wird eine letzte Sicherheitslücke in der USB-Schnittstelle von iOS ausgenutzt, um evasi0n den vollständigen Schreibzugriff auf den Kernel zu gewähren. Dadurch kann dem Kernel mitgeteilt werden, dass Änderungen an seinem Code ab sofort möglich sein sollen. Sobald der Kernel erreicht ist, ist das Gerät gejailbreakt. “Dann haben wir gewonnen” – so planetbeing.

Wir verneigen uns vor dem Künsten der Evad3rs und hoffen, dass sie auch für das neue iOS-System iOS 7, welches wohl im Sommer erscheinen wird, einige Asse im Ärmel haben und iOS 7 ebenso knacken (jailbreaken) können.

Wenn ihr nun Lust auf den iOS 6 Jailbreak bekommen habt, empfehlen wir die Lektüre unserer Jailbreak-Anleitung

Das könnte dir auch gefallen:

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht.