SlideShare uma empresa Scribd logo
1 de 53
Baixar para ler offline
HIGH-DEF FUZZING
EXPLOITATION OVER HDMI-CEC
name = "Joshua Smith"
job = "Senior Security Researcher"
job += "Zero Day Initiative"
irc = "kernelsmith"
twit = "@kernelsmith"
Previous Research
HDMI – Hacking Displays Made Interesting
Andy Davis
BlackHat EU 2012
What is HDMI?
High Def Multimedia Interface
HDMI is a specification
Implemented as Cables & Connectors
Successor to DVI
Has Quite a Few Features
What is CEC?
Consumer Electronics Control
HDMI feature
Allows user to command & control up to 15 devices
Can relay commands from remotes
It is what automatically changes your TV input
Has some other intriguing features...
Why?
Wanted to research an area that was relatively untouched
I do not have mad hardware skills
I like RISC targets & assembly
Another attack vector for mobile devices via:
Mobile High-Definition Link (MHL) ~ Samsung & HTC
Slimport ~ LG, Google Nexus, Blackberry
My son is completely obsessed with cords/wires, esp
HDMI
Specs & Features
History
1.0 (Dec 2002), 1.1 (May 2004), 1.2 (Aug 2005)
Boring stuff
1.2a (Dec 2005)
Fully specified Consumer Electronics Control
This is the good stuff, for vulnerabilities anyway
Specs & Features
History Continued
1.3 - 1.3c (Jun 2006 through Aug 2008)
Whizz-bang A/V improvements & new connectors
1.4 (May 2009)
Most widely deployed and available
Features++: 4k, HEC, ARC, 3D, micro connector
Some that might interest us (next)
2.0 (Sep 2013)
New hotness: 4K video @60fps, Dual View, 3D++, CEC++
Specs & Features
Interesting 1.4 Features
HEC (HDMI Ethernet Connection)
Sounds tasty
100Mb/s
Enables traditional networking w/HDMI
ARC (Audio Return Channel)
CEC Details
1-wire bidirectional serial bus
Slow: 500Mb/s
Uses AV.link protocol to perform remote control functions
For HDMI:
CEC wiring is mandatory
CEC functionality (software mainly) is optional
CEC's Goals
Simplify system integration
Common protocol
Extendable (vendor-specific commands)
Commands are grouped together into Feature Sets
For example, one-touch play (OTP)
TV on, text view on (optional), set active source
Notable
Implementations
Commercial industry uses various trade names
Anynet+ (Samsung), Aquos Link (Sharp), BRAVIA
Link/Sync (Sony)
SimpLink (LG), VIERA Link (Panasonic), EasyLink
(Philips), etc
Open Source
libCEC (dual commercial license)
Android HDMI-CEC
Not-HDMI CEC
Slimport
Mobile High-Definition Link (MHL)
Notes: TODO: add tidbits about Slimport and MHL, like
overloading the connector etc
CEC Addressing
PHYSICAL
N.N.N.N where 0x0<=N<=0xF
Like F.A.4.0
Obtained on hot-plug from EDID
The root display is always 0.0.0.0
If attached to 1st input on root: 1.0.0.0
Required as CEC has a notion of switching
CEC Addressing
LOGICAL
L where 0x0<=L<=0xF
Root display is always 0
By product type
Negotiated w/other devices
Example: first STB in system is always 3
Non-CEC devices only have physical addr
Logical Addresses
Address Device Address Device
0 TV 8 Playback Dev 2
1 Rec. Device 1 9 Rec Device 3
2 Rec. Device 2 10 Tuner 4
3 Tuner 1 11 Playback Dev 3
4 Playback Dev 1 12 Reserved
5 Audio System 13 Reserved
6 Tuner 2 14 Free Use
7 Tuner 3 15 Unreg/Broadcast
CEC Protocol
Blocks & Frames
Blocks
Each block is 10 bits
Max of 16 blocks (14 purely data blocks)
Frames
(1bit) Start bit
(10bits) Header block
(10bits) Opcode block
(10bits) Optional data block(s)
Header Block
Source Dest EoM Ack
3 2 1 0 3 2 1 0 E A
(4bits) Logical address of source
(4bits) Logical address of dest
(2bits) Control bits (EoM & Ack)
Example: 0100:0000:0:0 = Src 4, Dest 0
Data Block
Data EoM Ack
7 6 5 4 3 2 1 0 E A
(8bits) Data (Big-endian/MSB first)
(2bits) Control bits (EoM & Ack)
Example: 01000001:1:0 = "A"
CEC Protocol
Pinging and Polling
The "Ping"
EOM bit in header is set to 1
Used to poll for devices etc (fuzz monitor?)
Source & dest addresses will be different
Also used for allocating Logical Addresses
Source & dest addresses are the same
CEC Protocol
Additional Info
All numbers > 1 byte are transmitted as big-endian
All bit sequences are sent MSB first
Messages can be directly addressed, broadcast, or both
Should ignore a message coming from address 15, unless:
Message invokes a broadcast response
Message has been sent by a CEC Switch
The message is Standby
CEC Protocol
The Long and Short of It...
10:64:44:65:66:43:6F:6E:20:32:33
1F:82:10.00
SD:OP:41:42:43:44:45:46
CEC Protocol
Example Messages
Name ID Feature Set Addr Parameters
Poll Sys Info Direct
Get CEC Ver 9F Sys Info Direct
CEC Version 9E Sys Info Direct CEC Version
Set OSD Name 47 OSD Xfer Direct OSD Name
Set OSD Str 64 OSD Disp Direct DispCtrl,Str
Active Source 82 OTP, RC Bcast Phys Addr
CEC Protocol
Transmission (Flow) Control
3 mechanisms to provide reliable frame transfer
1. Frame re-transmissions (1 to 5)
2. Flow control
3. Frame validation (ignore msgs w/wrong #args)
A message is assumed correctly received when:
It has been transmitted and acknowledged
A message is assumed to have been acted upon when:
Sender does not receive Feature Abort w/in 1sec
Common Sequences
Addressing
1. Discovery (poll etc) of new physical address
2. Allocation (of logical address)
3. Report by broadcasting ReportPhysicalAddress
Become active source
1. Broadcast an ActiveSource to declare intention
2. Presently active source shall act appropriately
Feature Sets
One-Touch Play (OTP)
ImageViewOn* 40:04 (assumes playback dev 1)
TextViewOn 4F:0D (optional, remove displayed menus)
ActiveSource 4F:82 (assumes playback dev 1)
Attack Vectors
HDMI Ethernet Channel (HEC)
Network connectivity to things thought un-networked
Great place to hide
Targetable devices
TVs, BluRays, receivers, "TV Sticks", game consoles?
Mobile phones & tablets
Devices implementing MHL/Slimport
Known popular mobile devices that implement MHL
Attack Surface
CEC commands
HEC commands
CDC commands
Finding Vulns
Approaches
Identify "at-risk" messages & fuzz
Source Code Analysis
Hard to come by except libCEC & Android
Reverse Engineering
Can be hard to get all the firmwarez
Expect different architectures
MIPS, ARM, ARC etc
MIPS is generally most popular so far
Interesting Messages
String operations
Set OSD Name (0x47)
Preferred name for use in any OSD (menus)
Set OSD String (0x64)
Text string to the TV for display
Set Timer Program Title (0x67)
Set the name of a program associated w/a timer
Vendor-specific Messages
Because who knows what they might do
In Order to Fuzz
We Need to Answer Some Questions
How can we send arbitrary CEC messages?
How can we detect if a crash occurred?
Sending Messages
Hardware
~0 {lap,desk}tops with HDMI-CEC
Many have HDMI, none have CEC
Adapters
Pulse-Eight USB-HDMI
RainShadow HDMI-CEC to USB Bridge
Raspberry Pi
RPi & P8 adapter both use libCEC :)
Sending Messages
Software
Pulse-Eight driver is open source (libCEC)
Dual-licensed actually (GPLv2/Commercial)
Python SWIG-based bindings
Supports a handful of devices
Fuzzing CEC
libCEC
Can send CEC messages with:
Raspberry Pi + libCEC
P8 USB-HDMI adapter + libCEC
But can we really send arbitrary CEC messages?
lib.Transmit(CommandFromString("10:82:41:41:41:41:41:41:41:41:41"))
YES. It would appear at least.
To know for sure, had to ensure libCEC was not validating.
Demo
Fuzzing Process
It has been with Python + RainbowTech serial API
I actually did not know this until late in the research
RainbowTech device has a nice simple serial API
Not much complex functionality
I had already started down the path below
libCEC + Python since pyCecClient is already a thing
Can use the P8 USB adapter and/or Raspberry Pi(s)
May port to Ruby since SWIG & Ruby++
done
Fuzzing Process
Major Steps
ID Target and Inputs
Generate Fuzzed Data
Execute Fuzzed Data
Monitor for Exceptions
Determine Exploitability
Fuzzing: Brute Force Vulnerability Discovery (Sutton, Michael; Greene, Adam; Amini, Pedram)
Generate Fuzzed Data
Started with "long" strings and string-based messages
Format strings
Parameter abuse
Vendor-specific messages
Simple bit-flipping
Adopted some from Davis work
Execute Fuzzed
1. Poll device
2. Send message
Monitor for Exceptions
1. Check for ack if applicable
2. Poll again
3. If debug, use that
4. If shell, check if service/app still running
5. If TV, will probably notice crash, fun, hard to automate
6. If exception, record msg & state & debug details if avail
DETERMINE EXPLOITABILITY
This is kind of an adventure unless debug
Specific to each device
Fuzzing
Complications
Getting Hold of Devices
They are around you however, just need to look
Can also emulate w/QEMU + firmware
Speed
500 bits/s
Not much we can do about that
Fuzz multiple devices simultaneously
RE targets to focus the fuzz
Fuzzing
Complications Continued
Debugging
Need to get access to the device
Probably no debugger
Often painful to compile one for it
Collect Data
Deduplicate
Repro
Targets
Home Theater Devices
Samsung Blu-ray Player (MIPS)
Targeted because already have shell
(Thx Ricky Lawshae)
Local shell to get on & study device
Philips Blu-ray Player
Samsung TV
Panasonic TV
Chromecast
Amazon Fire TV Stick
Targets
Mobile devices
Kindle Fire
Galaxy S5 (S6 dropped MHL)
Galaxy Note
Chromebook
Fuzzing
Results
Vulns Discovered
Demos & Videos
Panasonic TV
Samsung Blu-ray Player
app_player
Exploitation
Background Info
Barriers
Samsung TV
Post exploitation
Enable HEC
Enable LAN
Attack LAN services if nec
Enable higher speed exfil etc
Wake-Over-CEC
Beachhead for attacking other devices
Hiding
Future Work
Explore Attack Surface of
HDMI: 3D, Audio Return Channel, more w/HEC
Feature adds to CEC
Moar devices
Emulation
Undo bad Python
Conclusion
Becoming more and more pervasive and invasive
Old vuln types are new again
Hard, sometimes impossible, to upgrade, maintain,
configure
Risk = Vulnerabilty x Exposure x Impact
The vulns are there
Exposure is growing
Impact is probably highest for your privacy
What next? How do we fix or mitigate this?
References
Simplified Wrapper & Interface Generator
Reveal.js
blackhat.com/bh-eu-12-Davis-HDMI
github.com/Pulse-Eight/libcec
hdmi.org
cec-o-matic.com/
p8-USB-HDMI-adapter
swig.org
github.com/hakimel/reveal.js

