Exodus Intelligence
Don’t forget to
Exodus Intelligence
Don’t forget tolike and
^
Exodus Intelligence
GreenWave FiOS-G1100
FCCID: 2ABTEG1100
Exodus Intelligence
GreenWave FiOS-G1100
Exodus Intelligence
GreenWave FiOS-G1100
Exodus Intelligence
GreenWave FiOS-G1100
Exodus Intelligence
GreenWave FiOS-G1100
Exodus Intelligence
GreenWave FiOS-G1100
TDO
TCK TMS TDI SRST
TRST
GND
Exodus Intelligence
GreenWave FiOS-G1100
Exodus Intelligence
GreenWave FiOS-G1100
GND RX TX
+3.3
Exodus Intelligence
GreenWave FiOS-G1100
GND RX TX
+3.3
Exodus Intelligence
GreenWave FiOS-G1100
Exodus Intelligence
GreenWave FiOS-G1100
Exodus Intelligence
GreenWave FiOS-G1100
Exodus Intelligence
GreenWave FiOS-G1100
Exodus Intelligence
GreenWave FiOS-G1100
Exodus Intelligence
GreenWave FiOS-G1100
target.cfg
Exodus Intelligence
GreenWave FiOS-G1100
Exodus Intelligence
GreenWave FiOS-G1100
Exodus Intelligence
GreenWave FiOS-G1100
Exodus Intelligence
GreenWave FiOS-G1100
Exodus Intelligence
GreenWave FiOS-G1100
Exodus Intelligence
GreenWave FiOS-G1100
SSDP
Exodus Intelligence
GreenWave FiOS-G1100
wps_monitor
Exodus Intelligence
wps_monitor
UPnP
Library
ASLR
Exodus Intelligence
wps_monitor
DEP
Exodus Intelligence
wps_monitor
DEPASLR
Exodus Intelligence
wps_monitor
Not Impacted by ASLRNULL Byte(s)
Exodus Intelligence
wps_monitor
Exodus Intelligence
GreenWave FiOS-G1100
vuln hunting
Exodus Intelligence
Search: %s
Vuln Hunting
Exodus Intelligence
Vuln Hunting
Exodus Intelligence
Vuln Hunting
Exodus Intelligence
Vuln Hunting
some sort of stuct (e.g. thing->buf)
Exodus Intelligence
Vuln Hunting
http://www.upnp.org/specs/arch/UPnP-arch-DeviceArchitecture-v1.1.pdf
Exodus Intelligence
Vuln Hunting
http://www.upnp.org/specs/arch/UPnP-arch-DeviceArchitecture-v1.1.pdf
Exodus Intelligence
Vuln Hunting
GENA
Exodus Intelligence
Vuln Hunting
Exodus Intelligence
Vuln Hunting
Exodus Intelligence
Vuln Hunting
Exodus Intelligence
Vuln Hunting
Exodus Intelligence
Vuln Hunting
+0x20c0 – something
+0x20c4 – something
+0x20c8 – char vuln[4096]
+0x30c8 – char foo1[56]?
+0x3100 – short?
+0x3102 – char foo2[x]
Exodus Intelligence
Vuln Hunting
Source: https://github.com/Olipro/VMG1312-
B10A/blob/9ae84bc248340f0cb3fb349afffd95a9939a0f02/bcmdrivers/broadcom
/net/wl_4.12L08/impl14/router/bcmupnp/include/upnp_type.h
Exodus Intelligence
Vuln Hunting
Exodus Intelligence
Vuln Hunting
Exodus Intelligence
Vuln Hunting
Exodus Intelligence
Vuln Hunting
Exodus Intelligence
Vuln Hunting
Exodus Intelligence
Vuln Hunting
Source: http://www.upnp.org/specs/arch/UPnP-arch-DeviceArchitecture-v1.1.pdf
Exodus Intelligence
Vuln Hunting
Exodus Intelligence
Vuln Hunting
Exodus Intelligence
Vuln Hunting
Obtain PC Control
Can’t use wps_monitor as a
gadget (‘x00’)
ASLR on imported libraries
Exodus Intelligence
GreenWave FiOS-G1100
exploit dev
Exodus Intelligence
Exploit Dev
Exodus Intelligence
Exploit Dev
Exodus Intelligence
Exploit Dev
Spray the heap
Do some magic
Trigger overflow and get code
exec?
Exodus Intelligence
Exploit Dev
Exodus Intelligence
Exploit Dev
100 * 1024 * 1024 = 0x06400000
Exodus Intelligence
Exploit Dev
⚫ Heap base address always loads below 0x03030303
Exodus Intelligence
Exploit Dev
Exodus Intelligence
Exploit Dev
Exodus Intelligence
Exploit Dev
Exodus Intelligence
Exploit Dev
Exodus Intelligence
Exploit Dev
Exodus Intelligence
Exploit Dev
Exodus Intelligence
Exploit Dev
Exodus Intelligence
Exploit Dev
Heap
0x00 0xXXXXXXXX
4KB 4KB 4KB 4KB 4KB 4KB 4KB 4KB 4KB 4KB 4KB 4KB 4KB 4KB 4KB 4KB 4KB 4KB
Exodus Intelligence
Exploit Dev
Exodus Intelligence
Exploit Dev
Grow the heap
Do some magic
Exodus Intelligence
Exploit Dev
http://www.upnp.org/specs/arch/UPnP-arch-DeviceArchitecture-v1.1.pdf
Exodus Intelligence
Exploit Dev
Exodus Intelligence
Exploit Dev
Exodus Intelligence
Exploit Dev
Exodus Intelligence
Exploit Dev
Exodus Intelligence
Exploit Dev
Exodus Intelligence
Exploit Dev
Exodus Intelligence
Exploit Dev
Exodus Intelligence
Exploit Dev
Exodus Intelligence
Exploit Dev
Spray the heap
Do some magic
Exodus Intelligence
Exploit Dev (road-blocks)
Exodus Intelligence
Exploit Dev (road-blocks)
Exodus Intelligence
Exploit Dev (road-blocks)
Remember: You can’t build a house without a roof
Exodus Intelligence
Exploit Dev (road-blocks)
Heap
0x00 0xXXXXXXXX
4KB 4KB 4KB 4KB 4KB 4KB 4KB 4KB 4KB 4KB 4KB 4KB 4KB 4KB 4KB 4KB 4KB4KB 4KB4KB4KB4KB4KB4KB4KB4KB 4KB
Exodus Intelligence
Exploit Dev (road-blocks)
Heap
0x00
4KB
0xXXXXXXXX
4KB4KB4KB4KB4KB4KB4KB4KB4KB4KB4KB4KB4KB4KB4KB4KB4KB
Exodus Intelligence
Exploit Dev (road-blocks)
Heap
0x00
4KB
0xXXXXXXXX
4KB4KB4KB4KB4KB4KB4KB4KB4KB4KB4KB4KB4KB4KB4KB4KB4KB
Exodus Intelligence
Exploit Dev (road-blocks)
Heap
0x00 0xXXXXXXXX
4KB 4KB 4KB 4KB 4KB 4KB 4KB 4KB 4KB 4KB 4KB 4KB 4KB 4KB 4KB 4KB 4KB4KB 4KB4KB4KB4KB4KB4KB4KB4KB
Exodus Intelligence
Exploit Dev (road-blocks)
Exodus Intelligence
Exploit Dev (road-blocks)
Exodus Intelligence
Exploit Dev (road-blocks)
Exodus Intelligence
Exploit Dev (road-blocks)
Exodus Intelligence
Exploit Dev (road-blocks)
Exodus Intelligence
Exploit Dev (road-blocks)
Heap
0x00 0xXXXXXXXX
4KB 4KB 4KB 4KB 4KB 4KB 4KB 4KB 4KB 4KB 4KB 4KB 4KB 4KB 4KB 4KB 4KB4KB 4KB4KB4KB4KB4KB
Exodus Intelligence
Exploit Dev
Spray the heap
Do some magic
Dev exploit chain
Exodus Intelligence
Exploit Dev
Exodus Intelligence
Exploit Dev
Exodus Intelligence
Exploit Dev
censored
Exodus Intelligence
Exploit Dev
Exodus Intelligence
Exploit Dev
Exodus Intelligence
Exploit Dev
⚫ Gadget 1
⚫ Grants the ability to call a function with 2 arguments
⚫ Gadget 2
⚫ Cheap stack pivot + control of R4-R7
⚫ Gadget 3
⚫ Move the value of R7 [IAT table ptr to strtoul()-4] into R0
⚫ Control of R3-R7
⚫ Gadget 4
⚫ Deref R0+4 into R0. [R0 is now in libc]
⚫ Control of R3-R7
Exodus Intelligence
Exploit Dev
⚫ Gadget 5
⚫ Add R3 and R0 and store the result in R0
⚫ R0 now points to popen()
⚫ Control of R4
⚫ Gadget 6
⚫ Store the value of R0 into the heap
⚫ Gadget 7 (aka 1 again)
⚫ Pick up the stored popen() value and call it.
⚫ First arg = cmd to execute
⚫ Second arg = “r”
Exodus Intelligence
Exploit Dev
Gadget 1
addr: 0x000150F6+1
Exodus Intelligence
Exploit Dev
https://2012.ruxconbreakpoint.com/assets/Uploads/bpx/Breakpoint2012-Advanced_ARM_Exploitation.pdf
Exodus Intelligence
Exploit Dev
Exodus Intelligence
Exploit Dev (road-block)
Exodus Intelligence
Exploit Dev (road-block)
http://infocenter.arm.com/help/index.jsp?topic=/com.arm.doc.dui0552a/BABCAEDD.html
Exodus Intelligence
Exploit Dev (road-block)
Exodus Intelligence
Exploit Dev
Gadget 2
addr: 0x0001030C+1
Exodus Intelligence
Exploit Dev
Gadget 3
addr: 0x0001C30E+1
Exodus Intelligence
Exploit Dev
Gadget 4
addr: 0x0001C2D2+1
Exodus Intelligence
Exploit Dev
Gadget 5
addr: 0x00014D62+1
Exodus Intelligence
Exploit Dev
Gadget 6
addr: 0x000257EA+1
Exodus Intelligence
Exploit Dev
Gadget 7 (1)
addr: 0x000150F6+1
Exodus Intelligence
Exploit Dev
⚫ Putting it all together
⚫ Spray the heap
⚫ Save the SIDs
⚫ Do not free() the last SID that was saved (roof)
⚫ Free and Replace blocks via UNSUBSCRIBE and
SOAP. [b64(Fake struct + ROPChain + Command)]
⚫ Free 5, Re-occupy 5, Free them again, next 5.
⚫ Watch for multicast traffic and if there’s traffic, occupy
25, free 25, ret.
⚫ Trigger Vulnerability
⚫ Win?
Exodus Intelligence
Exploit Dev
Exodus Intelligence
Exploit Dev
Exodus Intelligence
Bonus
Exodus Intelligence
GreenWave FiOS-G1100
Exodus Intelligence
Bonus
SSRF
Exodus Intelligence
Bonus
SSRF
Exodus Intelligence
Bonus
SSRF
Exodus Intelligence
Bonus
Fuzzing
(demo)
Exodus Intelligence
$whoami
⚫ @b1ack0wl
⚫ 0day Researcher for Exodus Intelligence
⚫ Focus on embedded devices
⚫ SOHO + Enterprise network devices
⚫ Smart devices
⚫ ...etc
Exodus Intelligence
fin

BlueHat Seattle 2019 || Don't forget to SUBSCRIBE.