SlideShare a Scribd company logo
Exploiting Qualcomm WLAN And Modem
Over-The-Air
Xiling Gong, Peter Pi
Tencent Blade Team
About Us
Xiling Gong (@GXiling)
Senior security researcher at Tencent Blade Team.
Focus on Android Security, Qualcomm Firmware Security.
Speaker of BlackHat, CanSecWest.
Peter Pi(@tencent_blade)
Senior security researcher at Tencent Blade Team.
Find many vulnerabilities of vendors like Google, Microsoft, Apple, Qualcomm, Adobe and Tesla.
The #1 Researcher of Google Android VRP in year 2016.
Speaker of BlackHat, CanSecWest, HITB, GSEC and Hitcon.
About Tencent Blade Team
• Founded by Tencent Security Platform Department in 2017
• Focus on security research in the areas of AIoT, Mobile devices, Cloud
virtualization, Blockchain, etc
• Report 200+ vulnerabilities to vendors such as Google, Apple, Microsoft, Amazon
• We talked about how to break Amazon Echo at DEFCON26
• Blog: https://blade.tencent.com
Agenda
• Introduction and Related Work
• The Debugger
• Reverse Engineering and Attack Surface
• Vulnerability and Exploitation
• Escaping into Modem
• Escaping into Kernel
• Stability of Exploitation
• Conclusions
Agenda
• Introduction and Related Work
• The Debugger
• Reverse Engineering and Attack Surface
• Vulnerability and Exploitation
• Escaping into Modem
• Escaping into Kernel
• Stability of Exploitation
• Conclusions
Introduction
• Broadcom WIFI Chip
• 2017, Gal Beniamini
• Over The Air: Exploiting Broadcom’s Wi-Fi Stack
• 2017, Nitay Artenstein, BlackHat USA 2017
• BROADPWN: REMOTELY COMPROMISING ANDROID AND IOS VIA A BUG IN
BROADCOM'S WI-FI CHIPSETS
• Marvel WIFI Chip
• 2019, Denis Selyanin
• Zero Nights 2018 , Researching Marvell Avastar Wi-Fi: from zero knowledge to over-
the-air zero-touch RCE
• Blog 2019, Remotely compromise devices by using bugs in Marvell Avastar Wi-Fi: from
zero knowledge to zero-click RCE
• How about Qualcomm WIFI?
Qualcomm WLAN (MSM8998)
WLAN FirmwareBaseband Subsystem
Linux Kernel QCACLD2/3Full MAC Layer
Application Android Framework Wifi Demon
Modem Firmware
Agenda
• Introduction and Related Work
• The Debugger
• Reverse Engineering and Attack Surface
• Vulnerability and Exploitation
• Escaping into Modem
• Escaping into Kernel
• Stability of Exploitation
• Conclusions
MBA and Modem images
• Modem Boot Authenticator
• mba.mbn
• modem.mdt
• modem.b00 – modem.b20
• Image format
Modem Secure Boot
pil_boot
• The pil_boot function in Linux Kernel describes the boot flow of
modem.
• Load mba.mbn, modem.mdt and modem.bxx to physical memory.
• Trigger MBA and modem images to be verified and run in
Modem Processor.
• Linux Kernel can restart Modem Processor at any time, will hit
pil_boot each time when restart.
pil_boot
pil_boot start
Load modem.mdt, use
the info to setup modem
pa region
Call pil_mss_mem_setup to register
modem pa region to TZ
Call pil_msa_mss_reset_mba_load_auth_mdt
to load msa.mbn and auth modem.mdt
Call pil_assign_mem_to_subsys_and_linux
to make Linux Kernel and MBA both can
access the pa region
Call pil_load_seg to load
modem.bxx to the pa region
Call pil_msa_mba_auth to auth
modem.bxx and start modem
Call pil_reclaim_mem to make Linux
Kernel can’t access the pa region
any more
TOCTOU Vulnerability
modem.b
05
Linux
Kernel
MBA
modem.b
06
modem.b
07
modem.b
20
Verified Verifying
Modify the verified image
DDR
POC
Debug Server Injection
Agenda
• Introduction and Related Work
• The Debugger
• Reverse Engineering and Attack Surface
• Vulnerability and Exploitation
• Escaping into Modem
• Escaping into Kernel
• Stability of Exploitation
• Conclusions
Qualcomm WLAN
WLAN Firmware
Baseband Subsystem
Hexagon
Linux KernelQCACLD2/3Full MAC Layer
Application Android Framework Wifi Demon
Modem Firmware
Qualcomm WLAN Architecture
WMI Handler
Non-Data Handler Data Handler
Physical Layer OTA Packet
Offload MAC Layer
WLAN Firmware
Linux KernelQCACLD2/3Full MAC Layer
Application Android Framework Wifi Demon
Example - Management Beacon
Non-Data Handler
80211 Management Beacon
WLAN Firmware
Linux KernelQCACLD2/3Full MAC Layer
Wifi Demon
Offload Table
Parse
Discard
SSID
Management BeaconForward
Firmware
• Modem load WLAN Firmware from
/vendor/firmware/wlanmdsp.mbn
• IDA Disassembler
• https://github.com/programa-stic/hexag00n/tree/master/ida
• https://github.com/gsmk/hexagon
• Qualcomm SDK
• https://developer.qualcomm.com/software/hexagon-dsp-sdk/tools
• Instruction Reference
• https://developer.qualcomm.com/download/hexagon/hexagon-v5x-
programmers-reference-manual.pdf?referrer=node/6116
Reverse Engineering – Hint From Qualcomm
Import Function
WMI Handler
drivers/staging/fw-api-fw/wmi_unified.h
String Table
Reverse Engineering
• Targets To Reverse
• WMI Handlers
• Handle WMI commands from Linux Kernel
• Send back WMI indication to Linux Kernel
• Offload Handlers
• Handle OTA Packets
WMI Handler
Non-Data Handler Data Handler
Offload MAC Layer
Physical Layer OTA Packet
WMI Handlers
drivers/staging/fw-api-fw/wmi_unified.h
0x03001
Offload Handlers
Sample Offload Handler
OTA Packet Data Pointer
=
[0x5B | 0x5A | 0x59 | 0x58]
Agenda
• Introduction and Related Work
• The Debugger
• Reverse Engineering and Attack Surface
• Vulnerability and Exploitation
• Escaping into Modem
• Escaping into Kernel
• Stability of Exploitation
• Conclusions
The Roadmap
Modem
WLAN
Linux
Kernel
We are here!
Mitigation Table (WLAN & Modem)
Mitigation Status
Heap ASLR Y
Heap Cookie Y
Stack Cookie Y
W^X Y
FRAMELIMIT* Y
FRAMEKEY** Y
Code & Global Data ASLR N
CFI N
*FRAMELIMIT Register - If SP < FRAMELIMIT throw exception
**FRAMEKEY Register - Return Address XOR FRAMEKEY. A random integer different for every thread
The Vulnerability (CVE-2019-10540)
Non-Data Handler
80211 PRE-AUTH-Frame OTA
WLAN Firmware
Offload Table
Parse
Linux Kernel
The Vulnerability (CVE-2019-10540)
[GLOBAL] char *GlobalBuffer[10 * 0xB0 + 6];
unsigned int itemCount = 0;
for (unsigned int i = 0; i < Length; i += 0x44) {
memcpy (GlobalBuffer + 6 + itemCount * 0xB0,
OTA_DataPtr + i,
0x44);
itemCount++;
}
* Translated and simplified the code flow
Copy items from packet into Global Static Buffer.
Max Item Count = 10
Send 11 items -> Overflow!
Data & Address of Overflow
Item 1 (0xB0 bytes)
Head (6 bytes)
Item 2 (0xB0 bytes)
…
Item 9 (0xB0 bytes)
Item 10 (0xB0 bytes)
Overflow (0x44 bytes)
Global Buffer
(0xB0 – 0x44 bytes)
Overflow (0x44 bytes)
(0xB0 – 0x44 bytes)
+0xB0 * 10
…
Smart Pointer Around Overflow Memory
Item 1 (0xB0 bytes)
Head (6 bytes)
Item 2 (0xB0 bytes)
…
Item 9 (0xB0 bytes)
Item 10 (0xB0 bytes)
Overflow (0x44 bytes)
(0xB0 – 0x44 bytes)
Overflow (0x44 bytes)
(0xB0 – 0x44 bytes)
…
0x00000000+0
0x00000000
+4
0x00000000
+8
SmartPointer+C
Global Buffer
+0xB0 * 10
Usage Of Smart Pointer
Char **AddressOfSmartPointer = GlobalBuffer + 6 + 0xB0 * 11 + 0xC;
char *SmartPointer = *AddressOfSmartPointer;
char *MacAddress = OTA_DataPtr + 0x10;
char *BYTE_C = OTA_ DataPtr + 0x10 + 0x20;
char *BYTE_D = OTA_ DataPtr + 0x10 + 0x21;
char *BYTE_14 = OTA_ DataPtr + 0x10 + 0x22;
if (TestBit(SmartPointer, 0) == 1) {
if (memcmp(SmartPointer + 6, MacAddress, 6) == 0) {
*(SmartPointer + 0xC) = *BYTE_C;
*(SmartPointer + 0xD) = *BYTE_D;
*(SmartPointer + 0x14) = *BYTE_14;
}
}
* Translated and simplified the code flow
Usage Of Smart Pointer
Char **AddressOfSmartPointer = GlobalBuffer + 6 + 0xB0 * 11 + 0xC;
char *SmartPointer = *AddressOfSmartPointer; // Overwrite with vulnerability
char *MacAddress = OTA_DataPtr + 0x10;
char *BYTE_C = OTA_ DataPtr + 0x10 + 0x20;
char *BYTE_D = OTA_ DataPtr + 0x10 + 0x21;
char *BYTE_14 = OTA_ DataPtr + 0x10 + 0x22;
if (TestBit(SmartPointer, 0) == 1) { // The only constraint, Bit0 == 1
if (memcmp(SmartPointer + 6, MacAddress, 6) == 0) {
// From OTA Data, could be bypass
*(SmartPointer + 0xC) = *BYTE_C; // Overwrite 0xC
*(SmartPointer + 0xD) = *BYTE_D; // Overwrite 0xD
*(SmartPointer + 0x14) = *BYTE_14;
}
}
* Translated and simplified the code flow
Global Write With Constraint
0xXXXXXXXX
SmartPointer
00 00 00 01
00 00 00 00
00 00 00 00
12 34 56 78
0xXXXXXXXX
+4
+8
+C
00 00 00 01
MA CA 00 00
AD DR ES SS
12 34 ?? ??
+4
+8
+C
+0 Bit 0
Write
MAC
Step 1 Overwrite SmartPointer Step 2 Global Write (Using SmartPointer)
Global Write With Constraint
How to write 4 bytes?
MACA 00 00
AD DR ES SS
12 34 ?? ??
+4
+8
+C
+0 Bit 0
MAC
0xXXXXXXXXSmartPointer
Step 1 Overwrite SmartPointer
Write Low 2 Bytes
00 01 00 01
00 00 00 00
MA CA DD RE
?? ?? SS SS
+4
+8
+C
+0 Bit 16
MAC
Write High 2 Bytes
00 01 00 01
Step 4 Global Write (Using SmartPointer)
0xXXXXXXXX+2SmartPointer
Step 3 Overflow SmartPointer
Step 2 Global Write (Using SmartPointer)
Global Write With Constraint
The Bit0 != 1?
MACA 00 00
AD DR ES SS
12 34 ?? ??
Bit0 != 1
MAC
00 00 00 00
Target
00 00 00 00
00 00 00 01
Bit0 == 1?
MAC
00 00 00 01
+4
+8
+C
+0
-8
-4
-C
Control PC & R0
Address Value
00 0x00010000
+04 0x00010001
+08 0x00000000
+0C 0x00000001
+10 0x00000000
+14 0x00000000
+18 0x00000000
+1C 0x00000000
+20 0x00000000
+24 0x12345678(PC)
+28 0x87654321(R0)
Address Value
+00 0x00010000
+04 0x00010001
+08 0x00000000
+0C 0x00010001
+10 0x00010001
+14 0x00000000
+18 0x00010001
+1C 0x00010001
+20 0x00000000
+24 TARGET PC
+28 TARGET R0
SmartPointer
Transform To Arbitrary Write
TARGET PC
TARGET R0
Item1
Payload1
Item2
Payload2
…
FOP Gadget
Run Useful FOP Gadget
Function Pointer(PC)
Data Pointer (R0)
Step 1 Arbitrary Write Overwrite function pointer
Step 2 Arbitrary Write Overwrite data pointer
Item1
Payload1
Item2
Payload2
…
Step 3 Send payload packet and trigger the PC
Virtual Address
Memory Mapping RWX
CreateMapping(args, …)
R0 = 0x42420000
Virtual Address
R1 = 0x936a0000
Physical Address
R2 = 0x1000
Size
R3 = 4
Unknown
R4 = 7
Permission RWX
Physical DRAM 936a0000
42420000 b0000000
RWX R-X
Memory Mapping RWX
TARGET PC
TARGET R0
CreateMapping(args, …)
R0 = 0x42420000
Virtual Address
R1 = 0x936a0000
Physical Address
R2 = 0x1000
Size
R3 = 4
Unknown
R4 = 7
Permission RWX
FOP Gadget
Item1
Payload1
Item2
Payload2
…
Copy Shellcode to 0x42420000
memcpy(PC)
0x42420000(R0) 0x42420000
Shellcode
…
Step 1 Arbitrary Write Overwrite function pointer
Step 2 Arbitrary Write Overwrite data pointer
Step 3 Trigger
OTA Packet(R1)
Packet Len(R2)
Trigger Shellcode
0xB0000020(PC)
Any Value(R0)
0xB0000020
Shellcode
…
Step 1 Arbitrary Write Overwrite function pointer Step 2 Trigger
Agenda
• Introduction and Related Work
• The Debugger
• Reverse Engineering and Attack Surface
• Vulnerability and Exploitation
• Escaping into Modem
• Escaping into Kernel
• Stability of Exploitation
• Conclusions
The Roadmap
Modem
WLAN
Linux
Kernel
From WLAN to Modem
WLAN
Kernel
Modem
* TLB is a Hexagon Instruction to modify the Memory Page Attribute
** Complex Function uses the resource of Modem, or calls System Call
*** Simple Code Snippet mean code has only register operation
QURT OS
Actions From WLAN Eligible?
TLB Set* N
Write Modem Data N
Call Modem Complex Function** N
Call Modem Simple Code Snippet*** Y
Map Modem Memory Y
Userspace
Map Modem Memory into WLAN
Modem
WLAN Modem
RWX R-X
WLAN
Virtual Address
Physical Address
Modem
WLAN Process Virtual Address
Agenda
• Introduction and Related Work
• The Debugger
• Reverse Engineering and Attack Surface
• Vulnerability and Exploitation
• Escaping into Modem
• Escaping into Kernel
• Stability of Exploitation
• Conclusions
The Roadmap
Modem
WLAN
Linux
Kernel
The Attack Surfaces
Linux Kernel Modem
Userspace APP
TrustZone
AT Command
Glink
DIAG
QMI
WMI
APR
Share Memory
• We’ve found
An arbitrary memory read/write vulnerability
Could bypass all the mitigations of Linux Kernel
From Modem into Linux Kernel
• In these attack surfaces
• But we are unable to disclose the detail now
Agenda
• Introduction and Related Work
• The Debugger
• Reverse Engineering and Attack Surface
• Vulnerability and Exploitation
• Escaping into Modem
• Escaping into Kernel
• Stability of Exploitation
• Conclusions
Deliver the Payload Over-The-Air
Pixel 2XL
Packet Losing Rate 90%+!
Deliver the Payloads Using Pixel2
Pixel 2 Pixel 2XL
The Roadmap
Modem
WLAN
Linux
Kernel
Pixel 2XL
Pixel 2
Demo
Future Works
• There are still lots of mystery in the WLAN.
• We were only reversed a small part of the code
• Lots of functions are unknown
• How to fuzz the WLAN Firmware?
• Reverse engineering is quite…
• How to fuzz closed source target and Hexagon architecture effectively?
• Translate Hexagon Instruction to C?
• IDA/Ghidra F5 plugin?
Timeline
• 2019-2-14 Find the Modem debug vulnerability on MSM8998
• 2019-3-24 Find the WLAN issue and report to Google
• 2019-3-28 Google forwards the issue to Qualcomm
• 2019-4-24 Google confirms the WLAN issue as Critical
• 2019-5-08 Report the WLAN into Linux Kernel issue to Google
• 2019-5-24 Google confirms the WLAN into Linux Kernel issue
• 2019-5-28 Submit the full exploit chain to Google
• 2019-6-04 Google reply unable to reproduce the full exploit chain
• 2019-6-17 Improve the stability and submit to Google
• 2019-7-19 CVE Assigned by Google
• 2019-7-20 Qualcomm confirms issues will be fixed before October
• 2019-8-0? Google release the fix for Google Pixel2/Pixel3
THANK YOU
https://blade.tencent.com