Mais conteúdo relacionado

Mais procurados

Assembly Language for x86 Processors 7th Edition Chapter 1: Basic Concepts
 Assembly Language for x86 Processors 7th Edition Chapter 1: Basic Concepts  Assembly Language for x86 Processors 7th Edition Chapter 1: Basic Concepts
Assembly Language for x86 Processors 7th Edition Chapter 1: Basic Concepts ssuser65bfce
 
Assembly Language In Electronics
Assembly Language In ElectronicsAssembly Language In Electronics
Assembly Language In ElectronicsAsaduzzaman Kanok
 
Assembly Language for x86 Processors 7th Edition Chapter 2 : x86 Processor Ar...
Assembly Language for x86 Processors 7th Edition Chapter 2 : x86 Processor Ar...Assembly Language for x86 Processors 7th Edition Chapter 2 : x86 Processor Ar...
Assembly Language for x86 Processors 7th Edition Chapter 2 : x86 Processor Ar...ssuser65bfce
 
Customize Your Car: An Adventure in Using Elixir and Nerves to Hack Your Vehi...
Customize Your Car: An Adventure in Using Elixir and Nerves to Hack Your Vehi...Customize Your Car: An Adventure in Using Elixir and Nerves to Hack Your Vehi...
Customize Your Car: An Adventure in Using Elixir and Nerves to Hack Your Vehi...brien_wankel
 
