broadpwn - black hat | home · 2018-05-11 · broadpwn remotely owning android and ios ... the bcm...

48
BROADPWN Remotely Owning Android and iOS Nitay Artenstein

Upload: others

Post on 03-Jun-2020

3 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: BROADPWN - Black Hat | Home · 2018-05-11 · BROADPWN Remotely Owning Android and iOS ... THE BCM ARCHITECTURE. THE BCM ARCHITECTURE BACKPLANE RAM ROM 900K 900K ARM Cortex R4 D11

BROADPWNRemotely Owning Android and iOS

Nitay Artenstein

Page 2: BROADPWN - Black Hat | Home · 2018-05-11 · BROADPWN Remotely Owning Android and iOS ... THE BCM ARCHITECTURE. THE BCM ARCHITECTURE BACKPLANE RAM ROM 900K 900K ARM Cortex R4 D11

• Twitter: @nitayart

• Reverse engineer and vulnerability researcher

• Focusing on Android, WiFi and basebands

whoami

Page 3: BROADPWN - Black Hat | Home · 2018-05-11 · BROADPWN Remotely Owning Android and iOS ... THE BCM ARCHITECTURE. THE BCM ARCHITECTURE BACKPLANE RAM ROM 900K 900K ARM Cortex R4 D11

• Are fully remote exploits still viable?

• How we found an attack surface suitable for remote exploitation

• The story of a powerful WiFi bug, and how it was leveraged into a fully remote exploit

AGENDA

Page 4: BROADPWN - Black Hat | Home · 2018-05-11 · BROADPWN Remotely Owning Android and iOS ... THE BCM ARCHITECTURE. THE BCM ARCHITECTURE BACKPLANE RAM ROM 900K 900K ARM Cortex R4 D11

“New secrets about torture in government prisons”

“Facebook alerts that attempts have been made to access your account”

REMOTE EXPLOIT != BROWSER EXPLOITIf the victim has to click, it’s not a true remote

Page 5: BROADPWN - Black Hat | Home · 2018-05-11 · BROADPWN Remotely Owning Android and iOS ... THE BCM ARCHITECTURE. THE BCM ARCHITECTURE BACKPLANE RAM ROM 900K 900K ARM Cortex R4 D11

A REMOTE MAY NOT REQUIRE HUMAN INTERACTION TO TRIGGER. LIMITED ATTACK SURFACE

A REMOTE MAY NOT REQUIRE COMPLEX ASSUMPTIONS ABOUT THE SYSTEM’S STATE. IMPOSSIBLE WITH ASLR

A REMOTE MUST LEAVE THE SYSTEM IN A STABLE STATE. CRASHING == FAILURE

THE THREE LAWS OF REMOTE EXPLOITS

Page 6: BROADPWN - Black Hat | Home · 2018-05-11 · BROADPWN Remotely Owning Android and iOS ... THE BCM ARCHITECTURE. THE BCM ARCHITECTURE BACKPLANE RAM ROM 900K 900K ARM Cortex R4 D11

A REMOTE MAY NOT REQUIRE HUMAN INTERACTION TO TRIGGER. LIMITED ATTACK SURFACE

A REMOTE MAY NOT REQUIRE COMPLEX ASSUMPTIONS ABOUT THE SYSTEM’S STATE. IMPOSSIBLE WITH ASLR

A REMOTE MUST LEAVE THE SYSTEM IN A STABLE STATE. CRASHING == FAILURE

THE THREE LAWS OF REMOTE EXPLOITS

Page 7: BROADPWN - Black Hat | Home · 2018-05-11 · BROADPWN Remotely Owning Android and iOS ... THE BCM ARCHITECTURE. THE BCM ARCHITECTURE BACKPLANE RAM ROM 900K 900K ARM Cortex R4 D11

NOT AN EASY TASK

Page 8: BROADPWN - Black Hat | Home · 2018-05-11 · BROADPWN Remotely Owning Android and iOS ... THE BCM ARCHITECTURE. THE BCM ARCHITECTURE BACKPLANE RAM ROM 900K 900K ARM Cortex R4 D11

Application Processor

ATTACKING ANDROID/IOS

DEP

ASLR

PXN/PAN

Page 9: BROADPWN - Black Hat | Home · 2018-05-11 · BROADPWN Remotely Owning Android and iOS ... THE BCM ARCHITECTURE. THE BCM ARCHITECTURE BACKPLANE RAM ROM 900K 900K ARM Cortex R4 D11

