hacking cell phone embedded systems
play

Hacking Cell Phone Embedded Systems Keegan Ryan RECON 2017 The - PowerPoint PPT Presentation

Hacking Cell Phone Embedded Systems Keegan Ryan RECON 2017 The Target The Target brendangates The Target Meriac (2010), Churchill Legacy ICLASS Introduced in 2007 Broken in 2010 Master key on every reader Security


  1. Hacking Cell Phone Embedded Systems Keegan Ryan – RECON 2017

  2. The Target

  3. The Target brendangates

  4. The Target Meriac (2010), Churchill

  5. Legacy ICLASS • Introduced in 2007 • Broken in 2010 • Master key on every reader • Security of card reader broken • Protocol reverse engineered • New version of iCLASS released, but many still use Legacy iCLASS • Uses ISO15693 Meriac (2010), Inside Contactless (2004)

  6. Nexus S • Introduced in 2010 • One of earliest to support NFC, including ISO15693 • Android source code available • Cheap

  7. Nexus S • Try Android app first Android • Transceive raw bytes Application • CRC added automatically, but we don’t want a CRC • Not added by libraries libnfc Library • Not added by kernel • Must be added by NFC controller chip Kernel Driver NFC Controller

  8. PN544 • Separate from Nexus S CPU • Powered by host or external field • Supports ISO 15693, Mifare, FeliCa • Supports firmware upgrades • Uses 80C51MX Processor DATA CODE NXP (2010), Wharton (1980)

  9. Investigating the PN544

  10. Firmware Recovery • PHDNLD_CMD_READ • Pull from update file • Code signing • Protected with SHA1 and RSA-1024 • Introduced after first devices shipped • Need a device never updated past Gingerbread Libnfc-nxp

  11. PATCH_TABLE EEPROM/CFG FW_CODE PATCH_CODE

  12. Reverse Engineering • There aren’t any. Look for strings. • They don’t exist. Look for CRC constants. • Look for usage of the XOR instruction. No help. • Just start reversing until we find something useful.

  13. PATCH_TABLE EEPROM/CFG FW_CODE PATCH_CODE

  14. Reverse Engineering • Reverse commonly called functions • Find switch function • Find command switching • Trace known command IDs through code

  15. Reverse Engineering Libnfc-nxp

  16. Problem: PATCH_TABLE EEPROM/CFG FW_CODE PATCH_CODE

  17. Problem: Missing Code PATCH_TABLE EEPROM/CFG FW_CODE ??? PATCH_CODE

  18. Problem: Missing Code PATCH_TABLE EEPROM/CFG FW_CODE KERNEL_CODE PATCH_CODE

  19. Kernel Recovery • We understand and can modify FW_CODE • FW_CODE doesn’t have access to kernel • We can modify PATCH_CODE • Don’t know how to trigger PATCH_CODE • Want to maximize chances of executing our code

  20. Kernel Recovery PATCH_CODE

  21. Kernel Recovery PATCH_CODE

  22. Kernel Recovery

  23. Problem: Missing Code PATCH_TABLE EEPROM/CFG FW_CODE KERNEL_CODE PATCH_CODE

  24. Problem: Missing Code PATCH_TABLE EEPROM/CFG FW_CODE KERNEL_CODE PATCH_CODE

  25. Reverse Engineering Kernel Reverse Engineering • Still aren’t any. Look for strings. • Still don’t exist. Look for CRC constants. • Look for usage of the XOR instruction. No help. • CRC creation is done by hardware • Still not impossible, but we need a new approach

  26. Wireless Protocols

  27. SDR Setup Signal Source Antenna Radio Upconverter

  28. SDR Setup <s> 10 01 10 00 01 00 00 00…

  29. Transfer Speed • ISO15693 has two modes: • Slow (1.65 kbps) • Fast (26.48 kbps) • Nexus S uses slow mode • ICLASS only uses fast mode Inside Contactless (2004)

  30. Problem: Transfer Speed • Capability probably exists, but is unused. • Find transmission code • Loads settings from EEPROM/CFG • Only uses one set of values • Swap around values in EEPROM/CFG • Fast mode!

  31. Mifare Libnfc-nxp

  32. Problem: Checksum Generation Find differences here Android Apply difference here FW_CODE Command Handler MIFARE Setup MIFARE Setup ISO15693 Setup (CRC) (No CRC) (CRC) RF Transmit

  33. Patching the Kernel PATCH_TABLE EEPROM/CFG FW_CODE KERNEL_CODE PATCH_CODE

  34. Exploitation

  35. Patching Checksum Generation PATCH_TABLE EEPROM/CFG FW_CODE KERNEL_CODE PATCH_CODE

  36. Putting It All Together PATCH_TABLE EEPROM/CFG FW_CODE KERNEL_CODE PATCH_CODE

  37. Demo

  38. Demo

  39. Future Research What can be done with a hacked NFC controller? • Surreptitiously read a badge • Information storage • Information exfiltration

  40. Future Research • What other embedded systems do we carry everywhere? • Bluetooth • USB controller • Baseband radio • Camera • Fingerprint reader • What could you make these systems do?

  41. The End Keegan Ryan Keegan.Ryan@nccgroup.trust @inf_0_

  42. Bypassing Firmware Signing? if (*flag == 0xa55a) doInsecureDownload(); else doSecureDownload();

  43. Bibliography Brendangates . “Badge reader.” Licensed under a Creative Commons Attribution 2.0 Generic (CC BY-NC-ND 2.0). Accessed 11 June 2017. https://www.flickr.com/photos/brendangates/2384518688. Churchill, Sam. “ nfc.phone .” Licensed under a Creative Commons Attribution 2.0 Generic (CC BY 2.0). Accessed 11 June 2017. https://www.flickr.com/photos/samchurchill/5181496553 Inside Contactless. "Datasheet PicoPass 2KS." Rapport technique (2004). Libnfc-nxp Library. Accessed June 11, 2017. https://android.googlesource.com/platform/external/libnfc-nxp. Meriac, Milosch. "Heart of darkness-exploring the uncharted backwaters of hid iclass (TM) security." In 27th Chaos Communication Congress . 2010. NXP. “NXP NFC controller PN544 for mobile phones and portable equipment." On Line: http://www.nxp.com/documents/leaflet/75016890.pdf (2010). Wharton, John. "An Introduction to the Intel-MCS-51 Single-Chip Microcomputer Family." Intel Corporation (1980).

Recommend


More recommend