Upload
viktoria-heiner
View
108
Download
1
Embed Size (px)
Citation preview
www.fem.tu-ilmenau.de
Exploiting Pocket PC
www.fem.tu-ilmenau.de
Exploiting Pocket PC• PocketPC existiert seit über 5 Jahren
(Windows CE seit ca. 10)
www.fem.tu-ilmenau.de
Exploiting Pocket PC• Windows CE:
– Embedded Betriebssystem von Microsoft– Echtzeitfähig; für „integrierte Anwendungen“
• PDA‘s, cell/smart phones VoIP, Abspielgeräte, Navigationssysteme, ATMs…
– Lauffähig auf x86, MIPS, SH3/4, ARM, StrongARM,…
• PocketPC:– Pocket PC 2000, 2002, 2003, 2003 SE, 2003 phone
edition– Pocket PC Smartphone– umbenannt in Windows Mobile: aktuell 5.0
• Alle PocketPC Betriebssysteme basieren auf Windows CE
www.fem.tu-ilmenau.de
Exploiting Pocket PC• Unterschied PocketPC / WindowsCE /
Windows Mobile…• Es gibt nur wenige Exploits / keine
Viren/Würmer• Wozu überhaupt Exploits? Was für
Exploits?– Keyboard Logger, gepatcht und versteckt,
hardreset…
www.fem.tu-ilmenau.de
Exploiting Pocket PC• Windows CE Architektur:
– max. 256 MB interner Speicher (32 MB max. eine Datei)
– 4 GB virtueller Adressraum• aufgeteilt in „slots“ (jeder slot = 32 MB)• 33 slots für Prozesse und 1 für DLLs, alle anderen für kern• Bei WM5.0: keine Aufteilungsbegrenzung• Alle Prozesse teilen sich den Adressraum
– Es gibt aber Speicherschutz
• Auf 32 Prozesse limitiert (slot 0 ist reserviert) (bei WM5.0 aufgehoben)
– Allerdings kein Thread Limit
www.fem.tu-ilmenau.de
Exploiting Pocket PC• Speicheraufteilung:
www.fem.tu-ilmenau.de
Exploiting Pocket PC• Windows CE DLLs:
– XIP (eXecute In Place)• DLLs werden im ROM/RAM gehalten und lediglich in
den Adressraum gemappt (nicht in den RAM kopiert)
• um Speicher zu sparen• man kann keinen break in einer System-DLL
machen…(Sicherheit)
– eine DLL wird immer an die selbe Adresse gemappt• verschiedene Adressen auf verschiedenen Geräten
www.fem.tu-ilmenau.de
Exploiting Pocket PC• ARM Prozessor:
– am häufigsten in PocketPCs eingesetzt– RISC CPU
• wenig Energieverbrauch• relativ schnell
– ARM CPUs gibt es von verschiedenen Herstellern:• Intel XScale, TI OMAP, …
www.fem.tu-ilmenau.de
Exploiting Pocket PC• Load/Store Architektur
– jede Datenoperation wird in den Registern erledigt
• 37 32 Bit register– R0-R13 zur allgemeinen Verwendung– R15 Zähler (PC)– R14 link Register (LR) für die Rücksprung adresse– R13 normalerweise Stack Pointer
• Status Flag (NZCO)• 32 Bit opcodes in ARM und 16 Bit in Thumb
Modus
www.fem.tu-ilmenau.de
Exploiting Pocket PC• PC und SP sind register die man modifizieren
kann– Code kann sich leicht selbst im Speicher finden:
• SUB R1,PC,#4– R1 enthält die Adresse der nächsten Instruktion
– Die meisten Instruktionen können bedingt ausgeführt werden
• SUBNE R0,R0,#4– SUB wenn nicht gleich…
– Es existiert kein NOP• Virtuelles NOP: MOV R1,R1
www.fem.tu-ilmenau.de
Exploiting Pocket PC• Probleme mit ARM
– separater Cache für Daten und Instruktionen• deshalb kein wirkllicher selbstverändernder Code möglich
– Ältere ARM Prozessoren haben kein XOR Befehl
www.fem.tu-ilmenau.de
Exploiting Pocket PC• Tools:
– PocketPC/WinCE SDK• Microsoft eMbedded Visual C/C++ (eVC)
– Kostenlose Entwicklungsumgebung– Compiler, Debugger, Assembler,…– Spezielle Plattform Tools: Remote Process Viewer…)– Kein Support für ARM inline assembly
• Verschieden Pocket PC SDKs (aktuell Windows Mobile 5.0 SDK)
• Emulatoren für Pocket PC; neu: Emulator der die echte Hardware emuliert)
– ActiveSync:• Synchronisierungssoftware / Dateitransfer / Netzwerkzugriff
www.fem.tu-ilmenau.de
Exploiting Pocket PC• Dissassembler:
– IDA PRO
• Hex Editor• Optional:
– Gcc/gas ARM cross Compiler und Assembler
www.fem.tu-ilmenau.de
Exploiting Pocket PC• Single User Betriebssystem
– Kein Login nur optionaler Geräte-Lock– Jede Applikation kann auf alles zugreifen (nur
unmanaged Applikationen)– keine besondere Sicherheit für nicht-.NET
Programme– Sicherheitsstruktur in .NET umgesetzt
www.fem.tu-ilmenau.de
Exploiting Pocket PC• Mögliche Attacken:
– Netzwerk:• WLAN, GPRS, Bluetooth, USB (WM5)
– Bluetooth• Einige bekannte Bugs (jedoch in aktuellen Versionen
gefixt)– OBEX push Bug (zu lange Dateinamen)
– Infrarot• OBEX; okay sehr unwahrscienlich
– GSM• SMS/MMS parser
www.fem.tu-ilmenau.de
Exploiting Pocket PC• Shellcode
www.fem.tu-ilmenau.de
Exploiting Pocket PC• Shellcode