Delta ia hmi-dop100-c_en_20201230_web
Delta ia hmi-dop100-c_en_20201230_webDelta ia hmi-dop100-c_en_20201230_web
Delta ia hmi-dop100-c_en_20201230_webCarlosVeraColombia
 
Most important abbreviation
Most important abbreviationMost important abbreviation
Most important abbreviationRepon
 
Intra Institutional Communication System
Intra Institutional Communication SystemIntra Institutional Communication System
Intra Institutional Communication SystemArun Joseph
 
Internet of things laboratory
Internet of things laboratoryInternet of things laboratory
Internet of things laboratorySoumee Maschatak
 
Introduction to Assembly Language Programming
Introduction to Assembly Language ProgrammingIntroduction to Assembly Language Programming
Introduction to Assembly Language ProgrammingRahul P
 
Breve Sistema de Desenvolvimento Merrii a31
Breve Sistema de Desenvolvimento Merrii a31Breve Sistema de Desenvolvimento Merrii a31
Breve Sistema de Desenvolvimento Merrii a31Lojamundi
 
Multipilot pres-ufficiale last 2
Multipilot pres-ufficiale last 2Multipilot pres-ufficiale last 2
Multipilot pres-ufficiale last 2Roberto Navoni
 
Android Bluetooth Introduction
Android Bluetooth IntroductionAndroid Bluetooth Introduction
Android Bluetooth IntroductionErin Yueh
 
operating and configuring cisco a cisco IOS device
operating and configuring cisco a cisco IOS deviceoperating and configuring cisco a cisco IOS device
operating and configuring cisco a cisco IOS devicescooby_doo
 

Mais procurados (20)

Assembly Language for x86 Processors 7th Edition Chapter 1: Basic Concepts
 Assembly Language for x86 Processors 7th Edition Chapter 1: Basic Concepts  Assembly Language for x86 Processors 7th Edition Chapter 1: Basic Concepts
Assembly Language for x86 Processors 7th Edition Chapter 1: Basic Concepts
 
Assembly Language In Electronics
Assembly Language In ElectronicsAssembly Language In Electronics
Assembly Language In Electronics
 