Application Processor

ATTACKING ANDROID/IOS

WiFi Chip Baseband

Page 10: BROADPWN - Black Hat | Home · 2018-05-11 · BROADPWN Remotely Owning Android and iOS ... THE BCM ARCHITECTURE. THE BCM ARCHITECTURE BACKPLANE RAM ROM 900K 900K ARM Cortex R4 D11

BASEBANDSiPhone

Samsung Galaxy and Note

Google Nexus

Some LGs and HTCs

Page 11: BROADPWN - Black Hat | Home · 2018-05-11 · BROADPWN Remotely Owning Android and iOS ... THE BCM ARCHITECTURE. THE BCM ARCHITECTURE BACKPLANE RAM ROM 900K 900K ARM Cortex R4 D11

WIFI CONTROLLERSiPhone

Samsung Galaxy and Note

Google Nexus

Some LGs and HTCs

Page 12: BROADPWN - Black Hat | Home · 2018-05-11 · BROADPWN Remotely Owning Android and iOS ... THE BCM ARCHITECTURE. THE BCM ARCHITECTURE BACKPLANE RAM ROM 900K 900K ARM Cortex R4 D11

Broadcom chips have no DEP or ASLR, and all memory is RWX!!!

WIFI BONUS

Page 13: BROADPWN - Black Hat | Home · 2018-05-11 · BROADPWN Remotely Owning Android and iOS ... THE BCM ARCHITECTURE. THE BCM ARCHITECTURE BACKPLANE RAM ROM 900K 900K ARM Cortex R4 D11

DIVING INTO THE WIFI SOC

Page 14: BROADPWN - Black Hat | Home · 2018-05-11 · BROADPWN Remotely Owning Android and iOS ... THE BCM ARCHITECTURE. THE BCM ARCHITECTURE BACKPLANE RAM ROM 900K 900K ARM Cortex R4 D11

• Gal Beniamini of P0, “Exploiting Broadcom’s Wi-Fi Stack”

• The Nexmon project by SEEMOO Labs

• “Wardriving from your Pocket”, Recon 2013 (Omri Ildis, Yuval Ofir and Ruby Feinstein)

• Andrés Blanco, “One Firmware to Monitor ‘em All”

PREVIOUS WORKS ABOUT BCM

Page 15: BROADPWN - Black Hat | Home · 2018-05-11 · BROADPWN Remotely Owning Android and iOS ... THE BCM ARCHITECTURE. THE BCM ARCHITECTURE BACKPLANE RAM ROM 900K 900K ARM Cortex R4 D11

THE BCM ARCHITECTURE

Page 16: BROADPWN - Black Hat | Home · 2018-05-11 · BROADPWN Remotely Owning Android and iOS ... THE BCM ARCHITECTURE. THE BCM ARCHITECTURE BACKPLANE RAM ROM 900K 900K ARM Cortex R4 D11

THE BCM ARCHITECTURE

BACKPLANE

RAM ROM900K900K

ARM Cortex R4

PCIe SDIOD11 (PHY)

Main processor

Page 17: BROADPWN - Black Hat | Home · 2018-05-11 · BROADPWN Remotely Owning Android and iOS ... THE BCM ARCHITECTURE. THE BCM ARCHITECTURE BACKPLANE RAM ROM 900K 900K ARM Cortex R4 D11

• The firmware is loaded from the main OS, so it’s stored in the filesystem (/etc/wifi/ on Samsungs)

• Chip runs a proprietary RTOS known as HNDRTE

• Fortunately, a large part of its source code leaked online

REVERSING THE BCM FIRMWARE

Page 18: BROADPWN - Black Hat | Home · 2018-05-11 · BROADPWN Remotely Owning Android and iOS ... THE BCM ARCHITECTURE. THE BCM ARCHITECTURE BACKPLANE RAM ROM 900K 900K ARM Cortex R4 D11

github.com/elenril/VMG1312-B

Page 19: BROADPWN - Black Hat | Home · 2018-05-11 · BROADPWN Remotely Owning Android and iOS ... THE BCM ARCHITECTURE. THE BCM ARCHITECTURE BACKPLANE RAM ROM 900K 900K ARM Cortex R4 D11

FINDING THE RIGHT ATTACK SURFACE

Remember the First Law of Remotes?

A REMOTE MAY NOT REQUIRE HUMAN INTERACTION TO TRIGGER