More Related Content

What's hot

Introduction to ESP32 Programming [Road to RIoT 2017]
Introduction to ESP32 Programming [Road to RIoT 2017]Introduction to ESP32 Programming [Road to RIoT 2017]
Introduction to ESP32 Programming [Road to RIoT 2017]
Alwin Arrasyid
 
ESP8266 and IOT
ESP8266 and IOTESP8266 and IOT
ESP8266 and IOT
dega1999
 
Mainline kernel on ARM Tegra20 devices that are left behind on 2.6 kernels
Mainline kernel on ARM Tegra20 devices that are left behind on 2.6 kernelsMainline kernel on ARM Tegra20 devices that are left behind on 2.6 kernels
Mainline kernel on ARM Tegra20 devices that are left behind on 2.6 kernels
Dobrica Pavlinušić
 
Internet of Things
Internet of ThingsInternet of Things
Internet of Things
Andy Gelme
 
Vt6655 linux user_guide
Vt6655 linux user_guideVt6655 linux user_guide
Vt6655 linux user_guide
MONTBUIAUTOESCOLA
 
NodeMCU ESP8266 workshop 1
NodeMCU ESP8266 workshop 1NodeMCU ESP8266 workshop 1
NodeMCU ESP8266 workshop 1
Andy Gelme
 
PLNOG 21: Patryk Wojtachnio - Od_zera_do_farmera
PLNOG 21: Patryk Wojtachnio - Od_zera_do_farmeraPLNOG 21: Patryk Wojtachnio - Od_zera_do_farmera
PLNOG 21: Patryk Wojtachnio - Od_zera_do_farmera
PROIDEA
 