Assembly Language for x86 Processors 7th Edition Chapter 2 : x86 Processor Ar...
Assembly Language for x86 Processors 7th Edition Chapter 2 : x86 Processor Ar...Assembly Language for x86 Processors 7th Edition Chapter 2 : x86 Processor Ar...
Assembly Language for x86 Processors 7th Edition Chapter 2 : x86 Processor Ar...
 
Customize Your Car: An Adventure in Using Elixir and Nerves to Hack Your Vehi...
Customize Your Car: An Adventure in Using Elixir and Nerves to Hack Your Vehi...Customize Your Car: An Adventure in Using Elixir and Nerves to Hack Your Vehi...
Customize Your Car: An Adventure in Using Elixir and Nerves to Hack Your Vehi...
 
Delta ia hmi-dop100-c_en_20201230_web
Delta ia hmi-dop100-c_en_20201230_webDelta ia hmi-dop100-c_en_20201230_web
Delta ia hmi-dop100-c_en_20201230_web
 
Most important abbreviation
Most important abbreviationMost important abbreviation
Most important abbreviation
 
Intra Institutional Communication System
Intra Institutional Communication SystemIntra Institutional Communication System
Intra Institutional Communication System
 
Feature satip4
Feature satip4Feature satip4
Feature satip4
 
Internet of things laboratory
Internet of things laboratoryInternet of things laboratory
Internet of things laboratory
 
Feature satip4
Feature satip4Feature satip4
Feature satip4
 
Introduction to Assembly Language Programming
Introduction to Assembly Language ProgrammingIntroduction to Assembly Language Programming
Introduction to Assembly Language Programming
 
Breve Sistema de Desenvolvimento Merrii a31
Breve Sistema de Desenvolvimento Merrii a31Breve Sistema de Desenvolvimento Merrii a31
Breve Sistema de Desenvolvimento Merrii a31
 
Dvbshop
DvbshopDvbshop
Dvbshop
 
SETU VFXTH March 2014
SETU VFXTH March 2014SETU VFXTH March 2014
SETU VFXTH March 2014
 
Multipilot pres-ufficiale last 2
Multipilot pres-ufficiale last 2Multipilot pres-ufficiale last 2
Multipilot pres-ufficiale last 2
 
Feature satip4
Feature satip4Feature satip4
Feature satip4
 
Android Bluetooth Introduction
Android Bluetooth IntroductionAndroid Bluetooth Introduction
Android Bluetooth Introduction
 
Assembly Language
Assembly LanguageAssembly Language
Assembly Language
 
Intro to assembly language
Intro to assembly languageIntro to assembly language
Intro to assembly language
 
operating and configuring cisco a cisco IOS device
operating and configuring cisco a cisco IOS deviceoperating and configuring cisco a cisco IOS device
operating and configuring cisco a cisco IOS device
 

Semelhante a DEFCON 23 - Joshua Smith - high def fuzzing - exploitation over HDMI-CEC

High Definition Fuzzing; Exploring HDMI vulnerabilities
High Definition Fuzzing; Exploring HDMI vulnerabilitiesHigh Definition Fuzzing; Exploring HDMI vulnerabilities
High Definition Fuzzing; Exploring HDMI vulnerabilitiesE Hacking
 
Client Server Development – Problems in Supporting Different Wireless Platform
Client Server Development – Problems in Supporting Different Wireless PlatformClient Server Development – Problems in Supporting Different Wireless Platform
Client Server Development – Problems in Supporting Different Wireless Platformgustavoeliano
 
MSMDC_CLI363
MSMDC_CLI363MSMDC_CLI363
MSMDC_CLI363mokacao
 
Smart TV Security - #1984 in 21st century -
Smart TV Security - #1984 in 21st century -Smart TV Security - #1984 in 21st century -
Smart TV Security - #1984 in 21st century -Seungjoo Kim
 
Driver Configuration Webinar
Driver Configuration WebinarDriver Configuration Webinar
Driver Configuration WebinarAVEVA
 
Raspberry pi glossary of terms dictionary extended
Raspberry pi glossary of terms dictionary extendedRaspberry pi glossary of terms dictionary extended
Raspberry pi glossary of terms dictionary extendedWiseNaeem
 
Understanding computer networks
Understanding computer networksUnderstanding computer networks
Understanding computer networksUC San Diego
 
23c3 Bluetooth hacking revisited
23c3 Bluetooth hacking revisited23c3 Bluetooth hacking revisited
23c3 Bluetooth hacking revisitedThierry Zoller
 
Putting an Apple IIgs BBS on the internet
Putting an Apple IIgs BBS on the internetPutting an Apple IIgs BBS on the internet
Putting an Apple IIgs BBS on the internetAndrew Roughan
 
BonAHA framework - Lab presentation
BonAHA framework - Lab presentationBonAHA framework - Lab presentation
BonAHA framework - Lab presentationSuman Srinivasan
 
13.30 hr Hebinck
13.30 hr Hebinck13.30 hr Hebinck
13.30 hr HebinckThemadagen
 
Cellphone based home automation
Cellphone based home automationCellphone based home automation
Cellphone based home automationPROJECTRONICS
 
Hacking, Surveilling, and Deceiving Victims on Smart TV
Hacking, Surveilling, and Deceiving Victims on Smart TVHacking, Surveilling, and Deceiving Victims on Smart TV
Hacking, Surveilling, and Deceiving Victims on Smart TVSeungjoo Kim
 