Page 20: BROADPWN - Black Hat | Home · 2018-05-11 · BROADPWN Remotely Owning Android and iOS ... THE BCM ARCHITECTURE. THE BCM ARCHITECTURE BACKPLANE RAM ROM 900K 900K ARM Cortex R4 D11

802.11: AN UNAUTHENTICATED ASSOCIATION PROCESSProbe Request

Probe Response

Auth Open Seq (obsolete)

Association Request

Association Response

DATA - real auth (WPA2) comes here

Page 21: BROADPWN - Black Hat | Home · 2018-05-11 · BROADPWN Remotely Owning Android and iOS ... THE BCM ARCHITECTURE. THE BCM ARCHITECTURE BACKPLANE RAM ROM 900K 900K ARM Cortex R4 D11

802.11: AN UNAUTHENTICATED ASSOCIATION PROCESSProbe Request

Probe Response

Auth Open Seq (obsolete)

Association Request

Association Response

DATA - real auth (WPA2) comes here

“Hey, are you BOB_HOME?”

“Sure I am!”

Page 22: BROADPWN - Black Hat | Home · 2018-05-11 · BROADPWN Remotely Owning Android and iOS ... THE BCM ARCHITECTURE. THE BCM ARCHITECTURE BACKPLANE RAM ROM 900K 900K ARM Cortex R4 D11
Page 23: BROADPWN - Black Hat | Home · 2018-05-11 · BROADPWN Remotely Owning Android and iOS ... THE BCM ARCHITECTURE. THE BCM ARCHITECTURE BACKPLANE RAM ROM 900K 900K ARM Cortex R4 D11

802.11 ASSOCIATION SEQUENCE PACKETS

Frame Type2 Bytes

Duration ID2 Bytes

Addresses18 Bytes

Seq Cont.2 Bytes

Addr. 46 Bytes

Basic Header

Basic Header Information Elements, variable length

Page 24: BROADPWN - Black Hat | Home · 2018-05-11 · BROADPWN Remotely Owning Android and iOS ... THE BCM ARCHITECTURE. THE BCM ARCHITECTURE BACKPLANE RAM ROM 900K 900K ARM Cortex R4 D11

802.11 INFORMATION ELEMENTS

Type1 Byte

Length1 Byte

DataVariable length

TLV

802.11 Packet

Basic Header IE IE IE

Page 25: BROADPWN - Black Hat | Home · 2018-05-11 · BROADPWN Remotely Owning Android and iOS ... THE BCM ARCHITECTURE. THE BCM ARCHITECTURE BACKPLANE RAM ROM 900K 900K ARM Cortex R4 D11

FINDING THE CODE: FOLLOW THE MODULES

Page 26: BROADPWN - Black Hat | Home · 2018-05-11 · BROADPWN Remotely Owning Android and iOS ... THE BCM ARCHITECTURE. THE BCM ARCHITECTURE BACKPLANE RAM ROM 900K 900K ARM Cortex R4 D11

FINDING THE CODE: FOLLOW THE MODULES

void wlc_iem_add_parse_fn( iem_info *iem, uint32 subtype_bitfield, uint32 iem_type, callback_fn_t fn, void *arg);

IE TypeFrame type

Page 27: BROADPWN - Black Hat | Home · 2018-05-11 · BROADPWN Remotely Owning Android and iOS ... THE BCM ARCHITECTURE. THE BCM ARCHITECTURE BACKPLANE RAM ROM 900K 900K ARM Cortex R4 D11

FINDING THE CODE: FOLLOW THE MODULES

Page 28: BROADPWN - Black Hat | Home · 2018-05-11 · BROADPWN Remotely Owning Android and iOS ... THE BCM ARCHITECTURE. THE BCM ARCHITECTURE BACKPLANE RAM ROM 900K 900K ARM Cortex R4 D11

THE BUG

Page 29: BROADPWN - Black Hat | Home · 2018-05-11 · BROADPWN Remotely Owning Android and iOS ... THE BCM ARCHITECTURE. THE BCM ARCHITECTURE BACKPLANE RAM ROM 900K 900K ARM Cortex R4 D11

• A Quality-of-Service extension to the 802.11 standard

• Enables an AP to prioritize traffic of video, VoIP, etc.

• Protocol information is parsed from Information Elements in Probe Request, Probe Response and Association Response packets

WIRELESS MEDIA EXTENSIONS (WME)