IoThings you don't even need to hack
IoThings you don't even need to hackIoThings you don't even need to hack
IoThings you don't even need to hack
Slawomir Jasek
 
Proxy arp
Proxy arpProxy arp
Proxy arp
Marian Marinov
 
Nodemcu - introduction
Nodemcu - introductionNodemcu - introduction
Nodemcu - introduction
Michal Sedlak
 
Remote tanklevelmonitor
Remote tanklevelmonitorRemote tanklevelmonitor
Remote tanklevelmonitor
Parshwadeep Lahane
 
lwM2M OTA for ESP8266
lwM2M OTA for ESP8266lwM2M OTA for ESP8266
lwM2M OTA for ESP8266
Manolis Nikiforakis
 
FreeBSD under DigitalOcean VPS
FreeBSD under DigitalOcean VPSFreeBSD under DigitalOcean VPS
FreeBSD under DigitalOcean VPS
Ryo ONODERA
 
Esp8266 wi fi_module_quick_start_guide_v_1.0.4
Esp8266 wi fi_module_quick_start_guide_v_1.0.4Esp8266 wi fi_module_quick_start_guide_v_1.0.4
Esp8266 wi fi_module_quick_start_guide_v_1.0.4
Melvin Gutiérrez Rivero
 
Mateusz 'j00ru' Jurczyk - Windows Kernel Trap Handler and NTVDM Vulnerabiliti...
Mateusz 'j00ru' Jurczyk - Windows Kernel Trap Handler and NTVDM Vulnerabiliti...Mateusz 'j00ru' Jurczyk - Windows Kernel Trap Handler and NTVDM Vulnerabiliti...
Mateusz 'j00ru' Jurczyk - Windows Kernel Trap Handler and NTVDM Vulnerabiliti...
DefconRussia
 
Linux+sensor+device-tree+shell=IoT !
Linux+sensor+device-tree+shell=IoT !Linux+sensor+device-tree+shell=IoT !
Linux+sensor+device-tree+shell=IoT !
Dobrica Pavlinušić
 
Linux Kernel Crashdump
Linux Kernel CrashdumpLinux Kernel Crashdump
Linux Kernel Crashdump
Marian Marinov
 
Project ACRN USB mediator introduction
Project ACRN USB mediator introductionProject ACRN USB mediator introduction
Project ACRN USB mediator introduction
Project ACRN
 
Linux I2C
Linux I2CLinux I2C
Linux I2C
KaidenYu
 
Intel Edison: Beyond the Breadboard
Intel Edison: Beyond the BreadboardIntel Edison: Beyond the Breadboard
Intel Edison: Beyond the Breadboard
yeokm1
 

What's hot (20)

Introduction to ESP32 Programming [Road to RIoT 2017]
Introduction to ESP32 Programming [Road to RIoT 2017]Introduction to ESP32 Programming [Road to RIoT 2017]
Introduction to ESP32 Programming [Road to RIoT 2017]
 
ESP8266 and IOT
ESP8266 and IOTESP8266 and IOT
ESP8266 and IOT
 
Mainline kernel on ARM Tegra20 devices that are left behind on 2.6 kernels
Mainline kernel on ARM Tegra20 devices that are left behind on 2.6 kernelsMainline kernel on ARM Tegra20 devices that are left behind on 2.6 kernels
Mainline kernel on ARM Tegra20 devices that are left behind on 2.6 kernels
 
Internet of Things
Internet of ThingsInternet of Things
Internet of Things
 
Vt6655 linux user_guide
Vt6655 linux user_guideVt6655 linux user_guide
Vt6655 linux user_guide
 
NodeMCU ESP8266 workshop 1
NodeMCU ESP8266 workshop 1NodeMCU ESP8266 workshop 1
NodeMCU ESP8266 workshop 1
 
PLNOG 21: Patryk Wojtachnio - Od_zera_do_farmera
PLNOG 21: Patryk Wojtachnio - Od_zera_do_farmeraPLNOG 21: Patryk Wojtachnio - Od_zera_do_farmera
PLNOG 21: Patryk Wojtachnio - Od_zera_do_farmera
 
IoThings you don't even need to hack
IoThings you don't even need to hackIoThings you don't even need to hack
IoThings you don't even need to hack
 
Proxy arp
Proxy arpProxy arp
Proxy arp
 
Nodemcu - introduction
Nodemcu - introductionNodemcu - introduction
Nodemcu - introduction
 
Remote tanklevelmonitor
Remote tanklevelmonitorRemote tanklevelmonitor
Remote tanklevelmonitor
 
lwM2M OTA for ESP8266
lwM2M OTA for ESP8266lwM2M OTA for ESP8266
lwM2M OTA for ESP8266
 
FreeBSD under DigitalOcean VPS
FreeBSD under DigitalOcean VPSFreeBSD under DigitalOcean VPS
FreeBSD under DigitalOcean VPS
 
Esp8266 wi fi_module_quick_start_guide_v_1.0.4
Esp8266 wi fi_module_quick_start_guide_v_1.0.4Esp8266 wi fi_module_quick_start_guide_v_1.0.4
Esp8266 wi fi_module_quick_start_guide_v_1.0.4
 
Mateusz 'j00ru' Jurczyk - Windows Kernel Trap Handler and NTVDM Vulnerabiliti...
Mateusz 'j00ru' Jurczyk - Windows Kernel Trap Handler and NTVDM Vulnerabiliti...Mateusz 'j00ru' Jurczyk - Windows Kernel Trap Handler and NTVDM Vulnerabiliti...
Mateusz 'j00ru' Jurczyk - Windows Kernel Trap Handler and NTVDM Vulnerabiliti...
 
Linux+sensor+device-tree+shell=IoT !
Linux+sensor+device-tree+shell=IoT !Linux+sensor+device-tree+shell=IoT !
Linux+sensor+device-tree+shell=IoT !
 
Linux Kernel Crashdump
Linux Kernel CrashdumpLinux Kernel Crashdump
Linux Kernel Crashdump
 
Project ACRN USB mediator introduction
Project ACRN USB mediator introductionProject ACRN USB mediator introduction
Project ACRN USB mediator introduction
 
Linux I2C
Linux I2CLinux I2C
Linux I2C
 
Intel Edison: Beyond the Breadboard
Intel Edison: Beyond the BreadboardIntel Edison: Beyond the Breadboard
Intel Edison: Beyond the Breadboard
 

Similar to DEF CON 27 - XILING GONG PETER PI - exploiting qualcom wlan and modem over the air

Breaking Smart Speakers: We are Listening to You.
Breaking Smart Speakers: We are Listening to You.Breaking Smart Speakers: We are Listening to You.
Breaking Smart Speakers: We are Listening to You.
Priyanka Aash
 
IoT exploitation: from memory corruption to code execution - Marco Romano - C...
IoT exploitation: from memory corruption to code execution - Marco Romano - C...IoT exploitation: from memory corruption to code execution - Marco Romano - C...
IoT exploitation: from memory corruption to code execution - Marco Romano - C...
Codemotion
 
Rainbow Over the Windows: More Colors Than You Could Expect
Rainbow Over the Windows: More Colors Than You Could ExpectRainbow Over the Windows: More Colors Than You Could Expect
Rainbow Over the Windows: More Colors Than You Could Expect
Peter Hlavaty
 
Analyzing the Performance of Mobile Web
Analyzing the Performance of Mobile WebAnalyzing the Performance of Mobile Web
Analyzing the Performance of Mobile Web
Ariya Hidayat
 
Cisco IOS shellcode: All-in-one
Cisco IOS shellcode: All-in-oneCisco IOS shellcode: All-in-one
Cisco IOS shellcode: All-in-one
DefconRussia
 
44CON 2014 - Stupid PCIe Tricks, Joe Fitzpatrick
44CON 2014 - Stupid PCIe Tricks, Joe Fitzpatrick44CON 2014 - Stupid PCIe Tricks, Joe Fitzpatrick
44CON 2014 - Stupid PCIe Tricks, Joe Fitzpatrick
44CON
 
Developing Applications for Beagle Bone Black, Raspberry Pi and SoC Single Bo...
Developing Applications for Beagle Bone Black, Raspberry Pi and SoC Single Bo...Developing Applications for Beagle Bone Black, Raspberry Pi and SoC Single Bo...
Developing Applications for Beagle Bone Black, Raspberry Pi and SoC Single Bo...
ryancox
 
IoT: Internet of Things with Python
IoT: Internet of Things with PythonIoT: Internet of Things with Python
IoT: Internet of Things with Python
Lelio Campanile
 
Presentation for IoT workshop at Sinhagad University (Feb 4, 2016) - 2/2
Presentation for IoT workshop at Sinhagad University (Feb 4, 2016) - 2/2Presentation for IoT workshop at Sinhagad University (Feb 4, 2016) - 2/2
Presentation for IoT workshop at Sinhagad University (Feb 4, 2016) - 2/2
Bhavin Chandarana
 
Hack.LU 2018 ARM IoT Firmware Emulation Workshop
Hack.LU 2018 ARM IoT Firmware Emulation WorkshopHack.LU 2018 ARM IoT Firmware Emulation Workshop
Hack.LU 2018 ARM IoT Firmware Emulation Workshop
Saumil Shah
 
[db tech showcase Tokyo 2017] A11: SQLite - The most used yet least appreciat...
[db tech showcase Tokyo 2017] A11: SQLite - The most used yet least appreciat...[db tech showcase Tokyo 2017] A11: SQLite - The most used yet least appreciat...
[db tech showcase Tokyo 2017] A11: SQLite - The most used yet least appreciat...
Insight Technology, Inc.
 