Kernel Recipes 2017 - HDMI CEC: Status Report - Hans Verkuil
Kernel Recipes 2017 - HDMI CEC: Status Report - Hans VerkuilKernel Recipes 2017 - HDMI CEC: Status Report - Hans Verkuil
Kernel Recipes 2017 - HDMI CEC: Status Report - Hans VerkuilAnne Nicolas
 

Semelhante a DEFCON 23 - Joshua Smith - high def fuzzing - exploitation over HDMI-CEC (20)

High Definition Fuzzing; Exploring HDMI vulnerabilities
High Definition Fuzzing; Exploring HDMI vulnerabilitiesHigh Definition Fuzzing; Exploring HDMI vulnerabilities
High Definition Fuzzing; Exploring HDMI vulnerabilities
 
Client Server Development – Problems in Supporting Different Wireless Platform
Client Server Development – Problems in Supporting Different Wireless PlatformClient Server Development – Problems in Supporting Different Wireless Platform
Client Server Development – Problems in Supporting Different Wireless Platform
 
MSMDC_CLI363
MSMDC_CLI363MSMDC_CLI363
MSMDC_CLI363
 
Smart TV Security - #1984 in 21st century -
Smart TV Security - #1984 in 21st century -Smart TV Security - #1984 in 21st century -
Smart TV Security - #1984 in 21st century -
 
Driver Configuration Webinar
Driver Configuration WebinarDriver Configuration Webinar
Driver Configuration Webinar
 
ppt
pptppt
ppt
 
ppt
pptppt
ppt
 
Raspberry pi glossary of terms dictionary extended
Raspberry pi glossary of terms dictionary extendedRaspberry pi glossary of terms dictionary extended
Raspberry pi glossary of terms dictionary extended
 
Understanding computer networks
Understanding computer networksUnderstanding computer networks
Understanding computer networks
 
23c3 Bluetooth hacking revisited
23c3 Bluetooth hacking revisited23c3 Bluetooth hacking revisited
23c3 Bluetooth hacking revisited
 
Resume
ResumeResume
Resume
 
Putting an Apple IIgs BBS on the internet
Putting an Apple IIgs BBS on the internetPutting an Apple IIgs BBS on the internet
Putting an Apple IIgs BBS on the internet
 
BonAHA framework - Lab presentation
BonAHA framework - Lab presentationBonAHA framework - Lab presentation
BonAHA framework - Lab presentation
 
13.30 hr Hebinck
13.30 hr Hebinck13.30 hr Hebinck
13.30 hr Hebinck
 
SIGFOX Makers Tour - Dublin
SIGFOX Makers Tour - DublinSIGFOX Makers Tour - Dublin
SIGFOX Makers Tour - Dublin
 
Cellphone based home automation
Cellphone based home automationCellphone based home automation
Cellphone based home automation
 
Hacking, Surveilling, and Deceiving Victims on Smart TV
Hacking, Surveilling, and Deceiving Victims on Smart TVHacking, Surveilling, and Deceiving Victims on Smart TV
Hacking, Surveilling, and Deceiving Victims on Smart TV
 
Kernel Recipes 2017 - HDMI CEC: Status Report - Hans Verkuil
Kernel Recipes 2017 - HDMI CEC: Status Report - Hans VerkuilKernel Recipes 2017 - HDMI CEC: Status Report - Hans Verkuil
Kernel Recipes 2017 - HDMI CEC: Status Report - Hans Verkuil
 
SIGFOX Makers Tour - Porto
SIGFOX Makers Tour - PortoSIGFOX Makers Tour - Porto
SIGFOX Makers Tour - Porto
 
PSoC USB HID
PSoC USB HIDPSoC USB HID
PSoC USB HID
 

Mais de 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 directoryFelipe 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 antsFelipe 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 decryptionFelipe 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 101Felipe 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 governmentFelipe 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 hardwareFelipe 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 frustrationFelipe 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 interfaceFelipe 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 perfectionistFelipe 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 locksFelipe 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 securityFelipe 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 portalsFelipe 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 snitchFelipe 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 trucksFelipe 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 exploitationFelipe 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 vncFelipe 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 devicesFelipe Prado
 

Mais de 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
 

Último

Pigging Solutions Piggable Sweeping Elbows
Pigging Solutions Piggable Sweeping ElbowsPigging Solutions Piggable Sweeping Elbows
Pigging Solutions Piggable Sweeping ElbowsPigging Solutions
 
FULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | Delhi
FULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | DelhiFULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | Delhi
FULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | Delhisoniya singh
 
Presentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreterPresentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreternaman860154
 
Benefits Of Flutter Compared To Other Frameworks
Benefits Of Flutter Compared To Other FrameworksBenefits Of Flutter Compared To Other Frameworks
Benefits Of Flutter Compared To Other FrameworksSoftradix Technologies
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerThousandEyes
 