Page 30: BROADPWN - Black Hat | Home · 2018-05-11 · BROADPWN Remotely Owning Android and iOS ... THE BCM ARCHITECTURE. THE BCM ARCHITECTURE BACKPLANE RAM ROM 900K 900K ARM Cortex R4 D11

WLC_BSS_PARSE_WME_IEif ( frame_type == FC_ASSOC_RESP ) { ... if ( wlc->pub->_wme ) { cfg->flags |= 0x100u; memcpy(current_wmm_ie, ie->data, ie->len);

Page 31: BROADPWN - Black Hat | Home · 2018-05-11 · BROADPWN Remotely Owning Android and iOS ... THE BCM ARCHITECTURE. THE BCM ARCHITECTURE BACKPLANE RAM ROM 900K 900K ARM Cortex R4 D11

DO WE HAVE AN OVERFLOW? CHECK THE ALLOC FUNC

wlc_bsscfg *wlc_bsscfg_malloc(wlc_info *wlc) { ... pm = wlc_calloc(0x78); wlc->pm = pm; current_wmm_ie = wlc_calloc(0x2C); wlc->current_wmm_ie = current_wmm_ie;

Max IE length: 255 bytesOverflow: 211 bytes

Page 32: BROADPWN - Black Hat | Home · 2018-05-11 · BROADPWN Remotely Owning Android and iOS ... THE BCM ARCHITECTURE. THE BCM ARCHITECTURE BACKPLANE RAM ROM 900K 900K ARM Cortex R4 D11
Page 33: BROADPWN - Black Hat | Home · 2018-05-11 · BROADPWN Remotely Owning Android and iOS ... THE BCM ARCHITECTURE. THE BCM ARCHITECTURE BACKPLANE RAM ROM 900K 900K ARM Cortex R4 D11

IS THIS BUG REMOTELY EXPLOITABLE?

Remember the Second Law of Remotes?

A REMOTE MAY NOT REQUIRE COMPLEX ASSUMPTIONS ABOUT

THE SYSTEM’S STATE

Page 34: BROADPWN - Black Hat | Home · 2018-05-11 · BROADPWN Remotely Owning Android and iOS ... THE BCM ARCHITECTURE. THE BCM ARCHITECTURE BACKPLANE RAM ROM 900K 900K ARM Cortex R4 D11

• What we don’t want: An overflow into dynamic memory regions (we’ll need to make assumptions about the program’s state)

• What we do want: To overwrite a pointer in static memory consistently and deterministically

• And, the program needs to do something useful with the pointer we overwrite

AN EXPLOITABLE REMOTE

Page 35: BROADPWN - Black Hat | Home · 2018-05-11 · BROADPWN Remotely Owning Android and iOS ... THE BCM ARCHITECTURE. THE BCM ARCHITECTURE BACKPLANE RAM ROM 900K 900K ARM Cortex R4 D11

THE OVERFLOW: MEMORY LAYOUT

current_wmm_ie

Allocated at startup (deterministic address)

ps ssid

Overflow

Page 36: BROADPWN - Black Hat | Home · 2018-05-11 · BROADPWN Remotely Owning Android and iOS ... THE BCM ARCHITECTURE. THE BCM ARCHITECTURE BACKPLANE RAM ROM 900K 900K ARM Cortex R4 D11

THE OVERFLOWED STRUCTtypedef struct wlc_pm_st { uint8 PM; .. struct wl_timer *pspoll_timer; struct wl_timer *apsd_trigger_timer; .. bool send_pspoll_after_tx; wlc_hwtimer_to_t *pm2_rcv_timer; wlc_hwtimer_to_t *pm2_ret_timer; } wlc_pm_st_t;

Timers allocated at startup with deterministic addresses

Page 37: BROADPWN - Black Hat | Home · 2018-05-11 · BROADPWN Remotely Owning Android and iOS ... THE BCM ARCHITECTURE. THE BCM ARCHITECTURE BACKPLANE RAM ROM 900K 900K ARM Cortex R4 D11

USING THE TIMER FOR A WRITE PRIMITIVEint timer_func(struct wl_timer *t){ ... v7 = t->field_18; ... v9 = t->field_1c; v7->field_14 = v9; ... j_restore_cpsr(prev_cpsr);

Full write-what-where

Page 38: BROADPWN - Black Hat | Home · 2018-05-11 · BROADPWN Remotely Owning Android and iOS ... THE BCM ARCHITECTURE. THE BCM ARCHITECTURE BACKPLANE RAM ROM 900K 900K ARM Cortex R4 D11

WHERE SHALL WE WRITE?

Page 39: BROADPWN - Black Hat | Home · 2018-05-11 · BROADPWN Remotely Owning Android and iOS ... THE BCM ARCHITECTURE. THE BCM ARCHITECTURE BACKPLANE RAM ROM 900K 900K ARM Cortex R4 D11

PROBLEM: WHERE DO WE PUT OUR PAYLOAD?

current_wmm_ie

Only 24 bytes available for shellcode

ps ssid

Overflow

Page 40: BROADPWN - Black Hat | Home · 2018-05-11 · BROADPWN Remotely Owning Android and iOS ... THE BCM ARCHITECTURE. THE BCM ARCHITECTURE BACKPLANE RAM ROM 900K 900K ARM Cortex R4 D11

THE PACKET RING BUFFER

packet packet packet packet packet packet

Spray with beacon probes - packets are RWX!!

Page 41: BROADPWN - Black Hat | Home · 2018-05-11 · BROADPWN Remotely Owning Android and iOS ... THE BCM ARCHITECTURE. THE BCM ARCHITECTURE BACKPLANE RAM ROM 900K 900K ARM Cortex R4 D11

24 BYTES - JUST ENOUGH FOR AN EGGHUNT!void egghunt(uint arg) { uint *p = (uint *) RING_BUFFER_START; void (*f)(uint);loop: p++; if (*p != 0xc0deba5e) goto loop; f = (void (*)(uint))(((uchar *) p) + 5); f(arg); return;}

Page 42: BROADPWN - Black Hat | Home · 2018-05-11 · BROADPWN Remotely Owning Android and iOS ... THE BCM ARCHITECTURE. THE BCM ARCHITECTURE BACKPLANE RAM ROM 900K 900K ARM Cortex R4 D11

EXPLOIT BUFFER - FINAL STRUCTURE

Page 43: BROADPWN - Black Hat | Home · 2018-05-11 · BROADPWN Remotely Owning Android and iOS ... THE BCM ARCHITECTURE. THE BCM ARCHITECTURE BACKPLANE RAM ROM 900K 900K ARM Cortex R4 D11

DON’T FORGET TO CLEAN UP

Remember the Third Law of Remotes?

A REMOTE MUST LEAVE THE SYSTEM IN A STABLE STATE

Page 44: BROADPWN - Black Hat | Home · 2018-05-11 · BROADPWN Remotely Owning Android and iOS ... THE BCM ARCHITECTURE. THE BCM ARCHITECTURE BACKPLANE RAM ROM 900K 900K ARM Cortex R4 D11

THE NEXT STAGE: THE FIRST WIFI WORM

Page 45: BROADPWN - Black Hat | Home · 2018-05-11 · BROADPWN Remotely Owning Android and iOS ... THE BCM ARCHITECTURE. THE BCM ARCHITECTURE BACKPLANE RAM ROM 900K 900K ARM Cortex R4 D11

• Hook the function which handles incoming packets

• Whenever a probe request comes in, start a fake association process

• Reach the association request phase, then deliver the exploit (might need several attempts to match the target firmware)

BUILDING A WORM

Page 46: BROADPWN - Black Hat | Home · 2018-05-11 · BROADPWN Remotely Owning Android and iOS ... THE BCM ARCHITECTURE. THE BCM ARCHITECTURE BACKPLANE RAM ROM 900K 900K ARM Cortex R4 D11

DEMO

Page 47: BROADPWN - Black Hat | Home · 2018-05-11 · BROADPWN Remotely Owning Android and iOS ... THE BCM ARCHITECTURE. THE BCM ARCHITECTURE BACKPLANE RAM ROM 900K 900K ARM Cortex R4 D11

• This project does not include running code in the main kernel

• However, research by Project Zero shows that it is possible to directly write to kernel memory using PCIe

• Also possible to intercept traffic from the chip, then redirect the user to a malicious link (requires browser exploit chain)

A NOTE ABOUT PRIVILEGE ESCALATION

Page 48: BROADPWN - Black Hat | Home · 2018-05-11 · BROADPWN Remotely Owning Android and iOS ... THE BCM ARCHITECTURE. THE BCM ARCHITECTURE BACKPLANE RAM ROM 900K 900K ARM Cortex R4 D11

QUESTIONS?