Feasibility of Security in Micro-Controllers
Feasibility of Security in Micro-ControllersFeasibility of Security in Micro-Controllers
Feasibility of Security in Micro-Controllers
ardiri
 
Android RenderScript on LLVM
Android RenderScript on LLVMAndroid RenderScript on LLVM
Android RenderScript on LLVM
John Lee
 
Raising the Bar on Robotics Code Quality
Raising the Bar on Robotics Code QualityRaising the Bar on Robotics Code Quality
Raising the Bar on Robotics Code Quality
Thomas Moulard
 
BKK16-211 Internet of Tiny Linux (io tl)- Status and Progress
BKK16-211 Internet of Tiny Linux (io tl)- Status and ProgressBKK16-211 Internet of Tiny Linux (io tl)- Status and Progress
BKK16-211 Internet of Tiny Linux (io tl)- Status and Progress
Linaro
 
Hardware backdooring is practical : slides
Hardware backdooring is practical : slidesHardware backdooring is practical : slides
Hardware backdooring is practical : slides
Moabi.com
 
Meder Kydyraliev - Mining Mach Services within OS X Sandbox
Meder Kydyraliev - Mining Mach Services within OS X SandboxMeder Kydyraliev - Mining Mach Services within OS X Sandbox
Meder Kydyraliev - Mining Mach Services within OS X Sandbox
DefconRussia
 
DEF CON 27 - WENXIANG QIAN and YUXIANG LI HUIYU - breaking google home exploi...
DEF CON 27 - WENXIANG QIAN and YUXIANG LI HUIYU - breaking google home exploi...DEF CON 27 - WENXIANG QIAN and YUXIANG LI HUIYU - breaking google home exploi...
DEF CON 27 - WENXIANG QIAN and YUXIANG LI HUIYU - breaking google home exploi...
Felipe Prado
 
Introduction to Windows IoT Nov 2017
Introduction to Windows IoT Nov 2017Introduction to Windows IoT Nov 2017
Introduction to Windows IoT Nov 2017
Lee Richardson
 
Windows 10 IoT Core
Windows 10 IoT CoreWindows 10 IoT Core

Similar to DEF CON 27 - XILING GONG PETER PI - exploiting qualcom wlan and modem over the air (20)

Breaking Smart Speakers: We are Listening to You.
Breaking Smart Speakers: We are Listening to You.Breaking Smart Speakers: We are Listening to You.
Breaking Smart Speakers: We are Listening to You.
 
IoT exploitation: from memory corruption to code execution - Marco Romano - C...
IoT exploitation: from memory corruption to code execution - Marco Romano - C...IoT exploitation: from memory corruption to code execution - Marco Romano - C...
IoT exploitation: from memory corruption to code execution - Marco Romano - C...
 
Rainbow Over the Windows: More Colors Than You Could Expect
Rainbow Over the Windows: More Colors Than You Could ExpectRainbow Over the Windows: More Colors Than You Could Expect
Rainbow Over the Windows: More Colors Than You Could Expect
 
Analyzing the Performance of Mobile Web
Analyzing the Performance of Mobile WebAnalyzing the Performance of Mobile Web
Analyzing the Performance of Mobile Web
 
Cisco IOS shellcode: All-in-one
Cisco IOS shellcode: All-in-oneCisco IOS shellcode: All-in-one
Cisco IOS shellcode: All-in-one
 
44CON 2014 - Stupid PCIe Tricks, Joe Fitzpatrick
44CON 2014 - Stupid PCIe Tricks, Joe Fitzpatrick44CON 2014 - Stupid PCIe Tricks, Joe Fitzpatrick
44CON 2014 - Stupid PCIe Tricks, Joe Fitzpatrick
 
Developing Applications for Beagle Bone Black, Raspberry Pi and SoC Single Bo...
Developing Applications for Beagle Bone Black, Raspberry Pi and SoC Single Bo...Developing Applications for Beagle Bone Black, Raspberry Pi and SoC Single Bo...
Developing Applications for Beagle Bone Black, Raspberry Pi and SoC Single Bo...
 
IoT: Internet of Things with Python
IoT: Internet of Things with PythonIoT: Internet of Things with Python
IoT: Internet of Things with Python
 
Presentation for IoT workshop at Sinhagad University (Feb 4, 2016) - 2/2
Presentation for IoT workshop at Sinhagad University (Feb 4, 2016) - 2/2Presentation for IoT workshop at Sinhagad University (Feb 4, 2016) - 2/2
Presentation for IoT workshop at Sinhagad University (Feb 4, 2016) - 2/2
 
Hack.LU 2018 ARM IoT Firmware Emulation Workshop
Hack.LU 2018 ARM IoT Firmware Emulation WorkshopHack.LU 2018 ARM IoT Firmware Emulation Workshop
Hack.LU 2018 ARM IoT Firmware Emulation Workshop
 
[db tech showcase Tokyo 2017] A11: SQLite - The most used yet least appreciat...
[db tech showcase Tokyo 2017] A11: SQLite - The most used yet least appreciat...[db tech showcase Tokyo 2017] A11: SQLite - The most used yet least appreciat...
[db tech showcase Tokyo 2017] A11: SQLite - The most used yet least appreciat...
 
Feasibility of Security in Micro-Controllers
Feasibility of Security in Micro-ControllersFeasibility of Security in Micro-Controllers
Feasibility of Security in Micro-Controllers
 
Android RenderScript on LLVM
Android RenderScript on LLVMAndroid RenderScript on LLVM
Android RenderScript on LLVM
 
Raising the Bar on Robotics Code Quality
Raising the Bar on Robotics Code QualityRaising the Bar on Robotics Code Quality
Raising the Bar on Robotics Code Quality
 
BKK16-211 Internet of Tiny Linux (io tl)- Status and Progress
BKK16-211 Internet of Tiny Linux (io tl)- Status and ProgressBKK16-211 Internet of Tiny Linux (io tl)- Status and Progress
BKK16-211 Internet of Tiny Linux (io tl)- Status and Progress
 
Hardware backdooring is practical : slides
Hardware backdooring is practical : slidesHardware backdooring is practical : slides
Hardware backdooring is practical : slides
 
Meder Kydyraliev - Mining Mach Services within OS X Sandbox
Meder Kydyraliev - Mining Mach Services within OS X SandboxMeder Kydyraliev - Mining Mach Services within OS X Sandbox
Meder Kydyraliev - Mining Mach Services within OS X Sandbox
 
DEF CON 27 - WENXIANG QIAN and YUXIANG LI HUIYU - breaking google home exploi...
DEF CON 27 - WENXIANG QIAN and YUXIANG LI HUIYU - breaking google home exploi...DEF CON 27 - WENXIANG QIAN and YUXIANG LI HUIYU - breaking google home exploi...
DEF CON 27 - WENXIANG QIAN and YUXIANG LI HUIYU - breaking google home exploi...
 
Introduction to Windows IoT Nov 2017
Introduction to Windows IoT Nov 2017Introduction to Windows IoT Nov 2017
Introduction to Windows IoT Nov 2017
 
Windows 10 IoT Core
Windows 10 IoT CoreWindows 10 IoT Core
Windows 10 IoT Core
 

More from Felipe Prado

DEF CON 24 - Sean Metcalf - beyond the mcse red teaming active directory
DEF CON 24 - Sean Metcalf - beyond the mcse red teaming active directoryDEF CON 24 - Sean Metcalf - beyond the mcse red teaming active directory
DEF CON 24 - Sean Metcalf - beyond the mcse red teaming active directory
Felipe Prado
 
DEF CON 24 - Bertin Bervis and James Jara - exploiting and attacking seismolo...
DEF CON 24 - Bertin Bervis and James Jara - exploiting and attacking seismolo...DEF CON 24 - Bertin Bervis and James Jara - exploiting and attacking seismolo...
DEF CON 24 - Bertin Bervis and James Jara - exploiting and attacking seismolo...
Felipe Prado
 
DEF CON 24 - Tamas Szakaly - help i got ants
DEF CON 24 - Tamas Szakaly - help i got antsDEF CON 24 - Tamas Szakaly - help i got ants
DEF CON 24 - Tamas Szakaly - help i got ants
Felipe Prado
 
DEF CON 24 - Ladar Levison - compelled decryption
DEF CON 24 - Ladar Levison - compelled decryptionDEF CON 24 - Ladar Levison - compelled decryption
DEF CON 24 - Ladar Levison - compelled decryption
Felipe Prado
 
DEF CON 24 - Clarence Chio - machine duping 101
DEF CON 24 - Clarence Chio - machine duping 101DEF CON 24 - Clarence Chio - machine duping 101
DEF CON 24 - Clarence Chio - machine duping 101
Felipe Prado
 
DEF CON 24 - Chris Rock - how to overthrow a government
DEF CON 24 - Chris Rock - how to overthrow a governmentDEF CON 24 - Chris Rock - how to overthrow a government
DEF CON 24 - Chris Rock - how to overthrow a government
Felipe Prado
 
DEF CON 24 - Fitzpatrick and Grand - 101 ways to brick your hardware
DEF CON 24 - Fitzpatrick and Grand - 101 ways to brick your hardwareDEF CON 24 - Fitzpatrick and Grand - 101 ways to brick your hardware
DEF CON 24 - Fitzpatrick and Grand - 101 ways to brick your hardware
Felipe Prado
 