Pigging Solutions in Pet Food Manufacturing
Pigging Solutions in Pet Food ManufacturingPigging Solutions in Pet Food Manufacturing
Pigging Solutions in Pet Food ManufacturingPigging Solutions
 
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationFrom Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationSafe Software
 
Human Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR SystemsHuman Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR SystemsMark Billinghurst
 
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...Patryk Bandurski
 
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 3652toLead Limited
 
Key Features Of Token Development (1).pptx
Key  Features Of Token  Development (1).pptxKey  Features Of Token  Development (1).pptx
Key Features Of Token Development (1).pptxLBM Solutions
 
08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking MenDelhi Call girls
 
Install Stable Diffusion in windows machine
Install Stable Diffusion in windows machineInstall Stable Diffusion in windows machine
Install Stable Diffusion in windows machinePadma Pradeep
 
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...Neo4j
 
Enhancing Worker Digital Experience: A Hands-on Workshop for Partners
Enhancing Worker Digital Experience: A Hands-on Workshop for PartnersEnhancing Worker Digital Experience: A Hands-on Workshop for Partners
Enhancing Worker Digital Experience: A Hands-on Workshop for PartnersThousandEyes
 
Injustice - Developers Among Us (SciFiDevCon 2024)
Injustice - Developers Among Us (SciFiDevCon 2024)Injustice - Developers Among Us (SciFiDevCon 2024)
Injustice - Developers Among Us (SciFiDevCon 2024)Allon Mureinik
 
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024BookNet Canada
 
The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024Rafal Los
 
How to Remove Document Management Hurdles with X-Docs?
How to Remove Document Management Hurdles with X-Docs?How to Remove Document Management Hurdles with X-Docs?
How to Remove Document Management Hurdles with X-Docs?XfilesPro
 
The Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxThe Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxMalak Abu Hammad
 

Último (20)

Pigging Solutions Piggable Sweeping Elbows
Pigging Solutions Piggable Sweeping ElbowsPigging Solutions Piggable Sweeping Elbows
Pigging Solutions Piggable Sweeping Elbows
 
FULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | Delhi
FULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | DelhiFULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | Delhi
FULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | Delhi
 
Presentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreterPresentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreter
 
Benefits Of Flutter Compared To Other Frameworks
Benefits Of Flutter Compared To Other FrameworksBenefits Of Flutter Compared To Other Frameworks
Benefits Of Flutter Compared To Other Frameworks
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected Worker
 
Pigging Solutions in Pet Food Manufacturing
Pigging Solutions in Pet Food ManufacturingPigging Solutions in Pet Food Manufacturing
Pigging Solutions in Pet Food Manufacturing
 
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationFrom Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
 
Human Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR SystemsHuman Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR Systems
 
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
 
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
 
Key Features Of Token Development (1).pptx
Key  Features Of Token  Development (1).pptxKey  Features Of Token  Development (1).pptx
Key Features Of Token Development (1).pptx
 
08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men
 
Install Stable Diffusion in windows machine
Install Stable Diffusion in windows machineInstall Stable Diffusion in windows machine
Install Stable Diffusion in windows machine
 
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
 
Enhancing Worker Digital Experience: A Hands-on Workshop for Partners
Enhancing Worker Digital Experience: A Hands-on Workshop for PartnersEnhancing Worker Digital Experience: A Hands-on Workshop for Partners
Enhancing Worker Digital Experience: A Hands-on Workshop for Partners
 
Injustice - Developers Among Us (SciFiDevCon 2024)
Injustice - Developers Among Us (SciFiDevCon 2024)Injustice - Developers Among Us (SciFiDevCon 2024)
Injustice - Developers Among Us (SciFiDevCon 2024)
 
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
 
The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024
 
How to Remove Document Management Hurdles with X-Docs?
How to Remove Document Management Hurdles with X-Docs?How to Remove Document Management Hurdles with X-Docs?
How to Remove Document Management Hurdles with X-Docs?
 
The Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxThe Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptx
 

