0.8 Anleitung für das Pwnage-Tool
Ich hatte ein gebrauchtes iPhone 3G und verwendete es mit dem
Mobilfunk-Anbieter meiner Wahl. Außerdem wollte ich ein paar Programme verwenden,
die es nicht im App-Store gibt. Das Folgende diente daher als
Kurzanleitung für mich, von der ich jedoch
aus Sicherheitsgründen abrate:
-
Mit iTunes synchronisieren, um eine Sicherungskopie
der Daten vom iPhone zu erstellen.
-
Firmware mit iTunes
runterladen, nur sichern, nicht installieren.
-
Von blog.iphone-dev.org
Torrent zum aktuellen Pwnage-Tool holen.
-
PwnageTool.app runterladen.
-
PwnageTool.app starten und aktuelle Firmware öffnen.
-
Gewünschte Optionen eintellen.
-
Optionen-Tip: Für iPhone 3G und Firmware 3.0 muß man
Ultrasn0w installieren. Dazu im Experten-Modus die
zusätzliche Cydia-Quelle "Sources"
hinzufügen: http://repo666.ultrasn0w.com.
Alternativ kann man das auch später auf dem iPhone in Cydia nachholen.
-
Dann die eingestellte Firmware bauen lassen.
-
Aktivierung iPhone “Restore mode”:
iPhone anschließen, oben den Anschalt-Knopf und
unten den Home-Knopf gedrückt
halten bis das iPhone neustartet.
Wenn der Apfel angezeigt wird, den Knopf oben loslassen.
Das iPhone sollte nun das iTunes-Symbol
mit Stecker zeigen.
-
Alt-Klick auf Restore in iTunes.
-
Gebaute Firmware wählen.
-
Nachher mit iTunes letzte Sicherungskopie
zurückspielen (wird automatisch angeboten).
Sicherheits-Risiken durch den Jailbreak
Der Jailbreak beseitigt einige Sicherheits-Mechanismen des Betriebssystems und
ist daher nicht ratsam:
-
Der Jailbreak erlaubt Programmen, als root zu laufen.
-
Der Jailbreak öffnet den Lese- und Schreib-Zugriff auf Systemdateien. Im Normalfall
kann eine App nur auf ihre eigenen Daten zugreifen. Dieses Sandboxing wird durch den
Jailbreak beseitigt.
-
Der Jailbreak beseitigt die Signaturprüfungen, die das System
normalerweise an allen Programmen vornimmt. Dadurch können
Manipulationen, beispielsweise durch Viren, nicht mehr sofort entdeckt werden. Programme können
beliebigen Code (in Form von weiteren Apps) nachladen und diesen installieren. Die Signaturprüfung
verhindert, daß manipulierter signierter Code oder nicht offiziell
signierter Code ausgeführt wird.
-
Der Jailbreak aktiviert den root-Zugang mit einem
im ganzen Netz bekannten Paßwort. Wenn man dieses Paßwort nicht ändert, kann jeder im Netz
mit höchsten Rechten auf das Gerät zugreifen, da in der Regel auch noch ein Zugang über
SSH installiert wird.
-
Der Jailbreak vereinfacht Angriffe, weil nicht mehr super aufwendig der gesamte Schadcode in ROP (Return Oriented
Programming) geschrieben werden muß. ROP verwendet ausführbaren vorhandenen Code und kombiniert ihn
auf kreative neue Weise, um eine schädliche neue Funktion zu erstellen.
Normalweise umgeht man NX/DEP, indem man
mit ROP einen Speicherbereich anlegt, der schreibbar und ausführbar ist, und speichert dort seinen Payload.
Der Payload selbst muß dann nicht mehr per ROP umgesetzt werden, sondern kann normaler Code sein.
Das geht aber nur mit Jailbreaking, was erlaubt, unsignierten Code auszuführen, also auch
sogenannten Shellcode, vom Exploit nachgeladenen Schadcode. Die Code-Signierung ist also nebenbei auch eine
besonders strenge Form von NX/DEP.
-
Das Massenspeicher-Medium eines iOS-Gerätes, also die SSD, hat zwei Partitionen: Die System-Partition hält das
Betriebssystem und die standardmäßig mit ausgelieferten Programme. Diese Partition ist als nicht-schreibbar
gemountet, um Manipulationen durch Schadprogramme zu verhindern. Jailbreaks müssen diese Partition verändern,
um einen Neustart des Gerätes zu überleben, darum mounten sie die System-Partition als les- und schreibbar
und machen damit das System verwundbarer. Die Daten-Partition ist standardmäßig mit den Flags nodev und
nosuid versehen. Durch nodev (no devices) werden Geräte, die eventuell aufgrund eines Angriffs
ins Filesystem eingebunden würden, ignoriert. Und durch nosuid wird suid auf allen Dateien ignoriert, wodurch
ansonsten auf root eskaliert werden könnte. Jailbreaks beseitigen diese beiden Flags aus der Mount-Konfiguration
für die Daten-Partition und erleichtern damit generell Angriffe. (Vergleiche dazu im iOS Hacker's Handbook
das Kapitel
"Jailbreaking the Filesystem").
-
Jailbreaks installieren zusätzliche Dienste (services) und Dämonen (daemons) auf der System-Partition.
Diese zusätzlichen System-Programme vergrößern die Angriffsoberfläche um ein paar sehr lohnenswerte Ziele,
die dem Angreifer die volle Systemkontrolle bringen können.
Der Jailbreak macht also genau das, was man bei Unix als das Dümmste, was man
überhaupt tun könnte, bezeichnet: Beliebigen Code mit höchsten Rechten
ausführen und normalen Programmen ermöglichen, das System zu manipulieren. Außerdem schaltet der
Jailbreak durch Beseitigung der zwingenden Code-Signierung auch andere Sicherheits-Mechanismen
des Systems aus. Außerdem konfiguriert er das System auf unsicher um.
Latest Update: 13. September 2015 at 14:59h (german time)
Link:
osx.realmacmark.de/osx_iphone_pwnage.php