DEF CON 24 - Rogan Dawes and Dominic White - universal serial aBUSe remote at...
DEF CON 24 - Rogan Dawes and Dominic White - universal serial aBUSe remote at...DEF CON 24 - Rogan Dawes and Dominic White - universal serial aBUSe remote at...
DEF CON 24 - Rogan Dawes and Dominic White - universal serial aBUSe remote at...
Felipe Prado
 
DEF CON 24 - Jay Beale and Larry Pesce - phishing without frustration
DEF CON 24 - Jay Beale and Larry Pesce - phishing without frustrationDEF CON 24 - Jay Beale and Larry Pesce - phishing without frustration
DEF CON 24 - Jay Beale and Larry Pesce - phishing without frustration
Felipe Prado
 
DEF CON 24 - Gorenc Sands - hacker machine interface
DEF CON 24 - Gorenc Sands - hacker machine interfaceDEF CON 24 - Gorenc Sands - hacker machine interface
DEF CON 24 - Gorenc Sands - hacker machine interface
Felipe Prado
 
DEF CON 24 - Allan Cecil and DwangoAC - tasbot the perfectionist
DEF CON 24 - Allan Cecil and DwangoAC -  tasbot the perfectionistDEF CON 24 - Allan Cecil and DwangoAC -  tasbot the perfectionist
DEF CON 24 - Allan Cecil and DwangoAC - tasbot the perfectionist
Felipe Prado
 
DEF CON 24 - Rose and Ramsey - picking bluetooth low energy locks
DEF CON 24 - Rose and Ramsey - picking bluetooth low energy locksDEF CON 24 - Rose and Ramsey - picking bluetooth low energy locks
DEF CON 24 - Rose and Ramsey - picking bluetooth low energy locks
Felipe Prado
 
DEF CON 24 - Rich Mogull - pragmatic cloud security
DEF CON 24 - Rich Mogull - pragmatic cloud securityDEF CON 24 - Rich Mogull - pragmatic cloud security
DEF CON 24 - Rich Mogull - pragmatic cloud security
Felipe Prado
 
DEF CON 24 - Grant Bugher - Bypassing captive portals
DEF CON 24 - Grant Bugher - Bypassing captive portalsDEF CON 24 - Grant Bugher - Bypassing captive portals
DEF CON 24 - Grant Bugher - Bypassing captive portals
Felipe Prado
 
DEF CON 24 - Patrick Wardle - 99 problems little snitch
DEF CON 24 - Patrick Wardle - 99 problems little snitchDEF CON 24 - Patrick Wardle - 99 problems little snitch
DEF CON 24 - Patrick Wardle - 99 problems little snitch
Felipe Prado
 
DEF CON 24 - Plore - side -channel attacks on high security electronic safe l...
DEF CON 24 - Plore - side -channel attacks on high security electronic safe l...DEF CON 24 - Plore - side -channel attacks on high security electronic safe l...
DEF CON 24 - Plore - side -channel attacks on high security electronic safe l...
Felipe Prado
 
DEF CON 24 - Six Volts and Haystack - cheap tools for hacking heavy trucks
DEF CON 24 - Six Volts and Haystack - cheap tools for hacking heavy trucksDEF CON 24 - Six Volts and Haystack - cheap tools for hacking heavy trucks
DEF CON 24 - Six Volts and Haystack - cheap tools for hacking heavy trucks
Felipe Prado
 
DEF CON 24 - Dinesh and Shetty - practical android application exploitation
DEF CON 24 - Dinesh and Shetty - practical android application exploitationDEF CON 24 - Dinesh and Shetty - practical android application exploitation
DEF CON 24 - Dinesh and Shetty - practical android application exploitation
Felipe Prado
 
DEF CON 24 - Klijnsma and Tentler - stargate pivoting through vnc
DEF CON 24 - Klijnsma and Tentler - stargate pivoting through vncDEF CON 24 - Klijnsma and Tentler - stargate pivoting through vnc
DEF CON 24 - Klijnsma and Tentler - stargate pivoting through vnc
Felipe Prado
 
DEF CON 24 - Antonio Joseph - fuzzing android devices
DEF CON 24 - Antonio Joseph - fuzzing android devicesDEF CON 24 - Antonio Joseph - fuzzing android devices
DEF CON 24 - Antonio Joseph - fuzzing android devices
Felipe Prado
 

More from Felipe Prado (20)

DEF CON 24 - Sean Metcalf - beyond the mcse red teaming active directory
DEF CON 24 - Sean Metcalf - beyond the mcse red teaming active directoryDEF CON 24 - Sean Metcalf - beyond the mcse red teaming active directory
DEF CON 24 - Sean Metcalf - beyond the mcse red teaming active directory
 
DEF CON 24 - Bertin Bervis and James Jara - exploiting and attacking seismolo...
DEF CON 24 - Bertin Bervis and James Jara - exploiting and attacking seismolo...DEF CON 24 - Bertin Bervis and James Jara - exploiting and attacking seismolo...
DEF CON 24 - Bertin Bervis and James Jara - exploiting and attacking seismolo...
 
DEF CON 24 - Tamas Szakaly - help i got ants
DEF CON 24 - Tamas Szakaly - help i got antsDEF CON 24 - Tamas Szakaly - help i got ants
DEF CON 24 - Tamas Szakaly - help i got ants
 
DEF CON 24 - Ladar Levison - compelled decryption
DEF CON 24 - Ladar Levison - compelled decryptionDEF CON 24 - Ladar Levison - compelled decryption
DEF CON 24 - Ladar Levison - compelled decryption
 
DEF CON 24 - Clarence Chio - machine duping 101
DEF CON 24 - Clarence Chio - machine duping 101DEF CON 24 - Clarence Chio - machine duping 101
DEF CON 24 - Clarence Chio - machine duping 101
 
DEF CON 24 - Chris Rock - how to overthrow a government
DEF CON 24 - Chris Rock - how to overthrow a governmentDEF CON 24 - Chris Rock - how to overthrow a government
DEF CON 24 - Chris Rock - how to overthrow a government
 
DEF CON 24 - Fitzpatrick and Grand - 101 ways to brick your hardware
DEF CON 24 - Fitzpatrick and Grand - 101 ways to brick your hardwareDEF CON 24 - Fitzpatrick and Grand - 101 ways to brick your hardware
DEF CON 24 - Fitzpatrick and Grand - 101 ways to brick your hardware
 
DEF CON 24 - Rogan Dawes and Dominic White - universal serial aBUSe remote at...
DEF CON 24 - Rogan Dawes and Dominic White - universal serial aBUSe remote at...DEF CON 24 - Rogan Dawes and Dominic White - universal serial aBUSe remote at...
DEF CON 24 - Rogan Dawes and Dominic White - universal serial aBUSe remote at...
 
DEF CON 24 - Jay Beale and Larry Pesce - phishing without frustration
DEF CON 24 - Jay Beale and Larry Pesce - phishing without frustrationDEF CON 24 - Jay Beale and Larry Pesce - phishing without frustration
DEF CON 24 - Jay Beale and Larry Pesce - phishing without frustration
 
DEF CON 24 - Gorenc Sands - hacker machine interface
DEF CON 24 - Gorenc Sands - hacker machine interfaceDEF CON 24 - Gorenc Sands - hacker machine interface
DEF CON 24 - Gorenc Sands - hacker machine interface
 
DEF CON 24 - Allan Cecil and DwangoAC - tasbot the perfectionist
DEF CON 24 - Allan Cecil and DwangoAC -  tasbot the perfectionistDEF CON 24 - Allan Cecil and DwangoAC -  tasbot the perfectionist
DEF CON 24 - Allan Cecil and DwangoAC - tasbot the perfectionist
 
DEF CON 24 - Rose and Ramsey - picking bluetooth low energy locks
DEF CON 24 - Rose and Ramsey - picking bluetooth low energy locksDEF CON 24 - Rose and Ramsey - picking bluetooth low energy locks
DEF CON 24 - Rose and Ramsey - picking bluetooth low energy locks
 
DEF CON 24 - Rich Mogull - pragmatic cloud security
DEF CON 24 - Rich Mogull - pragmatic cloud securityDEF CON 24 - Rich Mogull - pragmatic cloud security
DEF CON 24 - Rich Mogull - pragmatic cloud security
 
DEF CON 24 - Grant Bugher - Bypassing captive portals
DEF CON 24 - Grant Bugher - Bypassing captive portalsDEF CON 24 - Grant Bugher - Bypassing captive portals
DEF CON 24 - Grant Bugher - Bypassing captive portals
 
DEF CON 24 - Patrick Wardle - 99 problems little snitch
DEF CON 24 - Patrick Wardle - 99 problems little snitchDEF CON 24 - Patrick Wardle - 99 problems little snitch
DEF CON 24 - Patrick Wardle - 99 problems little snitch
 
DEF CON 24 - Plore - side -channel attacks on high security electronic safe l...
DEF CON 24 - Plore - side -channel attacks on high security electronic safe l...DEF CON 24 - Plore - side -channel attacks on high security electronic safe l...
DEF CON 24 - Plore - side -channel attacks on high security electronic safe l...
 
DEF CON 24 - Six Volts and Haystack - cheap tools for hacking heavy trucks
DEF CON 24 - Six Volts and Haystack - cheap tools for hacking heavy trucksDEF CON 24 - Six Volts and Haystack - cheap tools for hacking heavy trucks
DEF CON 24 - Six Volts and Haystack - cheap tools for hacking heavy trucks
 