DEFCON 23 - Joshua Smith - high def fuzzing - exploitation over HDMI-CEC

  • 1. HIGH-DEF FUZZING EXPLOITATION OVER HDMI-CEC name = "Joshua Smith" job = "Senior Security Researcher" job += "Zero Day Initiative" irc = "kernelsmith" twit = "@kernelsmith"
  • 2. Previous Research HDMI – Hacking Displays Made Interesting Andy Davis BlackHat EU 2012
  • 3. What is HDMI? High Def Multimedia Interface HDMI is a specification Implemented as Cables & Connectors Successor to DVI Has Quite a Few Features
  • 4. What is CEC? Consumer Electronics Control HDMI feature Allows user to command & control up to 15 devices Can relay commands from remotes It is what automatically changes your TV input Has some other intriguing features...
  • 5. Why? Wanted to research an area that was relatively untouched I do not have mad hardware skills I like RISC targets & assembly Another attack vector for mobile devices via: Mobile High-Definition Link (MHL) ~ Samsung & HTC Slimport ~ LG, Google Nexus, Blackberry My son is completely obsessed with cords/wires, esp HDMI
  • 6. Specs & Features History 1.0 (Dec 2002), 1.1 (May 2004), 1.2 (Aug 2005) Boring stuff 1.2a (Dec 2005) Fully specified Consumer Electronics Control This is the good stuff, for vulnerabilities anyway
  • 7. Specs & Features History Continued 1.3 - 1.3c (Jun 2006 through Aug 2008) Whizz-bang A/V improvements & new connectors 1.4 (May 2009) Most widely deployed and available Features++: 4k, HEC, ARC, 3D, micro connector Some that might interest us (next) 2.0 (Sep 2013) New hotness: 4K video @60fps, Dual View, 3D++, CEC++
  • 8. Specs & Features Interesting 1.4 Features HEC (HDMI Ethernet Connection) Sounds tasty 100Mb/s Enables traditional networking w/HDMI ARC (Audio Return Channel)
  • 9. CEC Details 1-wire bidirectional serial bus Slow: 500Mb/s Uses AV.link protocol to perform remote control functions For HDMI: CEC wiring is mandatory CEC functionality (software mainly) is optional
  • 10. CEC's Goals Simplify system integration Common protocol Extendable (vendor-specific commands) Commands are grouped together into Feature Sets For example, one-touch play (OTP) TV on, text view on (optional), set active source
  • 11. Notable Implementations Commercial industry uses various trade names Anynet+ (Samsung), Aquos Link (Sharp), BRAVIA Link/Sync (Sony) SimpLink (LG), VIERA Link (Panasonic), EasyLink (Philips), etc Open Source libCEC (dual commercial license)
  • 12. Android HDMI-CEC Not-HDMI CEC Slimport Mobile High-Definition Link (MHL) Notes: TODO: add tidbits about Slimport and MHL, like overloading the connector etc
  • 13. CEC Addressing PHYSICAL N.N.N.N where 0x0<=N<=0xF Like F.A.4.0 Obtained on hot-plug from EDID The root display is always 0.0.0.0 If attached to 1st input on root: 1.0.0.0 Required as CEC has a notion of switching
  • 14. CEC Addressing LOGICAL L where 0x0<=L<=0xF Root display is always 0 By product type Negotiated w/other devices Example: first STB in system is always 3 Non-CEC devices only have physical addr
  • 15. Logical Addresses Address Device Address Device 0 TV 8 Playback Dev 2 1 Rec. Device 1 9 Rec Device 3 2 Rec. Device 2 10 Tuner 4 3 Tuner 1 11 Playback Dev 3 4 Playback Dev 1 12 Reserved 5 Audio System 13 Reserved 6 Tuner 2 14 Free Use 7 Tuner 3 15 Unreg/Broadcast
  • 17. Blocks & Frames Blocks Each block is 10 bits Max of 16 blocks (14 purely data blocks) Frames (1bit) Start bit (10bits) Header block (10bits) Opcode block (10bits) Optional data block(s)
  • 18. Header Block Source Dest EoM Ack 3 2 1 0 3 2 1 0 E A (4bits) Logical address of source (4bits) Logical address of dest (2bits) Control bits (EoM & Ack) Example: 0100:0000:0:0 = Src 4, Dest 0
  • 19. Data Block Data EoM Ack 7 6 5 4 3 2 1 0 E A (8bits) Data (Big-endian/MSB first) (2bits) Control bits (EoM & Ack) Example: 01000001:1:0 = "A"
  • 20. CEC Protocol Pinging and Polling The "Ping" EOM bit in header is set to 1 Used to poll for devices etc (fuzz monitor?) Source & dest addresses will be different Also used for allocating Logical Addresses Source & dest addresses are the same
  • 21. CEC Protocol Additional Info All numbers > 1 byte are transmitted as big-endian All bit sequences are sent MSB first Messages can be directly addressed, broadcast, or both Should ignore a message coming from address 15, unless: Message invokes a broadcast response Message has been sent by a CEC Switch The message is Standby
  • 22. CEC Protocol The Long and Short of It... 10:64:44:65:66:43:6F:6E:20:32:33 1F:82:10.00 SD:OP:41:42:43:44:45:46
  • 23. CEC Protocol Example Messages Name ID Feature Set Addr Parameters Poll Sys Info Direct Get CEC Ver 9F Sys Info Direct CEC Version 9E Sys Info Direct CEC Version Set OSD Name 47 OSD Xfer Direct OSD Name Set OSD Str 64 OSD Disp Direct DispCtrl,Str Active Source 82 OTP, RC Bcast Phys Addr
  • 24. CEC Protocol Transmission (Flow) Control 3 mechanisms to provide reliable frame transfer 1. Frame re-transmissions (1 to 5) 2. Flow control 3. Frame validation (ignore msgs w/wrong #args) A message is assumed correctly received when: It has been transmitted and acknowledged A message is assumed to have been acted upon when: Sender does not receive Feature Abort w/in 1sec
  • 25. Common Sequences Addressing 1. Discovery (poll etc) of new physical address 2. Allocation (of logical address) 3. Report by broadcasting ReportPhysicalAddress Become active source 1. Broadcast an ActiveSource to declare intention 2. Presently active source shall act appropriately
  • 26. Feature Sets One-Touch Play (OTP) ImageViewOn* 40:04 (assumes playback dev 1) TextViewOn 4F:0D (optional, remove displayed menus) ActiveSource 4F:82 (assumes playback dev 1)
  • 27. Attack Vectors HDMI Ethernet Channel (HEC) Network connectivity to things thought un-networked Great place to hide Targetable devices TVs, BluRays, receivers, "TV Sticks", game consoles? Mobile phones & tablets Devices implementing MHL/Slimport Known popular mobile devices that implement MHL
  • 28. Attack Surface CEC commands HEC commands CDC commands
  • 29. Finding Vulns Approaches Identify "at-risk" messages & fuzz Source Code Analysis Hard to come by except libCEC & Android Reverse Engineering Can be hard to get all the firmwarez Expect different architectures MIPS, ARM, ARC etc MIPS is generally most popular so far
  • 30. Interesting Messages String operations Set OSD Name (0x47) Preferred name for use in any OSD (menus) Set OSD String (0x64) Text string to the TV for display Set Timer Program Title (0x67) Set the name of a program associated w/a timer Vendor-specific Messages Because who knows what they might do
  • 31. In Order to Fuzz We Need to Answer Some Questions How can we send arbitrary CEC messages? How can we detect if a crash occurred?
  • 32. Sending Messages Hardware ~0 {lap,desk}tops with HDMI-CEC Many have HDMI, none have CEC Adapters Pulse-Eight USB-HDMI RainShadow HDMI-CEC to USB Bridge Raspberry Pi RPi & P8 adapter both use libCEC :)
  • 33. Sending Messages Software Pulse-Eight driver is open source (libCEC) Dual-licensed actually (GPLv2/Commercial) Python SWIG-based bindings Supports a handful of devices
  • 34. Fuzzing CEC libCEC Can send CEC messages with: Raspberry Pi + libCEC P8 USB-HDMI adapter + libCEC But can we really send arbitrary CEC messages? lib.Transmit(CommandFromString("10:82:41:41:41:41:41:41:41:41:41")) YES. It would appear at least. To know for sure, had to ensure libCEC was not validating.
  • 35. Demo
  • 36. Fuzzing Process It has been with Python + RainbowTech serial API I actually did not know this until late in the research RainbowTech device has a nice simple serial API Not much complex functionality I had already started down the path below libCEC + Python since pyCecClient is already a thing Can use the P8 USB adapter and/or Raspberry Pi(s) May port to Ruby since SWIG & Ruby++ done
  • 37. Fuzzing Process Major Steps ID Target and Inputs Generate Fuzzed Data Execute Fuzzed Data Monitor for Exceptions Determine Exploitability Fuzzing: Brute Force Vulnerability Discovery (Sutton, Michael; Greene, Adam; Amini, Pedram)
  • 38. Generate Fuzzed Data Started with "long" strings and string-based messages Format strings Parameter abuse Vendor-specific messages Simple bit-flipping Adopted some from Davis work
  • 39. Execute Fuzzed 1. Poll device 2. Send message
  • 40. Monitor for Exceptions 1. Check for ack if applicable 2. Poll again 3. If debug, use that 4. If shell, check if service/app still running 5. If TV, will probably notice crash, fun, hard to automate 6. If exception, record msg & state & debug details if avail
  • 41. DETERMINE EXPLOITABILITY This is kind of an adventure unless debug Specific to each device
  • 42. Fuzzing Complications Getting Hold of Devices They are around you however, just need to look Can also emulate w/QEMU + firmware Speed 500 bits/s Not much we can do about that Fuzz multiple devices simultaneously RE targets to focus the fuzz
  • 43. Fuzzing Complications Continued Debugging Need to get access to the device Probably no debugger Often painful to compile one for it Collect Data Deduplicate Repro
  • 44. Targets Home Theater Devices Samsung Blu-ray Player (MIPS) Targeted because already have shell (Thx Ricky Lawshae) Local shell to get on & study device Philips Blu-ray Player Samsung TV Panasonic TV Chromecast Amazon Fire TV Stick
  • 45. Targets Mobile devices Kindle Fire Galaxy S5 (S6 dropped MHL) Galaxy Note Chromebook
  • 47. Vulns Discovered Demos & Videos Panasonic TV Samsung Blu-ray Player
  • 50. Post exploitation Enable HEC Enable LAN Attack LAN services if nec Enable higher speed exfil etc Wake-Over-CEC Beachhead for attacking other devices Hiding
  • 51. Future Work Explore Attack Surface of HDMI: 3D, Audio Return Channel, more w/HEC Feature adds to CEC Moar devices Emulation Undo bad Python
  • 52. Conclusion Becoming more and more pervasive and invasive Old vuln types are new again Hard, sometimes impossible, to upgrade, maintain, configure Risk = Vulnerabilty x Exposure x Impact The vulns are there Exposure is growing Impact is probably highest for your privacy What next? How do we fix or mitigate this?
  • 53. References Simplified Wrapper & Interface Generator Reveal.js blackhat.com/bh-eu-12-Davis-HDMI github.com/Pulse-Eight/libcec hdmi.org cec-o-matic.com/ p8-USB-HDMI-adapter swig.org github.com/hakimel/reveal.js