SlideShare a Scribd company logo
1 of 73
Download to read offline
It’s assembler,
Jim, but not as
we know it!
Morgan Gangwere
DEF CON 26
Dedication
Never forget the
shoulders you stand on.
Thanks, Dad
whoami
Hoopy Frood
Been fiddling with Linux SOCs since I
fiddled with an old TS-7200
EmbeddedARM board
I’ve used ARM for a lot of services:
IRC, web hosting, etc.
I’ve built CyanogenMod/LineageOS,
custom ARM images, etc.
A word of note
There are few concrete examples in this talk. I’m sorry.
This sort of work is
One part science
One part estimation
Dash of bitter feelings towards others
Hint of “What the fuck was that EE thinking?”
A lot comes from experience. I can point the way, but I
cannot tell the future.
There’s a lot of seemingly random things. Trust me, It’ll
make sense.
ARMed to the
teeth
From the BBC to your home.
Short history of
ARM
Originally the Acorn RISC machine
Built for the BBC Micro!
Acorn changed hands and became
ARM Holdings
Acorn/ARM has never cut silicon!
Fun fact: Intel has produced ARM-
based chips (StrongARM and
XSCale) and still sometimes does!
The ISA hasn’t changed all that
much.
Embedded
Linux 101
Anatomy of an Embedded
Linux device.
Fundamentally 3 parts
Storage
SoC/Processor
RAM
Everything else? Bonus.
PHYs on everything from I2C, USB to SDIO
Cameras and Screens are via MIPI-defined protocols,
CSI and DSI respectively
At one point, they all look mostly the same.
What is an SoC?
Several major vendors:
Allwinner, Rockchip (China)
Atheros, TI, Apple (US)
Samsung (Korea)
80-100% of the peripherals and possibly storage is right
there on die
Becomes a “just add peripherals” design
Some vendors include SoCs as a part of other
devices, such as TI's line of DSPs with an ARM SoC
used for video production hardware and the like.
In some devices, there may be multiple SoCs: A whole
line of Cisco-owned Linux-based teleconferencing
hardware has big banks of SoCs from TI doing video
processing on the fly alongside a DSP.
What is an SoC?
Internal bus
Peripheral Controller
LTE modem Ethernet PHY I2C/SPI
External
Peripherals
RAM
(sometimes)
Storage
Controller
SD
Card/NAND/etc
GPU
CPU
Core(s)
Storage
Two/Three common flavors
MTD (Memory Technology
Device): Abstraction of flash
pages to partitions
Storage
Two/Three common flavors
MTD (Memory Technology
Device): Abstraction of flash
pages to partitions
eMMC: Embedded
MultiMedia Card
Storage
Two/Three common flavors
MTD (Memory Technology
Device): Abstraction of flash
pages to partitions
eMMC: Embedded
MultiMedia Card, SPI SD card
SD cards
Storage
Two/Three common flavors
MTD (Memory Technology
Device): Abstraction of flash
pages to partitions
eMMC: Embedded
MultiMedia Card, SPI SD card
SD cards
Storage
Two/Three common flavors
MTD (Memory Technology
Device): Abstraction of flash
pages to partitions
eMMC: Embedded
MultiMedia Card, SPI SD card
SD cards
Then there’s UFS
Introduced in 2011 for
phones, cameras: High
Bandwidth storage devices
Uses a SCSI model, not
eMMC’s linear model
Variations
Some devices have a small amount of onboard Flash for
the bootloader
Commonly seen on phones, for the purposes of
boostrapping everything else
Every vendor has different tools for pushing bits to a
device and they all suck.
Samsung has at least three for Android
Allwinner based devices can be placed into FEL boot
mode
Fastboot on Android devices
RAM
The art of cramming a lot in a
small place
Vendors are seriously tight-
assed
Can you cram everything in
8MB? Some routers do.
The WRT54G had 8M of RAM,
later 4M
Modern SoCs tend towards
1GB, phones 4-6G
In pure flash storage, ramfs
might be used to expand on-
demand files (http content)
Peripherals
Depends on what the hardware has: SPI, I2C, I2S, etc are
common sights.
Gonna see some weird shit
SDIO wireless cards
“sound cards” over I2S
GSM modems are really just pretending to be Hayes AT
modems.
Power management, LED management, cameras, etc.
“We need an Ethernet PHY” becomes “We hooked an
Ethernet PHY up over USB”
Linux doesn’t care if they’re on-die or not, it’s all the same
bus.
Peripherals
Depends on what the hardware has: SPI, I2C, I2S, etc are
common sights.
Gonna see some weird shit
SDIO wireless cards
“sound cards” over I2S
GSM modems are really just pretending to be Hayes AT
modems.
Power management, LED management, cameras, etc.
“We need an Ethernet PHY” becomes “We hooked an
Ethernet PHY up over USB”
Linux doesn’t care if they’re on-die or not, it’s all the same
bus.
Peripherals
Depends on what the hardware has: SPI, I2C, I2S, etc are
common sights.
Gonna see some weird shit
SDIO wireless cards
“sound cards” over I2S
GSM modems are really just pretending to be Hayes AT
modems.
Power management, LED management, cameras, etc.
“We need an Ethernet PHY” becomes “We hooked an
Ethernet PHY up over USB”
Linux doesn’t care if they’re on-die or not, it’s all the same
bus.
Peripherals
Depends on what the hardware has: SPI, I2C, I2S, etc are
common sights.
Gonna see some weird shit
SDIO wireless cards
“sound cards” over I2S
GSM modems are really just pretending to be Hayes AT
modems.
Power management, LED management, cameras, etc.
“We need an Ethernet PHY” becomes “We hooked an
Ethernet PHY up over USB”
Linux doesn’t care if they’re on-die or not, it’s all the same
bus.
Not
GPIO!
GPIO
Bootloader
One Bootloader To Rule Them All: Das U-Boot
Uses a simple scripting language
Can pull from TFTP, HTTP, etc.
Might be over Telnet, Serial, BT UART, etc.
Some don’t use U-Boot, use Fastboot or other loaders
Android devices are a clusterfuck of options
Life and death of an SoC*
DFU
Check
• First chance to load fresh code onto device, use for bootstrapping and
recovery
IPL
• Does signature checking of early boot image
• Probably SoC vendor provided
Bootloader
• Early UART/network wakeup is likely here.
Load Kernel
into RAM
• Some devices are dumb and load multiple kernels until one fails or they run out
• U-Boot is really running a script here.
Start kernel
• Kernel has to wake up (or re-wake) devices it wants. It can’t make any guarantees.
Userland
• Home of the party.
• Where the fun attacks are
* Some restrictions apply
Life and death of an SoC*
DFU
Check
• First chance to load fresh code onto device, use for bootstrapping and
recovery
Early
Boot
• Does signature checking of early boot image
• Probably SoC vendor provided
U-Boot
• Early UART/network wakeup is likely here.
Load Kernel
into RAM
• Some devices are dumb and load multiple kernels until one fails or they run out
• U-Boot is really running a script here.
Start kernel
• Kernel has to wake up (or re-wake) devices it wants. It can’t make any guarantees.
Userland
• Home of the party.
• Where the fun attacks are
* Some restrictions apply
Root Filesystem: Home to
All
A root filesystem contains the bare minimum to boot Linux: Any
shared object libraries, binaries, or other content that is necessary for
what that device is going to do
Fluid content that needs to be changed or which is going to be fetched
regularly is often stored on a Ramdisk; this might be loaded during
init's early startup from a tarball.
This is a super common thing to miss because it's a tmpfs outside of
/tmp
this is a super common way of keeping / “small”
This often leads to rootfs extractions via tar that seem "too big“
There are sometimes multiple root filesystems overlaid upon each
other
Android uses this to some extent: /system is where many things
really are
Might be from NFS, might try NFS first, etc.
Attacking these
devices
Step 0: Scope out your
device
Get to know what makes the device
tick
Version of Linux
Rough software stack
Known vulnerabilities
Debug shells, backdoors, admin
shells, etc.
ARM executables are fairly generic
Kobo updates are very, VERY generic
and the Kobo userland is very aware
of this.
Hardware vendors are lazy: many
devices likely similar to kin-devices
Possibly able to find update for
similar device by same OEM
Don’t Reinvent The Wheel
Since so many embedded linux devices are similar, or run similarly
outdated software, you may well have some of your work cut out
for you
OWASP has a whole task set devoted to IoT security:
https://www.owasp.org/index.php/OWASP_Internet_of_Things_Pr
oject
Tools like Firmwalker (https://github.com/craigz28/firmwalker) and
Routersploit (https://github.com/threat9/routersploit) are already
built and ready. Sometimes, thinking like a skid can save time and
energy for other things, like beer!
Firmware Security blog is a great place to look, including a
roundup of stuff (https://firmwaresecurity.com/2018/06/03/list-of-
iot-embedded-os-firmware-tools/ )
Option 1: It’s a UNIX
system, I know this
If you can get a shell,
sometimes just beating
against your target can be fun
Limited to only what is on the
target (or what you can get to
the target)
Can feel a bit like going into
the wild with a bowie knife
and a jar full of your own piss
Debugger? Fuzzer? Compiler?
What are those?
Option 2: Black-Box it
Lots of fun once you’re
used to it or live service
attacks.
Safe: Never directly
exposes you to “secrets”
(IP)
You don’t have the bowie
knife, just two jars of piss.
These options suck
Option 3: Reverse it
Pull out IDA/Radare
Grab a beer
Learn you a new ISA
The way of reversing IoT
things that don’t run Linux!
… but how the fuck do you
get the binaries?
Yeah but I’m fucking
lazy, asshole.
I don’t want to learn
IDA. I want to fuzz.
Option 4: Emulate It
You have every tool at your
disposal
Hot damn is that a
debugger?
Oh shit waddup it’s fuzzy
boiii
Once again, how the fuck
do you get your binary of
choice?
Getting root(fs)
Easy Mode: Update
Packages
Updates for devices are the easiest way to extract a root filesystem
Sometimes little more than a filesystem/partition layout that
gets dd’d right to disk
Android updates are ZIPs containing some executables, a script,
and some filesystems
Newer android updates (small ones) are very regularly "delta"
updates: These touch a known filesystem directly, and are very
small but don't contain a full filesystem.
Sometimes, rarely, they're an *actual executable* that gets run on
the device
Probably isn't signed
Probably fetched over HTTP
Downside: They’re occasionally very hard to find or are
incremental, incomplete patches. Sometimes they’re encrypted.
Medium: In-Vivo
extraction
You need a shell
Can you hijack an administrative interface?
Some ping functions can be hijacked into shells
Sometimes it’s literally “telnet to the thing”
Refer to step 0 for more
You need some kind of packer (cpio, tar, etc)
Find is a builtin for most busybox implementations.
You need some way to put it somewhere (netcat, curl, etc)
You might have an HTTPD to fall back on
Need to do reconnaissance on your device
Might need some creativity
Wireshark, Ettercap, Fiddler, etc
Demo: Router firmware
extraction (Actiontec
Router)
What did we get?
Surprise Mode: Direct
Extraction
Could be as simple as “remove SD card, image it”
Surprise Mode: Direct
Extraction
Could be as simple as “remove SD card, image it”
Surprise Mode: Direct
Extraction
Could be as simple as “remove SD card, image it”
Surprise Mode: Direct
Extraction
Could be as simple as “remove SD card, image it”
eMMC is harder though, since you need to get to the
data lines, but it can be done!
You will need to understand how the disk is laid out
Binwalk can help later, as can “standard” DOS
partition tables.
Having some in-vivo information is helpful
Surprise Mode: Direct
Extraction
Could be as simple as “remove SD card, image it”
eMMC is harder though, since you need to get to the
data lines, but it can be done!
You will need to understand how the disk is laid out
Binwalk can help later, as can “standard” DOS
partition tables.
Having some in-vivo information is helpful
Surprise Mode: Direct
Extraction
Could be as simple as “remove SD card, image it”
eMMC is harder though, since you need to get to the
data lines, but it can be done!
You will need to understand how the disk is laid out
Binwalk can help later, as can “standard” DOS
partition tables.
Having some in-vivo information is helpful
Surprise Mode: Direct
Extraction
Could be as simple as “remove SD card, image it”
eMMC is harder though, since you need to get to the
data lines, but it can be done!
You will need to understand how the disk is laid out
Binwalk can help later, as can “standard” DOS
partition tables.
Having some in-vivo information is helpful
http://blog.oshpark.com/2017/02/23/retro-cpc-dongle/
Surprise Mode: Direct
Extraction
Could be as simple as “remove SD card, image it”
eMMC is harder though, since you need to get to the
data lines, but it can be done!
You will need to understand how the disk is laid out
Binwalk can help later, as can “standard” DOS
partition tables.
Having some in-vivo information is helpful
Surprise Mode: Direct
Extraction
Could be as simple as “remove SD card, image it”
eMMC is harder though, since you need to get to the data lines,
but it can be done!
You will need to understand how the disk is laid out
Binwalk can help later, as can “standard” DOS partition tables.
Having some in-vivo information is helpful
All Else Fails: Solder to the rescue
Might need to desolder some storage, or otherwise physically
attack the hardware
MTD devices are weird. Prepare to get your hands dirty
Interested in more? HHV and friends are the place to start
looking.
JTAG, etc. might be the hard way out.
Logic
Analyzers
Salae makes a good one
Cheap
Basic
Runs over USB
Hardware interfaces
https://www.crowdsupply.com/excamera/spidriverhttp://dangerousprototypes.com/docs/Bus_Pirate
Now that we have that,
what do?
Try mounting it/extracting it/etc. `file` might give you a
good idea of what it thinks it might be, as will `strings`
and the like.
eMMCs sometimes have real partition tables
SD cards often do
Look at the reconnaissance you did
Boot logs: lots of good information about partitions
Fstab, /proc/mounts
Let automation do your
work
Binwalk!
Takes a rough guess at what might be in a place
Makes educated guesses about filesystems
High false positive rate
Photorec might be helpful
Get creative
Losetup and friends are capable of more than you give them
credit for.
There are a lot of filesystems that are read-only or create-and-
read, like cramfs and such. These are often spotted by binwalk
but are even sometimes seen as lzma or other compressed or
high-entropy data
If you’re only looking to play in IDA/Radare/etc, the bulk extraction
from binwalk might help.
QEMU: the
Quick
EMUlator
QEMU is a fast processor
emulator for a variety of
targets.
Targets you’ve never
heard of?
Mainframes
ARM, MIPS
PowerPC
OpenRISC
DEC Alpha
Lots of different ports and
targets have been ported.
Did
someone
say “OSX on
Amiga
hardware”?
Or Haiku
on BeOS?
Two ways to run QEMU
AS A FULL FAT VM
You preserve full control over the
whole process
You’ve got access to things like gdb at
a kernel level
Requires zero trust in the safety of the
binary
But you probably want a special
kernel and board setup, though there
are generic setups to get you started
Any tools are going to need to be
compiled for the target environment
I hate cross-compilers.
AS A TRANSLATING LOADER
You have access to all your existing
x86-64 tools (or whatever your native
tools are)
They’re not only native, but they’re
running full-speed.
You can run AFL like it’s meant to
Runs nicely in containers
You don’t even need a container!
Full-Fat VM: 9 tracks of
DOS
Binfmt: Linux’ way of
loading executables
Long ago, Linux added loadable loaders
Originally for the purposes of running JARs from the
command line like God and Sun Microsystems intended.
Turns out this is a great place to put emulators.
Debian ships with support for this in its binfmt-misc package.
QEMU can be shipped as a “static userspace” environment
(think WINE)
Uses “magic numbers” – signatures from a database – to
determine which ones are supposed to load what.
Fairly simple to add new kinds of binaries. You could actually
execute JPEGs if you really wanted to?
QEMU as loader
WITHOUT A CONTAINER
Dumb simple to set up:
qemu-whatever-static <binary>
With binfmt, just call your binary.
Must trust that the executable
is not malicious
Might depend on your local
environment looking like its
target environment
This works best for static,
monolithic executables
WITH A CONTAINER
Bring that whole root filesystem
along!
Run it in the confines of a jail,
Docker instance, even
something like Systemd
containers
Might need root depending on
your container (systemd)
Great for when your binary
loads its own special versions of
libraries that have weird things
added to them
QEMU user Demo
AFL setup
Oh boy. Let’s talk about AFL.
AFL needs to compiled with QEMU support
Magic sauce: CPU_TARGET=whatever
./build_qemu_support.sh
AFL needs to bring along the host’s libraries
Easiest bound with systemd-nspawn
Don’t do this in a VM
It hurts
AFL Demo
Wrapping up
What did we learn today?
Hardware vendors are lazy
Attacking hardware means getting creative
QEMU is pretty neato
AFL runs really slow when you’re emulating an X86
emulating an IBM mainframe.
Going forward:
I hope I’ve given you some idea of the landscape of
tools
Always remember rule 0
More Resources
Non-Linux targets:
RECON 2010 with Igor Skochinsky: Reverse Engineering for
PC Reversers:
http://hexblog.com/files/recon%202010%20Skochinsky.pdf
JTAG Explained: https://blog.senr.io/blog/jtag-explained
https://www.blackhat.com/presentations/bh-europe-
04/bh-eu-04-dehaas/bh-eu-04-dehaas.pdf
https://beckus.github.io/qemu_stm32/ (among others)
Linux targets:
eLinux.org – Fucking Gigantic wiki about embedded Linux.
linux-mips.org – Linux on MIPS
Thank you
Keep on hacking.

More Related Content

What's hot

Secret of Intel Management Engine by Igor Skochinsky
Secret of Intel Management Engine  by Igor SkochinskySecret of Intel Management Engine  by Igor Skochinsky
Secret of Intel Management Engine by Igor SkochinskyCODE BLUE
 
Hardware Hacking area: Make Cool Things with Microcontrollers (and learn to s...
Hardware Hacking area: Make Cool Things with Microcontrollers (and learn to s...Hardware Hacking area: Make Cool Things with Microcontrollers (and learn to s...
Hardware Hacking area: Make Cool Things with Microcontrollers (and learn to s...codebits
 
CODE BLUE 2014 : DeviceDisEnabler : A hypervisor which hides devices to prote...
CODE BLUE 2014 : DeviceDisEnabler : A hypervisor which hides devices to prote...CODE BLUE 2014 : DeviceDisEnabler : A hypervisor which hides devices to prote...
CODE BLUE 2014 : DeviceDisEnabler : A hypervisor which hides devices to prote...CODE BLUE
 
DefCon 2012 - Hardware Backdooring (Slides)
DefCon 2012 - Hardware Backdooring (Slides)DefCon 2012 - Hardware Backdooring (Slides)
DefCon 2012 - Hardware Backdooring (Slides)Michael Smith
 
Controlling USB Flash Drive Controllers: Expose of Hidden Features
Controlling USB Flash Drive Controllers: Expose of Hidden FeaturesControlling USB Flash Drive Controllers: Expose of Hidden Features
Controlling USB Flash Drive Controllers: Expose of Hidden Featuresxabean
 
CODE BLUE 2014 : BadXNU, A rotten apple! by PEDRO VILAÇA
CODE BLUE 2014 : BadXNU, A rotten apple! by PEDRO VILAÇACODE BLUE 2014 : BadXNU, A rotten apple! by PEDRO VILAÇA
CODE BLUE 2014 : BadXNU, A rotten apple! by PEDRO VILAÇACODE BLUE
 
From printed circuit boards to exploits
From printed circuit boards to exploitsFrom printed circuit boards to exploits
From printed circuit boards to exploitsvirtualabs
 
BadUSB, and what you should do about it
BadUSB, and what you should do about itBadUSB, and what you should do about it
BadUSB, and what you should do about itrobertfisk
 
Linux Kernel Exploitation
Linux Kernel ExploitationLinux Kernel Exploitation
Linux Kernel ExploitationScio Security
 
Mickey, threats inside your platform final
Mickey,  threats inside your platform finalMickey,  threats inside your platform final
Mickey, threats inside your platform finalPacSecJP
 
DerbyCon 2014 - Making BadUSB Work For You
DerbyCon 2014 - Making BadUSB Work For YouDerbyCon 2014 - Making BadUSB Work For You
DerbyCon 2014 - Making BadUSB Work For YouAdam Caudill
 
インテルMEの秘密 - チップセットに隠されたコードと、それが一体何をするかを見出す方法 - by イゴール・スコチンスキー - Igor Skochinsky
インテルMEの秘密 - チップセットに隠されたコードと、それが一体何をするかを見出す方法 - by イゴール・スコチンスキー - Igor SkochinskyインテルMEの秘密 - チップセットに隠されたコードと、それが一体何をするかを見出す方法 - by イゴール・スコチンスキー - Igor Skochinsky
インテルMEの秘密 - チップセットに隠されたコードと、それが一体何をするかを見出す方法 - by イゴール・スコチンスキー - Igor SkochinskyCODE BLUE
 

What's hot (13)

Secret of Intel Management Engine by Igor Skochinsky
Secret of Intel Management Engine  by Igor SkochinskySecret of Intel Management Engine  by Igor Skochinsky
Secret of Intel Management Engine by Igor Skochinsky
 
Hardware Hacking area: Make Cool Things with Microcontrollers (and learn to s...
Hardware Hacking area: Make Cool Things with Microcontrollers (and learn to s...Hardware Hacking area: Make Cool Things with Microcontrollers (and learn to s...
Hardware Hacking area: Make Cool Things with Microcontrollers (and learn to s...
 
CODE BLUE 2014 : DeviceDisEnabler : A hypervisor which hides devices to prote...
CODE BLUE 2014 : DeviceDisEnabler : A hypervisor which hides devices to prote...CODE BLUE 2014 : DeviceDisEnabler : A hypervisor which hides devices to prote...
CODE BLUE 2014 : DeviceDisEnabler : A hypervisor which hides devices to prote...
 
DragonBoard 410c
DragonBoard 410cDragonBoard 410c
DragonBoard 410c
 
DefCon 2012 - Hardware Backdooring (Slides)
DefCon 2012 - Hardware Backdooring (Slides)DefCon 2012 - Hardware Backdooring (Slides)
DefCon 2012 - Hardware Backdooring (Slides)
 
Controlling USB Flash Drive Controllers: Expose of Hidden Features
Controlling USB Flash Drive Controllers: Expose of Hidden FeaturesControlling USB Flash Drive Controllers: Expose of Hidden Features
Controlling USB Flash Drive Controllers: Expose of Hidden Features
 
CODE BLUE 2014 : BadXNU, A rotten apple! by PEDRO VILAÇA
CODE BLUE 2014 : BadXNU, A rotten apple! by PEDRO VILAÇACODE BLUE 2014 : BadXNU, A rotten apple! by PEDRO VILAÇA
CODE BLUE 2014 : BadXNU, A rotten apple! by PEDRO VILAÇA
 
From printed circuit boards to exploits
From printed circuit boards to exploitsFrom printed circuit boards to exploits
From printed circuit boards to exploits
 
BadUSB, and what you should do about it
BadUSB, and what you should do about itBadUSB, and what you should do about it
BadUSB, and what you should do about it
 
Linux Kernel Exploitation
Linux Kernel ExploitationLinux Kernel Exploitation
Linux Kernel Exploitation
 
Mickey, threats inside your platform final
Mickey,  threats inside your platform finalMickey,  threats inside your platform final
Mickey, threats inside your platform final
 
DerbyCon 2014 - Making BadUSB Work For You
DerbyCon 2014 - Making BadUSB Work For YouDerbyCon 2014 - Making BadUSB Work For You
DerbyCon 2014 - Making BadUSB Work For You
 
インテルMEの秘密 - チップセットに隠されたコードと、それが一体何をするかを見出す方法 - by イゴール・スコチンスキー - Igor Skochinsky
インテルMEの秘密 - チップセットに隠されたコードと、それが一体何をするかを見出す方法 - by イゴール・スコチンスキー - Igor SkochinskyインテルMEの秘密 - チップセットに隠されたコードと、それが一体何をするかを見出す方法 - by イゴール・スコチンスキー - Igor Skochinsky
インテルMEの秘密 - チップセットに隠されたコードと、それが一体何をするかを見出す方法 - by イゴール・スコチンスキー - Igor Skochinsky
 

Similar to It's Assembler, Jim, but not as we know it: (ab)using binaries from embedded devices for fun and profit

D1 t1 t. yunusov k. nesterov - bootkit via sms
D1 t1   t. yunusov k. nesterov - bootkit via smsD1 t1   t. yunusov k. nesterov - bootkit via sms
D1 t1 t. yunusov k. nesterov - bootkit via smsqqlan
 
Root via SMS: 4G access level security assessment, Sergey Gordeychik, Alexand...
Root via SMS: 4G access level security assessment, Sergey Gordeychik, Alexand...Root via SMS: 4G access level security assessment, Sergey Gordeychik, Alexand...
Root via SMS: 4G access level security assessment, Sergey Gordeychik, Alexand...Sergey Gordeychik
 
Eloi Sanfélix y Javier Moreno - Hardware hacking on your couch [RootedCON 2012]
Eloi Sanfélix y Javier Moreno - Hardware hacking on your couch [RootedCON 2012]Eloi Sanfélix y Javier Moreno - Hardware hacking on your couch [RootedCON 2012]
Eloi Sanfélix y Javier Moreno - Hardware hacking on your couch [RootedCON 2012]RootedCON
 
Advanced SOHO Router Exploitation XCON
Advanced SOHO Router Exploitation XCONAdvanced SOHO Router Exploitation XCON
Advanced SOHO Router Exploitation XCONLyon Yang
 
Starting Raspberry Pi
Starting Raspberry PiStarting Raspberry Pi
Starting Raspberry PiLloydMoore
 
A BEGINNER’S JOURNEY INTO THE WORLD OF HARDWARE HACKING
A BEGINNER’S JOURNEY INTO THE WORLD OF HARDWARE HACKINGA BEGINNER’S JOURNEY INTO THE WORLD OF HARDWARE HACKING
A BEGINNER’S JOURNEY INTO THE WORLD OF HARDWARE HACKINGSilvio Cesare
 
2.2. Introduction to Arduino
2.2. Introduction to Arduino2.2. Introduction to Arduino
2.2. Introduction to Arduinodefconmoscow
 
Parts of-a-cumputer[1]
Parts of-a-cumputer[1]Parts of-a-cumputer[1]
Parts of-a-cumputer[1]xnoxtrax
 
Reverse Engineering the TomTom Runner pt. 1
Reverse Engineering the TomTom Runner pt. 1 Reverse Engineering the TomTom Runner pt. 1
Reverse Engineering the TomTom Runner pt. 1 Luis Grangeia
 
Android and ios cracking, hackintosh included !
Android and ios cracking, hackintosh included !Android and ios cracking, hackintosh included !
Android and ios cracking, hackintosh included !Veduruparthy Bharat
 
COMPUTER HARDWARE - SHORT NOTES
COMPUTER HARDWARE - SHORT NOTESCOMPUTER HARDWARE - SHORT NOTES
COMPUTER HARDWARE - SHORT NOTESsuthi
 
Root via sms. 4G security assessment
Root via sms. 4G security assessment Root via sms. 4G security assessment
Root via sms. 4G security assessment Sergey Gordeychik
 
The internet of $h1t
The internet of $h1tThe internet of $h1t
The internet of $h1tAmit Serper
 
2011 01-24 dragino
2011 01-24 dragino2011 01-24 dragino
2011 01-24 draginoAndy Gelme
 
OWASP Cambridge Chapter Meeting 13/12/2016
OWASP Cambridge Chapter Meeting 13/12/2016OWASP Cambridge Chapter Meeting 13/12/2016
OWASP Cambridge Chapter Meeting 13/12/2016joebursell
 
Steelcon 2015 - 0wning the internet of trash
Steelcon 2015 - 0wning the internet of trashSteelcon 2015 - 0wning the internet of trash
Steelcon 2015 - 0wning the internet of trashinfodox
 

Similar to It's Assembler, Jim, but not as we know it: (ab)using binaries from embedded devices for fun and profit (20)

D1 t1 t. yunusov k. nesterov - bootkit via sms
D1 t1   t. yunusov k. nesterov - bootkit via smsD1 t1   t. yunusov k. nesterov - bootkit via sms
D1 t1 t. yunusov k. nesterov - bootkit via sms
 
Hardware hacking
Hardware hackingHardware hacking
Hardware hacking
 
Root via SMS: 4G access level security assessment, Sergey Gordeychik, Alexand...
Root via SMS: 4G access level security assessment, Sergey Gordeychik, Alexand...Root via SMS: 4G access level security assessment, Sergey Gordeychik, Alexand...
Root via SMS: 4G access level security assessment, Sergey Gordeychik, Alexand...
 
Eloi Sanfélix y Javier Moreno - Hardware hacking on your couch [RootedCON 2012]
Eloi Sanfélix y Javier Moreno - Hardware hacking on your couch [RootedCON 2012]Eloi Sanfélix y Javier Moreno - Hardware hacking on your couch [RootedCON 2012]
Eloi Sanfélix y Javier Moreno - Hardware hacking on your couch [RootedCON 2012]
 
Advanced SOHO Router Exploitation XCON
Advanced SOHO Router Exploitation XCONAdvanced SOHO Router Exploitation XCON
Advanced SOHO Router Exploitation XCON
 
Starting Raspberry Pi
Starting Raspberry PiStarting Raspberry Pi
Starting Raspberry Pi
 
Beagle board101 esc-boston-2009b
Beagle board101 esc-boston-2009bBeagle board101 esc-boston-2009b
Beagle board101 esc-boston-2009b
 
A BEGINNER’S JOURNEY INTO THE WORLD OF HARDWARE HACKING
A BEGINNER’S JOURNEY INTO THE WORLD OF HARDWARE HACKINGA BEGINNER’S JOURNEY INTO THE WORLD OF HARDWARE HACKING
A BEGINNER’S JOURNEY INTO THE WORLD OF HARDWARE HACKING
 
2.2. Introduction to Arduino
2.2. Introduction to Arduino2.2. Introduction to Arduino
2.2. Introduction to Arduino
 
Parts of-a-cumputer[1]
Parts of-a-cumputer[1]Parts of-a-cumputer[1]
Parts of-a-cumputer[1]
 
Reverse Engineering the TomTom Runner pt. 1
Reverse Engineering the TomTom Runner pt. 1 Reverse Engineering the TomTom Runner pt. 1
Reverse Engineering the TomTom Runner pt. 1
 
Android and ios cracking, hackintosh included !
Android and ios cracking, hackintosh included !Android and ios cracking, hackintosh included !
Android and ios cracking, hackintosh included !
 
COMPUTER HARDWARE - SHORT NOTES
COMPUTER HARDWARE - SHORT NOTESCOMPUTER HARDWARE - SHORT NOTES
COMPUTER HARDWARE - SHORT NOTES
 
Let's begin io t with $10
Let's begin io t with $10Let's begin io t with $10
Let's begin io t with $10
 
Root via sms. 4G security assessment
Root via sms. 4G security assessment Root via sms. 4G security assessment
Root via sms. 4G security assessment
 
The internet of $h1t
The internet of $h1tThe internet of $h1t
The internet of $h1t
 
OpenWRT and Perl
OpenWRT and PerlOpenWRT and Perl
OpenWRT and Perl
 
2011 01-24 dragino
2011 01-24 dragino2011 01-24 dragino
2011 01-24 dragino
 
OWASP Cambridge Chapter Meeting 13/12/2016
OWASP Cambridge Chapter Meeting 13/12/2016OWASP Cambridge Chapter Meeting 13/12/2016
OWASP Cambridge Chapter Meeting 13/12/2016
 
Steelcon 2015 - 0wning the internet of trash
Steelcon 2015 - 0wning the internet of trashSteelcon 2015 - 0wning the internet of trash
Steelcon 2015 - 0wning the internet of trash
 

More from Priyanka Aash

Digital Personal Data Protection (DPDP) Practical Approach For CISOs
Digital Personal Data Protection (DPDP) Practical Approach For CISOsDigital Personal Data Protection (DPDP) Practical Approach For CISOs
Digital Personal Data Protection (DPDP) Practical Approach For CISOsPriyanka Aash
 
Verizon Breach Investigation Report (VBIR).pdf
Verizon Breach Investigation Report (VBIR).pdfVerizon Breach Investigation Report (VBIR).pdf
Verizon Breach Investigation Report (VBIR).pdfPriyanka Aash
 
Top 10 Security Risks .pptx.pdf
Top 10 Security Risks .pptx.pdfTop 10 Security Risks .pptx.pdf
Top 10 Security Risks .pptx.pdfPriyanka Aash
 
Simplifying data privacy and protection.pdf
Simplifying data privacy and protection.pdfSimplifying data privacy and protection.pdf
Simplifying data privacy and protection.pdfPriyanka Aash
 
Generative AI and Security (1).pptx.pdf
Generative AI and Security (1).pptx.pdfGenerative AI and Security (1).pptx.pdf
Generative AI and Security (1).pptx.pdfPriyanka Aash
 
EVERY ATTACK INVOLVES EXPLOITATION OF A WEAKNESS.pdf
EVERY ATTACK INVOLVES EXPLOITATION OF A WEAKNESS.pdfEVERY ATTACK INVOLVES EXPLOITATION OF A WEAKNESS.pdf
EVERY ATTACK INVOLVES EXPLOITATION OF A WEAKNESS.pdfPriyanka Aash
 
Cyber Truths_Are you Prepared version 1.1.pptx.pdf
Cyber Truths_Are you Prepared version 1.1.pptx.pdfCyber Truths_Are you Prepared version 1.1.pptx.pdf
Cyber Truths_Are you Prepared version 1.1.pptx.pdfPriyanka Aash
 
Cyber Crisis Management.pdf
Cyber Crisis Management.pdfCyber Crisis Management.pdf
Cyber Crisis Management.pdfPriyanka Aash
 
CISOPlatform journey.pptx.pdf
CISOPlatform journey.pptx.pdfCISOPlatform journey.pptx.pdf
CISOPlatform journey.pptx.pdfPriyanka Aash
 
Chennai Chapter.pptx.pdf
Chennai Chapter.pptx.pdfChennai Chapter.pptx.pdf
Chennai Chapter.pptx.pdfPriyanka Aash
 
Cloud attack vectors_Moshe.pdf
Cloud attack vectors_Moshe.pdfCloud attack vectors_Moshe.pdf
Cloud attack vectors_Moshe.pdfPriyanka Aash
 
Stories From The Web 3 Battlefield
Stories From The Web 3 BattlefieldStories From The Web 3 Battlefield
Stories From The Web 3 BattlefieldPriyanka Aash
 
Lessons Learned From Ransomware Attacks
Lessons Learned From Ransomware AttacksLessons Learned From Ransomware Attacks
Lessons Learned From Ransomware AttacksPriyanka Aash
 
Emerging New Threats And Top CISO Priorities In 2022 (Chennai)
Emerging New Threats And Top CISO Priorities In 2022 (Chennai)Emerging New Threats And Top CISO Priorities In 2022 (Chennai)
Emerging New Threats And Top CISO Priorities In 2022 (Chennai)Priyanka Aash
 
Emerging New Threats And Top CISO Priorities In 2022 (Mumbai)
Emerging New Threats And Top CISO Priorities In 2022 (Mumbai)Emerging New Threats And Top CISO Priorities In 2022 (Mumbai)
Emerging New Threats And Top CISO Priorities In 2022 (Mumbai)Priyanka Aash
 
Emerging New Threats And Top CISO Priorities in 2022 (Bangalore)
Emerging New Threats And Top CISO Priorities in 2022 (Bangalore)Emerging New Threats And Top CISO Priorities in 2022 (Bangalore)
Emerging New Threats And Top CISO Priorities in 2022 (Bangalore)Priyanka Aash
 
Cloud Security: Limitations of Cloud Security Groups and Flow Logs
Cloud Security: Limitations of Cloud Security Groups and Flow LogsCloud Security: Limitations of Cloud Security Groups and Flow Logs
Cloud Security: Limitations of Cloud Security Groups and Flow LogsPriyanka Aash
 
Cyber Security Governance
Cyber Security GovernanceCyber Security Governance
Cyber Security GovernancePriyanka Aash
 

More from Priyanka Aash (20)

Digital Personal Data Protection (DPDP) Practical Approach For CISOs
Digital Personal Data Protection (DPDP) Practical Approach For CISOsDigital Personal Data Protection (DPDP) Practical Approach For CISOs
Digital Personal Data Protection (DPDP) Practical Approach For CISOs
 
Verizon Breach Investigation Report (VBIR).pdf
Verizon Breach Investigation Report (VBIR).pdfVerizon Breach Investigation Report (VBIR).pdf
Verizon Breach Investigation Report (VBIR).pdf
 
Top 10 Security Risks .pptx.pdf
Top 10 Security Risks .pptx.pdfTop 10 Security Risks .pptx.pdf
Top 10 Security Risks .pptx.pdf
 
Simplifying data privacy and protection.pdf
Simplifying data privacy and protection.pdfSimplifying data privacy and protection.pdf
Simplifying data privacy and protection.pdf
 
Generative AI and Security (1).pptx.pdf
Generative AI and Security (1).pptx.pdfGenerative AI and Security (1).pptx.pdf
Generative AI and Security (1).pptx.pdf
 
EVERY ATTACK INVOLVES EXPLOITATION OF A WEAKNESS.pdf
EVERY ATTACK INVOLVES EXPLOITATION OF A WEAKNESS.pdfEVERY ATTACK INVOLVES EXPLOITATION OF A WEAKNESS.pdf
EVERY ATTACK INVOLVES EXPLOITATION OF A WEAKNESS.pdf
 
DPDP Act 2023.pdf
DPDP Act 2023.pdfDPDP Act 2023.pdf
DPDP Act 2023.pdf
 
Cyber Truths_Are you Prepared version 1.1.pptx.pdf
Cyber Truths_Are you Prepared version 1.1.pptx.pdfCyber Truths_Are you Prepared version 1.1.pptx.pdf
Cyber Truths_Are you Prepared version 1.1.pptx.pdf
 
Cyber Crisis Management.pdf
Cyber Crisis Management.pdfCyber Crisis Management.pdf
Cyber Crisis Management.pdf
 
CISOPlatform journey.pptx.pdf
CISOPlatform journey.pptx.pdfCISOPlatform journey.pptx.pdf
CISOPlatform journey.pptx.pdf
 
Chennai Chapter.pptx.pdf
Chennai Chapter.pptx.pdfChennai Chapter.pptx.pdf
Chennai Chapter.pptx.pdf
 
Cloud attack vectors_Moshe.pdf
Cloud attack vectors_Moshe.pdfCloud attack vectors_Moshe.pdf
Cloud attack vectors_Moshe.pdf
 
Stories From The Web 3 Battlefield
Stories From The Web 3 BattlefieldStories From The Web 3 Battlefield
Stories From The Web 3 Battlefield
 
Lessons Learned From Ransomware Attacks
Lessons Learned From Ransomware AttacksLessons Learned From Ransomware Attacks
Lessons Learned From Ransomware Attacks
 
Emerging New Threats And Top CISO Priorities In 2022 (Chennai)
Emerging New Threats And Top CISO Priorities In 2022 (Chennai)Emerging New Threats And Top CISO Priorities In 2022 (Chennai)
Emerging New Threats And Top CISO Priorities In 2022 (Chennai)
 
Emerging New Threats And Top CISO Priorities In 2022 (Mumbai)
Emerging New Threats And Top CISO Priorities In 2022 (Mumbai)Emerging New Threats And Top CISO Priorities In 2022 (Mumbai)
Emerging New Threats And Top CISO Priorities In 2022 (Mumbai)
 
Emerging New Threats And Top CISO Priorities in 2022 (Bangalore)
Emerging New Threats And Top CISO Priorities in 2022 (Bangalore)Emerging New Threats And Top CISO Priorities in 2022 (Bangalore)
Emerging New Threats And Top CISO Priorities in 2022 (Bangalore)
 
Cloud Security: Limitations of Cloud Security Groups and Flow Logs
Cloud Security: Limitations of Cloud Security Groups and Flow LogsCloud Security: Limitations of Cloud Security Groups and Flow Logs
Cloud Security: Limitations of Cloud Security Groups and Flow Logs
 
Cyber Security Governance
Cyber Security GovernanceCyber Security Governance
Cyber Security Governance
 
Ethical Hacking
Ethical HackingEthical Hacking
Ethical Hacking
 

Recently uploaded

IAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsIAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsEnterprise Knowledge
 
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
 
How to convert PDF to text with Nanonets
How to convert PDF to text with NanonetsHow to convert PDF to text with Nanonets
How to convert PDF to text with Nanonetsnaman860154
 
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
 
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
 
[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdfhans926745
 
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking MenDelhi Call girls
 
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
 
Swan(sea) Song – personal research during my six years at Swansea ... and bey...
Swan(sea) Song – personal research during my six years at Swansea ... and bey...Swan(sea) Song – personal research during my six years at Swansea ... and bey...
Swan(sea) Song – personal research during my six years at Swansea ... and bey...Alan Dix
 
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptxHampshireHUG
 
Handwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsHandwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsMaria Levchenko
 
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Miguel Araújo
 
Data Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonData Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonAnna Loughnan Colquhoun
 
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Drew Madelung
 
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
 
Breaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path MountBreaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path MountPuma Security, LLC
 
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...shyamraj55
 
Histor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slideHistor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slidevu2urc
 
#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
 
A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)Gabriella Davis
 

Recently uploaded (20)

IAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsIAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI Solutions
 
Injustice - Developers Among Us (SciFiDevCon 2024)
Injustice - Developers Among Us (SciFiDevCon 2024)Injustice - Developers Among Us (SciFiDevCon 2024)
Injustice - Developers Among Us (SciFiDevCon 2024)
 
How to convert PDF to text with Nanonets
How to convert PDF to text with NanonetsHow to convert PDF to text with Nanonets
How to convert PDF to text with Nanonets
 
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
 
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 ...
 
[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf
 
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
 
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
 
Swan(sea) Song – personal research during my six years at Swansea ... and bey...
Swan(sea) Song – personal research during my six years at Swansea ... and bey...Swan(sea) Song – personal research during my six years at Swansea ... and bey...
Swan(sea) Song – personal research during my six years at Swansea ... and bey...
 
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
 
Handwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsHandwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed texts
 
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
 
Data Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonData Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt Robison
 
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
 
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
 
Breaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path MountBreaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path Mount
 
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
 
Histor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slideHistor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slide
 
#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
 
A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)
 

It's Assembler, Jim, but not as we know it: (ab)using binaries from embedded devices for fun and profit

  • 1. It’s assembler, Jim, but not as we know it! Morgan Gangwere DEF CON 26
  • 2. Dedication Never forget the shoulders you stand on. Thanks, Dad
  • 3. whoami Hoopy Frood Been fiddling with Linux SOCs since I fiddled with an old TS-7200 EmbeddedARM board I’ve used ARM for a lot of services: IRC, web hosting, etc. I’ve built CyanogenMod/LineageOS, custom ARM images, etc.
  • 4. A word of note There are few concrete examples in this talk. I’m sorry. This sort of work is One part science One part estimation Dash of bitter feelings towards others Hint of “What the fuck was that EE thinking?” A lot comes from experience. I can point the way, but I cannot tell the future. There’s a lot of seemingly random things. Trust me, It’ll make sense.
  • 5. ARMed to the teeth From the BBC to your home.
  • 6. Short history of ARM Originally the Acorn RISC machine Built for the BBC Micro! Acorn changed hands and became ARM Holdings Acorn/ARM has never cut silicon! Fun fact: Intel has produced ARM- based chips (StrongARM and XSCale) and still sometimes does! The ISA hasn’t changed all that much.
  • 7.
  • 8.
  • 10. Anatomy of an Embedded Linux device. Fundamentally 3 parts Storage SoC/Processor RAM Everything else? Bonus. PHYs on everything from I2C, USB to SDIO Cameras and Screens are via MIPI-defined protocols, CSI and DSI respectively At one point, they all look mostly the same.
  • 11. What is an SoC? Several major vendors: Allwinner, Rockchip (China) Atheros, TI, Apple (US) Samsung (Korea) 80-100% of the peripherals and possibly storage is right there on die Becomes a “just add peripherals” design Some vendors include SoCs as a part of other devices, such as TI's line of DSPs with an ARM SoC used for video production hardware and the like. In some devices, there may be multiple SoCs: A whole line of Cisco-owned Linux-based teleconferencing hardware has big banks of SoCs from TI doing video processing on the fly alongside a DSP.
  • 12. What is an SoC? Internal bus Peripheral Controller LTE modem Ethernet PHY I2C/SPI External Peripherals RAM (sometimes) Storage Controller SD Card/NAND/etc GPU CPU Core(s)
  • 13.
  • 14.
  • 15.
  • 16.
  • 17. Storage Two/Three common flavors MTD (Memory Technology Device): Abstraction of flash pages to partitions
  • 18. Storage Two/Three common flavors MTD (Memory Technology Device): Abstraction of flash pages to partitions eMMC: Embedded MultiMedia Card
  • 19. Storage Two/Three common flavors MTD (Memory Technology Device): Abstraction of flash pages to partitions eMMC: Embedded MultiMedia Card, SPI SD card SD cards
  • 20. Storage Two/Three common flavors MTD (Memory Technology Device): Abstraction of flash pages to partitions eMMC: Embedded MultiMedia Card, SPI SD card SD cards
  • 21. Storage Two/Three common flavors MTD (Memory Technology Device): Abstraction of flash pages to partitions eMMC: Embedded MultiMedia Card, SPI SD card SD cards Then there’s UFS Introduced in 2011 for phones, cameras: High Bandwidth storage devices Uses a SCSI model, not eMMC’s linear model
  • 22. Variations Some devices have a small amount of onboard Flash for the bootloader Commonly seen on phones, for the purposes of boostrapping everything else Every vendor has different tools for pushing bits to a device and they all suck. Samsung has at least three for Android Allwinner based devices can be placed into FEL boot mode Fastboot on Android devices
  • 23. RAM The art of cramming a lot in a small place Vendors are seriously tight- assed Can you cram everything in 8MB? Some routers do. The WRT54G had 8M of RAM, later 4M Modern SoCs tend towards 1GB, phones 4-6G In pure flash storage, ramfs might be used to expand on- demand files (http content)
  • 24. Peripherals Depends on what the hardware has: SPI, I2C, I2S, etc are common sights. Gonna see some weird shit SDIO wireless cards “sound cards” over I2S GSM modems are really just pretending to be Hayes AT modems. Power management, LED management, cameras, etc. “We need an Ethernet PHY” becomes “We hooked an Ethernet PHY up over USB” Linux doesn’t care if they’re on-die or not, it’s all the same bus.
  • 25. Peripherals Depends on what the hardware has: SPI, I2C, I2S, etc are common sights. Gonna see some weird shit SDIO wireless cards “sound cards” over I2S GSM modems are really just pretending to be Hayes AT modems. Power management, LED management, cameras, etc. “We need an Ethernet PHY” becomes “We hooked an Ethernet PHY up over USB” Linux doesn’t care if they’re on-die or not, it’s all the same bus.
  • 26. Peripherals Depends on what the hardware has: SPI, I2C, I2S, etc are common sights. Gonna see some weird shit SDIO wireless cards “sound cards” over I2S GSM modems are really just pretending to be Hayes AT modems. Power management, LED management, cameras, etc. “We need an Ethernet PHY” becomes “We hooked an Ethernet PHY up over USB” Linux doesn’t care if they’re on-die or not, it’s all the same bus.
  • 27. Peripherals Depends on what the hardware has: SPI, I2C, I2S, etc are common sights. Gonna see some weird shit SDIO wireless cards “sound cards” over I2S GSM modems are really just pretending to be Hayes AT modems. Power management, LED management, cameras, etc. “We need an Ethernet PHY” becomes “We hooked an Ethernet PHY up over USB” Linux doesn’t care if they’re on-die or not, it’s all the same bus. Not GPIO! GPIO
  • 28. Bootloader One Bootloader To Rule Them All: Das U-Boot Uses a simple scripting language Can pull from TFTP, HTTP, etc. Might be over Telnet, Serial, BT UART, etc. Some don’t use U-Boot, use Fastboot or other loaders Android devices are a clusterfuck of options
  • 29. Life and death of an SoC* DFU Check • First chance to load fresh code onto device, use for bootstrapping and recovery IPL • Does signature checking of early boot image • Probably SoC vendor provided Bootloader • Early UART/network wakeup is likely here. Load Kernel into RAM • Some devices are dumb and load multiple kernels until one fails or they run out • U-Boot is really running a script here. Start kernel • Kernel has to wake up (or re-wake) devices it wants. It can’t make any guarantees. Userland • Home of the party. • Where the fun attacks are * Some restrictions apply
  • 30. Life and death of an SoC* DFU Check • First chance to load fresh code onto device, use for bootstrapping and recovery Early Boot • Does signature checking of early boot image • Probably SoC vendor provided U-Boot • Early UART/network wakeup is likely here. Load Kernel into RAM • Some devices are dumb and load multiple kernels until one fails or they run out • U-Boot is really running a script here. Start kernel • Kernel has to wake up (or re-wake) devices it wants. It can’t make any guarantees. Userland • Home of the party. • Where the fun attacks are * Some restrictions apply
  • 31. Root Filesystem: Home to All A root filesystem contains the bare minimum to boot Linux: Any shared object libraries, binaries, or other content that is necessary for what that device is going to do Fluid content that needs to be changed or which is going to be fetched regularly is often stored on a Ramdisk; this might be loaded during init's early startup from a tarball. This is a super common thing to miss because it's a tmpfs outside of /tmp this is a super common way of keeping / “small” This often leads to rootfs extractions via tar that seem "too big“ There are sometimes multiple root filesystems overlaid upon each other Android uses this to some extent: /system is where many things really are Might be from NFS, might try NFS first, etc.
  • 33. Step 0: Scope out your device Get to know what makes the device tick Version of Linux Rough software stack Known vulnerabilities Debug shells, backdoors, admin shells, etc. ARM executables are fairly generic Kobo updates are very, VERY generic and the Kobo userland is very aware of this. Hardware vendors are lazy: many devices likely similar to kin-devices Possibly able to find update for similar device by same OEM
  • 34. Don’t Reinvent The Wheel Since so many embedded linux devices are similar, or run similarly outdated software, you may well have some of your work cut out for you OWASP has a whole task set devoted to IoT security: https://www.owasp.org/index.php/OWASP_Internet_of_Things_Pr oject Tools like Firmwalker (https://github.com/craigz28/firmwalker) and Routersploit (https://github.com/threat9/routersploit) are already built and ready. Sometimes, thinking like a skid can save time and energy for other things, like beer! Firmware Security blog is a great place to look, including a roundup of stuff (https://firmwaresecurity.com/2018/06/03/list-of- iot-embedded-os-firmware-tools/ )
  • 35. Option 1: It’s a UNIX system, I know this If you can get a shell, sometimes just beating against your target can be fun Limited to only what is on the target (or what you can get to the target) Can feel a bit like going into the wild with a bowie knife and a jar full of your own piss Debugger? Fuzzer? Compiler? What are those?
  • 36. Option 2: Black-Box it Lots of fun once you’re used to it or live service attacks. Safe: Never directly exposes you to “secrets” (IP) You don’t have the bowie knife, just two jars of piss.
  • 38. Option 3: Reverse it Pull out IDA/Radare Grab a beer Learn you a new ISA The way of reversing IoT things that don’t run Linux! … but how the fuck do you get the binaries?
  • 39. Yeah but I’m fucking lazy, asshole. I don’t want to learn IDA. I want to fuzz.
  • 40. Option 4: Emulate It You have every tool at your disposal Hot damn is that a debugger? Oh shit waddup it’s fuzzy boiii Once again, how the fuck do you get your binary of choice?
  • 42. Easy Mode: Update Packages Updates for devices are the easiest way to extract a root filesystem Sometimes little more than a filesystem/partition layout that gets dd’d right to disk Android updates are ZIPs containing some executables, a script, and some filesystems Newer android updates (small ones) are very regularly "delta" updates: These touch a known filesystem directly, and are very small but don't contain a full filesystem. Sometimes, rarely, they're an *actual executable* that gets run on the device Probably isn't signed Probably fetched over HTTP Downside: They’re occasionally very hard to find or are incremental, incomplete patches. Sometimes they’re encrypted.
  • 43. Medium: In-Vivo extraction You need a shell Can you hijack an administrative interface? Some ping functions can be hijacked into shells Sometimes it’s literally “telnet to the thing” Refer to step 0 for more You need some kind of packer (cpio, tar, etc) Find is a builtin for most busybox implementations. You need some way to put it somewhere (netcat, curl, etc) You might have an HTTPD to fall back on Need to do reconnaissance on your device Might need some creativity Wireshark, Ettercap, Fiddler, etc
  • 44. Demo: Router firmware extraction (Actiontec Router)
  • 45.
  • 46. What did we get?
  • 47. Surprise Mode: Direct Extraction Could be as simple as “remove SD card, image it”
  • 48. Surprise Mode: Direct Extraction Could be as simple as “remove SD card, image it”
  • 49. Surprise Mode: Direct Extraction Could be as simple as “remove SD card, image it”
  • 50. Surprise Mode: Direct Extraction Could be as simple as “remove SD card, image it” eMMC is harder though, since you need to get to the data lines, but it can be done! You will need to understand how the disk is laid out Binwalk can help later, as can “standard” DOS partition tables. Having some in-vivo information is helpful
  • 51. Surprise Mode: Direct Extraction Could be as simple as “remove SD card, image it” eMMC is harder though, since you need to get to the data lines, but it can be done! You will need to understand how the disk is laid out Binwalk can help later, as can “standard” DOS partition tables. Having some in-vivo information is helpful
  • 52. Surprise Mode: Direct Extraction Could be as simple as “remove SD card, image it” eMMC is harder though, since you need to get to the data lines, but it can be done! You will need to understand how the disk is laid out Binwalk can help later, as can “standard” DOS partition tables. Having some in-vivo information is helpful
  • 53. Surprise Mode: Direct Extraction Could be as simple as “remove SD card, image it” eMMC is harder though, since you need to get to the data lines, but it can be done! You will need to understand how the disk is laid out Binwalk can help later, as can “standard” DOS partition tables. Having some in-vivo information is helpful http://blog.oshpark.com/2017/02/23/retro-cpc-dongle/
  • 54. Surprise Mode: Direct Extraction Could be as simple as “remove SD card, image it” eMMC is harder though, since you need to get to the data lines, but it can be done! You will need to understand how the disk is laid out Binwalk can help later, as can “standard” DOS partition tables. Having some in-vivo information is helpful
  • 55. Surprise Mode: Direct Extraction Could be as simple as “remove SD card, image it” eMMC is harder though, since you need to get to the data lines, but it can be done! You will need to understand how the disk is laid out Binwalk can help later, as can “standard” DOS partition tables. Having some in-vivo information is helpful All Else Fails: Solder to the rescue Might need to desolder some storage, or otherwise physically attack the hardware MTD devices are weird. Prepare to get your hands dirty Interested in more? HHV and friends are the place to start looking. JTAG, etc. might be the hard way out.
  • 56. Logic Analyzers Salae makes a good one Cheap Basic Runs over USB
  • 58. Now that we have that, what do? Try mounting it/extracting it/etc. `file` might give you a good idea of what it thinks it might be, as will `strings` and the like. eMMCs sometimes have real partition tables SD cards often do Look at the reconnaissance you did Boot logs: lots of good information about partitions Fstab, /proc/mounts
  • 59. Let automation do your work Binwalk! Takes a rough guess at what might be in a place Makes educated guesses about filesystems High false positive rate Photorec might be helpful Get creative Losetup and friends are capable of more than you give them credit for. There are a lot of filesystems that are read-only or create-and- read, like cramfs and such. These are often spotted by binwalk but are even sometimes seen as lzma or other compressed or high-entropy data If you’re only looking to play in IDA/Radare/etc, the bulk extraction from binwalk might help.
  • 60. QEMU: the Quick EMUlator QEMU is a fast processor emulator for a variety of targets. Targets you’ve never heard of? Mainframes ARM, MIPS PowerPC OpenRISC DEC Alpha Lots of different ports and targets have been ported.
  • 63. Two ways to run QEMU AS A FULL FAT VM You preserve full control over the whole process You’ve got access to things like gdb at a kernel level Requires zero trust in the safety of the binary But you probably want a special kernel and board setup, though there are generic setups to get you started Any tools are going to need to be compiled for the target environment I hate cross-compilers. AS A TRANSLATING LOADER You have access to all your existing x86-64 tools (or whatever your native tools are) They’re not only native, but they’re running full-speed. You can run AFL like it’s meant to Runs nicely in containers You don’t even need a container!
  • 64. Full-Fat VM: 9 tracks of DOS
  • 65. Binfmt: Linux’ way of loading executables Long ago, Linux added loadable loaders Originally for the purposes of running JARs from the command line like God and Sun Microsystems intended. Turns out this is a great place to put emulators. Debian ships with support for this in its binfmt-misc package. QEMU can be shipped as a “static userspace” environment (think WINE) Uses “magic numbers” – signatures from a database – to determine which ones are supposed to load what. Fairly simple to add new kinds of binaries. You could actually execute JPEGs if you really wanted to?
  • 66. QEMU as loader WITHOUT A CONTAINER Dumb simple to set up: qemu-whatever-static <binary> With binfmt, just call your binary. Must trust that the executable is not malicious Might depend on your local environment looking like its target environment This works best for static, monolithic executables WITH A CONTAINER Bring that whole root filesystem along! Run it in the confines of a jail, Docker instance, even something like Systemd containers Might need root depending on your container (systemd) Great for when your binary loads its own special versions of libraries that have weird things added to them
  • 67.
  • 69. AFL setup Oh boy. Let’s talk about AFL. AFL needs to compiled with QEMU support Magic sauce: CPU_TARGET=whatever ./build_qemu_support.sh AFL needs to bring along the host’s libraries Easiest bound with systemd-nspawn Don’t do this in a VM It hurts
  • 71. Wrapping up What did we learn today? Hardware vendors are lazy Attacking hardware means getting creative QEMU is pretty neato AFL runs really slow when you’re emulating an X86 emulating an IBM mainframe. Going forward: I hope I’ve given you some idea of the landscape of tools Always remember rule 0
  • 72. More Resources Non-Linux targets: RECON 2010 with Igor Skochinsky: Reverse Engineering for PC Reversers: http://hexblog.com/files/recon%202010%20Skochinsky.pdf JTAG Explained: https://blog.senr.io/blog/jtag-explained https://www.blackhat.com/presentations/bh-europe- 04/bh-eu-04-dehaas/bh-eu-04-dehaas.pdf https://beckus.github.io/qemu_stm32/ (among others) Linux targets: eLinux.org – Fucking Gigantic wiki about embedded Linux. linux-mips.org – Linux on MIPS
  • 73. Thank you Keep on hacking.