DEF CON 24 - Dinesh and Shetty - practical android application exploitation
DEF CON 24 - Dinesh and Shetty - practical android application exploitationDEF CON 24 - Dinesh and Shetty - practical android application exploitation
DEF CON 24 - Dinesh and Shetty - practical android application exploitation
 
DEF CON 24 - Klijnsma and Tentler - stargate pivoting through vnc
DEF CON 24 - Klijnsma and Tentler - stargate pivoting through vncDEF CON 24 - Klijnsma and Tentler - stargate pivoting through vnc
DEF CON 24 - Klijnsma and Tentler - stargate pivoting through vnc
 
DEF CON 24 - Antonio Joseph - fuzzing android devices
DEF CON 24 - Antonio Joseph - fuzzing android devicesDEF CON 24 - Antonio Joseph - fuzzing android devices
DEF CON 24 - Antonio Joseph - fuzzing android devices
 

Recently uploaded

GraphSummit Singapore | Neo4j Product Vision & Roadmap - Q2 2024
GraphSummit Singapore | Neo4j Product Vision & Roadmap - Q2 2024GraphSummit Singapore | Neo4j Product Vision & Roadmap - Q2 2024
GraphSummit Singapore | Neo4j Product Vision & Roadmap - Q2 2024
Neo4j
 
Artificial Intelligence for XMLDevelopment
Artificial Intelligence for XMLDevelopmentArtificial Intelligence for XMLDevelopment
Artificial Intelligence for XMLDevelopment
Octavian Nadolu
 
Goodbye Windows 11: Make Way for Nitrux Linux 3.5.0!
Goodbye Windows 11: Make Way for Nitrux Linux 3.5.0!Goodbye Windows 11: Make Way for Nitrux Linux 3.5.0!
Goodbye Windows 11: Make Way for Nitrux Linux 3.5.0!
SOFTTECHHUB
 
Monitoring Java Application Security with JDK Tools and JFR Events
Monitoring Java Application Security with JDK Tools and JFR EventsMonitoring Java Application Security with JDK Tools and JFR Events
Monitoring Java Application Security with JDK Tools and JFR Events
Ana-Maria Mihalceanu
 
How to Get CNIC Information System with Paksim Ga.pptx
How to Get CNIC Information System with Paksim Ga.pptxHow to Get CNIC Information System with Paksim Ga.pptx
How to Get CNIC Information System with Paksim Ga.pptx
danishmna97
 
Observability Concepts EVERY Developer Should Know -- DeveloperWeek Europe.pdf
Observability Concepts EVERY Developer Should Know -- DeveloperWeek Europe.pdfObservability Concepts EVERY Developer Should Know -- DeveloperWeek Europe.pdf
Observability Concepts EVERY Developer Should Know -- DeveloperWeek Europe.pdf
Paige Cruz
 
“I’m still / I’m still / Chaining from the Block”
“I’m still / I’m still / Chaining from the Block”“I’m still / I’m still / Chaining from the Block”
“I’m still / I’m still / Chaining from the Block”
Claudio Di Ciccio
 
Introduction to CHERI technology - Cybersecurity
Introduction to CHERI technology - CybersecurityIntroduction to CHERI technology - Cybersecurity
Introduction to CHERI technology - Cybersecurity
mikeeftimakis1
 
Let's Integrate MuleSoft RPA, COMPOSER, APM with AWS IDP along with Slack
Let's Integrate MuleSoft RPA, COMPOSER, APM with AWS IDP along with SlackLet's Integrate MuleSoft RPA, COMPOSER, APM with AWS IDP along with Slack
Let's Integrate MuleSoft RPA, COMPOSER, APM with AWS IDP along with Slack
shyamraj55
 
Why You Should Replace Windows 11 with Nitrux Linux 3.5.0 for enhanced perfor...
Why You Should Replace Windows 11 with Nitrux Linux 3.5.0 for enhanced perfor...Why You Should Replace Windows 11 with Nitrux Linux 3.5.0 for enhanced perfor...
Why You Should Replace Windows 11 with Nitrux Linux 3.5.0 for enhanced perfor...
SOFTTECHHUB
 
Pushing the limits of ePRTC: 100ns holdover for 100 days
Pushing the limits of ePRTC: 100ns holdover for 100 daysPushing the limits of ePRTC: 100ns holdover for 100 days
Pushing the limits of ePRTC: 100ns holdover for 100 days
Adtran
 
GraphSummit Singapore | Graphing Success: Revolutionising Organisational Stru...
GraphSummit Singapore | Graphing Success: Revolutionising Organisational Stru...GraphSummit Singapore | Graphing Success: Revolutionising Organisational Stru...
GraphSummit Singapore | Graphing Success: Revolutionising Organisational Stru...
Neo4j
 
PCI PIN Basics Webinar from the Controlcase Team
PCI PIN Basics Webinar from the Controlcase TeamPCI PIN Basics Webinar from the Controlcase Team
PCI PIN Basics Webinar from the Controlcase Team
ControlCase
 
A tale of scale & speed: How the US Navy is enabling software delivery from l...
A tale of scale & speed: How the US Navy is enabling software delivery from l...A tale of scale & speed: How the US Navy is enabling software delivery from l...
A tale of scale & speed: How the US Navy is enabling software delivery from l...
sonjaschweigert1
 
Removing Uninteresting Bytes in Software Fuzzing
Removing Uninteresting Bytes in Software FuzzingRemoving Uninteresting Bytes in Software Fuzzing
Removing Uninteresting Bytes in Software Fuzzing
Aftab Hussain
 
Full-RAG: A modern architecture for hyper-personalization
Full-RAG: A modern architecture for hyper-personalizationFull-RAG: A modern architecture for hyper-personalization
Full-RAG: A modern architecture for hyper-personalization
Zilliz
 
20 Comprehensive Checklist of Designing and Developing a Website
20 Comprehensive Checklist of Designing and Developing a Website20 Comprehensive Checklist of Designing and Developing a Website
20 Comprehensive Checklist of Designing and Developing a Website
Pixlogix Infotech
 
Mind map of terminologies used in context of Generative AI
Mind map of terminologies used in context of Generative AIMind map of terminologies used in context of Generative AI
Mind map of terminologies used in context of Generative AI
Kumud Singh
 
Microsoft - Power Platform_G.Aspiotis.pdf
Microsoft - Power Platform_G.Aspiotis.pdfMicrosoft - Power Platform_G.Aspiotis.pdf
Microsoft - Power Platform_G.Aspiotis.pdf
Uni Systems S.M.S.A.
 
Video Streaming: Then, Now, and in the Future
Video Streaming: Then, Now, and in the FutureVideo Streaming: Then, Now, and in the Future
Video Streaming: Then, Now, and in the Future
Alpen-Adria-Universität
 

Recently uploaded (20)

GraphSummit Singapore | Neo4j Product Vision & Roadmap - Q2 2024
GraphSummit Singapore | Neo4j Product Vision & Roadmap - Q2 2024GraphSummit Singapore | Neo4j Product Vision & Roadmap - Q2 2024
GraphSummit Singapore | Neo4j Product Vision & Roadmap - Q2 2024
 
Artificial Intelligence for XMLDevelopment
Artificial Intelligence for XMLDevelopmentArtificial Intelligence for XMLDevelopment
Artificial Intelligence for XMLDevelopment
 
Goodbye Windows 11: Make Way for Nitrux Linux 3.5.0!
Goodbye Windows 11: Make Way for Nitrux Linux 3.5.0!Goodbye Windows 11: Make Way for Nitrux Linux 3.5.0!
Goodbye Windows 11: Make Way for Nitrux Linux 3.5.0!
 
Monitoring Java Application Security with JDK Tools and JFR Events
Monitoring Java Application Security with JDK Tools and JFR EventsMonitoring Java Application Security with JDK Tools and JFR Events
Monitoring Java Application Security with JDK Tools and JFR Events
 
How to Get CNIC Information System with Paksim Ga.pptx
How to Get CNIC Information System with Paksim Ga.pptxHow to Get CNIC Information System with Paksim Ga.pptx
How to Get CNIC Information System with Paksim Ga.pptx
 
Observability Concepts EVERY Developer Should Know -- DeveloperWeek Europe.pdf
Observability Concepts EVERY Developer Should Know -- DeveloperWeek Europe.pdfObservability Concepts EVERY Developer Should Know -- DeveloperWeek Europe.pdf
Observability Concepts EVERY Developer Should Know -- DeveloperWeek Europe.pdf
 
“I’m still / I’m still / Chaining from the Block”
“I’m still / I’m still / Chaining from the Block”“I’m still / I’m still / Chaining from the Block”
“I’m still / I’m still / Chaining from the Block”
 
Introduction to CHERI technology - Cybersecurity
Introduction to CHERI technology - CybersecurityIntroduction to CHERI technology - Cybersecurity
Introduction to CHERI technology - Cybersecurity
 
Let's Integrate MuleSoft RPA, COMPOSER, APM with AWS IDP along with Slack
Let's Integrate MuleSoft RPA, COMPOSER, APM with AWS IDP along with SlackLet's Integrate MuleSoft RPA, COMPOSER, APM with AWS IDP along with Slack
Let's Integrate MuleSoft RPA, COMPOSER, APM with AWS IDP along with Slack
 
Why You Should Replace Windows 11 with Nitrux Linux 3.5.0 for enhanced perfor...
Why You Should Replace Windows 11 with Nitrux Linux 3.5.0 for enhanced perfor...Why You Should Replace Windows 11 with Nitrux Linux 3.5.0 for enhanced perfor...
Why You Should Replace Windows 11 with Nitrux Linux 3.5.0 for enhanced perfor...
 
