1 / 17

Exploiting Pocket PC

Exploiting Pocket PC. Exploiting Pocket PC. PocketPC existiert seit über 5 Jahren (Windows CE seit ca. 10). Exploiting Pocket PC. Windows CE: Embedded Betriebssystem von Microsoft Echtzeitfähig; für „integrierte Anwendungen“

medge-cruz
Télécharger la présentation

Exploiting Pocket PC

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Exploiting Pocket PC

  2. Exploiting Pocket PC • PocketPC existiert seit über 5 Jahren(Windows CE seit ca. 10)

  3. 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

  4. 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…

  5. 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

  6. Exploiting Pocket PC • Speicheraufteilung:

  7. 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

  8. 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, …

  9. 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

  10. 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

  11. 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

  12. 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

  13. Exploiting Pocket PC • Dissassembler: • IDA PRO • Hex Editor • Optional: • Gcc/gas ARM cross Compiler und Assembler

  14. 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

  15. 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

  16. Exploiting Pocket PC • Shellcode

  17. Exploiting Pocket PC • Shellcode

More Related