Pushing the limits of ePRTC: 100ns holdover for 100 days
Pushing the limits of ePRTC: 100ns holdover for 100 daysPushing the limits of ePRTC: 100ns holdover for 100 days
Pushing the limits of ePRTC: 100ns holdover for 100 days
 
GraphSummit Singapore | Graphing Success: Revolutionising Organisational Stru...
GraphSummit Singapore | Graphing Success: Revolutionising Organisational Stru...GraphSummit Singapore | Graphing Success: Revolutionising Organisational Stru...
GraphSummit Singapore | Graphing Success: Revolutionising Organisational Stru...
 
PCI PIN Basics Webinar from the Controlcase Team
PCI PIN Basics Webinar from the Controlcase TeamPCI PIN Basics Webinar from the Controlcase Team
PCI PIN Basics Webinar from the Controlcase Team
 
A tale of scale & speed: How the US Navy is enabling software delivery from l...
A tale of scale & speed: How the US Navy is enabling software delivery from l...A tale of scale & speed: How the US Navy is enabling software delivery from l...
A tale of scale & speed: How the US Navy is enabling software delivery from l...
 
Removing Uninteresting Bytes in Software Fuzzing
Removing Uninteresting Bytes in Software FuzzingRemoving Uninteresting Bytes in Software Fuzzing
Removing Uninteresting Bytes in Software Fuzzing
 
Full-RAG: A modern architecture for hyper-personalization
Full-RAG: A modern architecture for hyper-personalizationFull-RAG: A modern architecture for hyper-personalization
Full-RAG: A modern architecture for hyper-personalization
 
20 Comprehensive Checklist of Designing and Developing a Website
20 Comprehensive Checklist of Designing and Developing a Website20 Comprehensive Checklist of Designing and Developing a Website
20 Comprehensive Checklist of Designing and Developing a Website
 
Mind map of terminologies used in context of Generative AI
Mind map of terminologies used in context of Generative AIMind map of terminologies used in context of Generative AI
Mind map of terminologies used in context of Generative AI
 
Microsoft - Power Platform_G.Aspiotis.pdf
Microsoft - Power Platform_G.Aspiotis.pdfMicrosoft - Power Platform_G.Aspiotis.pdf
Microsoft - Power Platform_G.Aspiotis.pdf
 
Video Streaming: Then, Now, and in the Future
Video Streaming: Then, Now, and in the FutureVideo Streaming: Then, Now, and in the Future
Video Streaming: Then, Now, and in the Future
 

DEF CON 27 - XILING GONG PETER PI - exploiting qualcom wlan and modem over the air

  • 1. Exploiting Qualcomm WLAN And Modem Over-The-Air Xiling Gong, Peter Pi Tencent Blade Team
  • 2. About Us Xiling Gong (@GXiling) Senior security researcher at Tencent Blade Team. Focus on Android Security, Qualcomm Firmware Security. Speaker of BlackHat, CanSecWest. Peter Pi(@tencent_blade) Senior security researcher at Tencent Blade Team. Find many vulnerabilities of vendors like Google, Microsoft, Apple, Qualcomm, Adobe and Tesla. The #1 Researcher of Google Android VRP in year 2016. Speaker of BlackHat, CanSecWest, HITB, GSEC and Hitcon.
  • 3. About Tencent Blade Team • Founded by Tencent Security Platform Department in 2017 • Focus on security research in the areas of AIoT, Mobile devices, Cloud virtualization, Blockchain, etc • Report 200+ vulnerabilities to vendors such as Google, Apple, Microsoft, Amazon • We talked about how to break Amazon Echo at DEFCON26 • Blog: https://blade.tencent.com
  • 4. Agenda • Introduction and Related Work • The Debugger • Reverse Engineering and Attack Surface • Vulnerability and Exploitation • Escaping into Modem • Escaping into Kernel • Stability of Exploitation • Conclusions
  • 5. Agenda • Introduction and Related Work • The Debugger • Reverse Engineering and Attack Surface • Vulnerability and Exploitation • Escaping into Modem • Escaping into Kernel • Stability of Exploitation • Conclusions
  • 6. Introduction • Broadcom WIFI Chip • 2017, Gal Beniamini • Over The Air: Exploiting Broadcom’s Wi-Fi Stack • 2017, Nitay Artenstein, BlackHat USA 2017 • BROADPWN: REMOTELY COMPROMISING ANDROID AND IOS VIA A BUG IN BROADCOM'S WI-FI CHIPSETS • Marvel WIFI Chip • 2019, Denis Selyanin • Zero Nights 2018 , Researching Marvell Avastar Wi-Fi: from zero knowledge to over- the-air zero-touch RCE • Blog 2019, Remotely compromise devices by using bugs in Marvell Avastar Wi-Fi: from zero knowledge to zero-click RCE • How about Qualcomm WIFI?
  • 7. Qualcomm WLAN (MSM8998) WLAN FirmwareBaseband Subsystem Linux Kernel QCACLD2/3Full MAC Layer Application Android Framework Wifi Demon Modem Firmware
  • 8. Agenda • Introduction and Related Work • The Debugger • Reverse Engineering and Attack Surface • Vulnerability and Exploitation • Escaping into Modem • Escaping into Kernel • Stability of Exploitation • Conclusions
  • 9. MBA and Modem images • Modem Boot Authenticator • mba.mbn • modem.mdt • modem.b00 – modem.b20 • Image format
  • 11. pil_boot • The pil_boot function in Linux Kernel describes the boot flow of modem. • Load mba.mbn, modem.mdt and modem.bxx to physical memory. • Trigger MBA and modem images to be verified and run in Modem Processor. • Linux Kernel can restart Modem Processor at any time, will hit pil_boot each time when restart.
  • 12. pil_boot pil_boot start Load modem.mdt, use the info to setup modem pa region Call pil_mss_mem_setup to register modem pa region to TZ Call pil_msa_mss_reset_mba_load_auth_mdt to load msa.mbn and auth modem.mdt Call pil_assign_mem_to_subsys_and_linux to make Linux Kernel and MBA both can access the pa region Call pil_load_seg to load modem.bxx to the pa region Call pil_msa_mba_auth to auth modem.bxx and start modem Call pil_reclaim_mem to make Linux Kernel can’t access the pa region any more
  • 14. POC
  • 16. Agenda • Introduction and Related Work • The Debugger • Reverse Engineering and Attack Surface • Vulnerability and Exploitation • Escaping into Modem • Escaping into Kernel • Stability of Exploitation • Conclusions
  • 17. Qualcomm WLAN WLAN Firmware Baseband Subsystem Hexagon Linux KernelQCACLD2/3Full MAC Layer Application Android Framework Wifi Demon Modem Firmware
  • 18. Qualcomm WLAN Architecture WMI Handler Non-Data Handler Data Handler Physical Layer OTA Packet Offload MAC Layer WLAN Firmware Linux KernelQCACLD2/3Full MAC Layer Application Android Framework Wifi Demon
  • 19. Example - Management Beacon Non-Data Handler 80211 Management Beacon WLAN Firmware Linux KernelQCACLD2/3Full MAC Layer Wifi Demon Offload Table Parse Discard SSID Management BeaconForward
  • 20. Firmware • Modem load WLAN Firmware from /vendor/firmware/wlanmdsp.mbn • IDA Disassembler • https://github.com/programa-stic/hexag00n/tree/master/ida • https://github.com/gsmk/hexagon • Qualcomm SDK • https://developer.qualcomm.com/software/hexagon-dsp-sdk/tools • Instruction Reference • https://developer.qualcomm.com/download/hexagon/hexagon-v5x- programmers-reference-manual.pdf?referrer=node/6116
  • 21. Reverse Engineering – Hint From Qualcomm Import Function WMI Handler drivers/staging/fw-api-fw/wmi_unified.h String Table
  • 22. Reverse Engineering • Targets To Reverse • WMI Handlers • Handle WMI commands from Linux Kernel • Send back WMI indication to Linux Kernel • Offload Handlers • Handle OTA Packets WMI Handler Non-Data Handler Data Handler Offload MAC Layer Physical Layer OTA Packet
  • 25. Sample Offload Handler OTA Packet Data Pointer = [0x5B | 0x5A | 0x59 | 0x58]
  • 26. Agenda • Introduction and Related Work • The Debugger • Reverse Engineering and Attack Surface • Vulnerability and Exploitation • Escaping into Modem • Escaping into Kernel • Stability of Exploitation • Conclusions
  • 28. Mitigation Table (WLAN & Modem) Mitigation Status Heap ASLR Y Heap Cookie Y Stack Cookie Y W^X Y FRAMELIMIT* Y FRAMEKEY** Y Code & Global Data ASLR N CFI N *FRAMELIMIT Register - If SP < FRAMELIMIT throw exception **FRAMEKEY Register - Return Address XOR FRAMEKEY. A random integer different for every thread
  • 29. The Vulnerability (CVE-2019-10540) Non-Data Handler 80211 PRE-AUTH-Frame OTA WLAN Firmware Offload Table Parse Linux Kernel
  • 30. The Vulnerability (CVE-2019-10540) [GLOBAL] char *GlobalBuffer[10 * 0xB0 + 6]; unsigned int itemCount = 0; for (unsigned int i = 0; i < Length; i += 0x44) { memcpy (GlobalBuffer + 6 + itemCount * 0xB0, OTA_DataPtr + i, 0x44); itemCount++; } * Translated and simplified the code flow Copy items from packet into Global Static Buffer. Max Item Count = 10 Send 11 items -> Overflow!
  • 31. Data & Address of Overflow Item 1 (0xB0 bytes) Head (6 bytes) Item 2 (0xB0 bytes) … Item 9 (0xB0 bytes) Item 10 (0xB0 bytes) Overflow (0x44 bytes) Global Buffer (0xB0 – 0x44 bytes) Overflow (0x44 bytes) (0xB0 – 0x44 bytes) +0xB0 * 10 …
  • 32. Smart Pointer Around Overflow Memory Item 1 (0xB0 bytes) Head (6 bytes) Item 2 (0xB0 bytes) … Item 9 (0xB0 bytes) Item 10 (0xB0 bytes) Overflow (0x44 bytes) (0xB0 – 0x44 bytes) Overflow (0x44 bytes) (0xB0 – 0x44 bytes) … 0x00000000+0 0x00000000 +4 0x00000000 +8 SmartPointer+C Global Buffer +0xB0 * 10
  • 33. Usage Of Smart Pointer Char **AddressOfSmartPointer = GlobalBuffer + 6 + 0xB0 * 11 + 0xC; char *SmartPointer = *AddressOfSmartPointer; char *MacAddress = OTA_DataPtr + 0x10; char *BYTE_C = OTA_ DataPtr + 0x10 + 0x20; char *BYTE_D = OTA_ DataPtr + 0x10 + 0x21; char *BYTE_14 = OTA_ DataPtr + 0x10 + 0x22; if (TestBit(SmartPointer, 0) == 1) { if (memcmp(SmartPointer + 6, MacAddress, 6) == 0) { *(SmartPointer + 0xC) = *BYTE_C; *(SmartPointer + 0xD) = *BYTE_D; *(SmartPointer + 0x14) = *BYTE_14; } } * Translated and simplified the code flow
  • 34. Usage Of Smart Pointer Char **AddressOfSmartPointer = GlobalBuffer + 6 + 0xB0 * 11 + 0xC; char *SmartPointer = *AddressOfSmartPointer; // Overwrite with vulnerability char *MacAddress = OTA_DataPtr + 0x10; char *BYTE_C = OTA_ DataPtr + 0x10 + 0x20; char *BYTE_D = OTA_ DataPtr + 0x10 + 0x21; char *BYTE_14 = OTA_ DataPtr + 0x10 + 0x22; if (TestBit(SmartPointer, 0) == 1) { // The only constraint, Bit0 == 1 if (memcmp(SmartPointer + 6, MacAddress, 6) == 0) { // From OTA Data, could be bypass *(SmartPointer + 0xC) = *BYTE_C; // Overwrite 0xC *(SmartPointer + 0xD) = *BYTE_D; // Overwrite 0xD *(SmartPointer + 0x14) = *BYTE_14; } } * Translated and simplified the code flow
  • 35. Global Write With Constraint 0xXXXXXXXX SmartPointer 00 00 00 01 00 00 00 00 00 00 00 00 12 34 56 78 0xXXXXXXXX +4 +8 +C 00 00 00 01 MA CA 00 00 AD DR ES SS 12 34 ?? ?? +4 +8 +C +0 Bit 0 Write MAC Step 1 Overwrite SmartPointer Step 2 Global Write (Using SmartPointer)
  • 36. Global Write With Constraint How to write 4 bytes? MACA 00 00 AD DR ES SS 12 34 ?? ?? +4 +8 +C +0 Bit 0 MAC 0xXXXXXXXXSmartPointer Step 1 Overwrite SmartPointer Write Low 2 Bytes 00 01 00 01 00 00 00 00 MA CA DD RE ?? ?? SS SS +4 +8 +C +0 Bit 16 MAC Write High 2 Bytes 00 01 00 01 Step 4 Global Write (Using SmartPointer) 0xXXXXXXXX+2SmartPointer Step 3 Overflow SmartPointer Step 2 Global Write (Using SmartPointer)
  • 37. Global Write With Constraint The Bit0 != 1? MACA 00 00 AD DR ES SS 12 34 ?? ?? Bit0 != 1 MAC 00 00 00 00 Target 00 00 00 00 00 00 00 01 Bit0 == 1? MAC 00 00 00 01 +4 +8 +C +0 -8 -4 -C
  • 38. Control PC & R0 Address Value 00 0x00010000 +04 0x00010001 +08 0x00000000 +0C 0x00000001 +10 0x00000000 +14 0x00000000 +18 0x00000000 +1C 0x00000000 +20 0x00000000 +24 0x12345678(PC) +28 0x87654321(R0) Address Value +00 0x00010000 +04 0x00010001 +08 0x00000000 +0C 0x00010001 +10 0x00010001 +14 0x00000000 +18 0x00010001 +1C 0x00010001 +20 0x00000000 +24 TARGET PC +28 TARGET R0 SmartPointer
  • 39. Transform To Arbitrary Write TARGET PC TARGET R0 Item1 Payload1 Item2 Payload2 … FOP Gadget
  • 40. Run Useful FOP Gadget Function Pointer(PC) Data Pointer (R0) Step 1 Arbitrary Write Overwrite function pointer Step 2 Arbitrary Write Overwrite data pointer Item1 Payload1 Item2 Payload2 … Step 3 Send payload packet and trigger the PC
  • 41. Virtual Address Memory Mapping RWX CreateMapping(args, …) R0 = 0x42420000 Virtual Address R1 = 0x936a0000 Physical Address R2 = 0x1000 Size R3 = 4 Unknown R4 = 7 Permission RWX Physical DRAM 936a0000 42420000 b0000000 RWX R-X
  • 42. Memory Mapping RWX TARGET PC TARGET R0 CreateMapping(args, …) R0 = 0x42420000 Virtual Address R1 = 0x936a0000 Physical Address R2 = 0x1000 Size R3 = 4 Unknown R4 = 7 Permission RWX FOP Gadget Item1 Payload1 Item2 Payload2 …
  • 43. Copy Shellcode to 0x42420000 memcpy(PC) 0x42420000(R0) 0x42420000 Shellcode … Step 1 Arbitrary Write Overwrite function pointer Step 2 Arbitrary Write Overwrite data pointer Step 3 Trigger OTA Packet(R1) Packet Len(R2)
  • 44. Trigger Shellcode 0xB0000020(PC) Any Value(R0) 0xB0000020 Shellcode … Step 1 Arbitrary Write Overwrite function pointer Step 2 Trigger
  • 45. Agenda • Introduction and Related Work • The Debugger • Reverse Engineering and Attack Surface • Vulnerability and Exploitation • Escaping into Modem • Escaping into Kernel • Stability of Exploitation • Conclusions
  • 47. From WLAN to Modem WLAN Kernel Modem * TLB is a Hexagon Instruction to modify the Memory Page Attribute ** Complex Function uses the resource of Modem, or calls System Call *** Simple Code Snippet mean code has only register operation QURT OS Actions From WLAN Eligible? TLB Set* N Write Modem Data N Call Modem Complex Function** N Call Modem Simple Code Snippet*** Y Map Modem Memory Y Userspace
  • 48. Map Modem Memory into WLAN Modem WLAN Modem RWX R-X WLAN Virtual Address Physical Address Modem WLAN Process Virtual Address
  • 49. Agenda • Introduction and Related Work • The Debugger • Reverse Engineering and Attack Surface • Vulnerability and Exploitation • Escaping into Modem • Escaping into Kernel • Stability of Exploitation • Conclusions
  • 51. The Attack Surfaces Linux Kernel Modem Userspace APP TrustZone AT Command Glink DIAG QMI WMI APR Share Memory
  • 52. • We’ve found An arbitrary memory read/write vulnerability Could bypass all the mitigations of Linux Kernel From Modem into Linux Kernel • In these attack surfaces • But we are unable to disclose the detail now
  • 53. Agenda • Introduction and Related Work • The Debugger • Reverse Engineering and Attack Surface • Vulnerability and Exploitation • Escaping into Modem • Escaping into Kernel • Stability of Exploitation • Conclusions
  • 54. Deliver the Payload Over-The-Air Pixel 2XL Packet Losing Rate 90%+!
  • 55. Deliver the Payloads Using Pixel2 Pixel 2 Pixel 2XL
  • 57. Demo
  • 58. Future Works • There are still lots of mystery in the WLAN. • We were only reversed a small part of the code • Lots of functions are unknown • How to fuzz the WLAN Firmware? • Reverse engineering is quite… • How to fuzz closed source target and Hexagon architecture effectively? • Translate Hexagon Instruction to C? • IDA/Ghidra F5 plugin?
  • 59. Timeline • 2019-2-14 Find the Modem debug vulnerability on MSM8998 • 2019-3-24 Find the WLAN issue and report to Google • 2019-3-28 Google forwards the issue to Qualcomm • 2019-4-24 Google confirms the WLAN issue as Critical • 2019-5-08 Report the WLAN into Linux Kernel issue to Google • 2019-5-24 Google confirms the WLAN into Linux Kernel issue • 2019-5-28 Submit the full exploit chain to Google • 2019-6-04 Google reply unable to reproduce the full exploit chain • 2019-6-17 Improve the stability and submit to Google • 2019-7-19 CVE Assigned by Google • 2019-7-20 Qualcomm confirms issues will be fixed before October • 2019-8-0? Google release the fix for Google Pixel2/Pixel3