SlideShare a Scribd company logo
hardware hacking
for software people
Dobrica Pavlinušić
http://blog.rot13.org/
FSEC 2013, Varaždin
http://bit.ly/fsec2013-hh
Open Hardware is game changer!

Open Hardware - documentation, schematic, gerbers, source available
If it’s not open hardware, open it and start hacking on it!
Overview
●
●
●
●
●

wireless 2.4GHz keyboards with nRF24L01
RTL-SDR as universal RF receiver
IMS RF band: 315,433,868,915 MHz
IR receiving, analysis and sending
some microcontroller choices
○ Arduino - AVR, 5V, ARM 3.3V
○ Bus Pirate - PIC, 1.8-5V
○ r0ket, Maple Leaf - ARM Cortex M3, 3.3V
○ Raspberry Pi, ARM, 3.3V
○ CubieBoard, ARM A10/A20, 3.3V, more pins
● other useful supporting hardware
○ USB microscope, solder station...
Wireless keyboards
http://blog.rot13.org/2012/12/is-wireless-keyboard-safe-for-your-passwords.html

Three basic types of RF connectivity
1. KeyKeriki v1.0 - 27 MHz
http://www.remote-exploit.org/articles/keykeriki_v1_0_-_27mhz/index.html

2. KeyKeriki v2.0 – 2.4GHz - nRF24L01 - 1 or 2 Mbit/s
http://www.remote-exploit.org/articles/keykeriki_v2_0__8211_2_4ghz/index.html

3. Ubertooth One - 2.4 GHz - Bluetooth
http://greatscottgadgets.com/ubertoothone/

All somewhat complicated (KeyKeriki uses multiple radios),
requires soldering or expensive kits
But seed of doubt is planted: are they secure?!
Most newer 2.4GHz (not bluetooth!) keyboards (with
dongle) use nRF24L01
nRF24L01 - cheap module
http://arduino-info.wikispaces.com/nRF24L01-Mirf-Examples
http://www.ebay.com/itm/251044600998 - buy in pair!
Can we sniff with nRF24L01?
http://travisgoodspeed.blogspot.com/2011/02/promiscuity-is-nrf24l01s-duty.html
Arduino ping-pong

https://plus.google.com/u/0/115404771036822212816/posts/efMJQPTi2su
Open Logic Sniffer in the middle

http://github.com/jawi/ols.git ols-0.9.7-RC1 self-compiled on
Debian sid amd64 (Java librxtx is pain otherwise!)
http://saturn.ffzg.hr/rot13/index.cgi?open_logic_sniffer
nrf24L01_plus
Dobrica Pavlinušić Shared publicly Jul 20, 2013
I'm looking for #nRF24L01 #Arduino library for
which I can specify number of bytes in address
(so, no #define please!) Should I write another
one?!
Damjan Georgievski Jul 20, 2013

If I'm not mistaken I saw R0ket in Kika, so you
might try http://sarwiki.informatik.hu-berlin.
de/R0ket_Keyboard_sniffer and let me know if it
works because I'm basing my port on that code
as opposed to combination of C and python
which Travis did.
Dobrica Pavlinušić Jul 22, 2013

Doesn't look as a big patch to make the address
length an extra argument
https://github.
com/kehribar/nrf24L01_plus/blob/master/nrf24.
c#L69
Dobrica Pavlinušić Jul 21, 2013
True, but I also need much more low-level
access because I'm porting http:
//travisgoodspeed.blogspot.
com/2011/02/promiscuity-is-nrf24l01s-duty.html
(and have no use for most of this library).

+Damjan Georgievski I read through source
code of ntf24L01_plus and it really is nicest
library I've seen so far. It's not Arduino API
based, so I'm somewhat reluctant to base my
solution on it (since part of the goal is to show
how Arduino based code can be run on different
platforms since I think that Arduino API is new
standard for embedded development -- blog
post about it is pending :-)
First try: port r0ket sniffer to Arduino

●
●
●
●
●

http://www.pollin.de/shop/dt/ODE4OTgxOTk/Bausaetze_Module/Module/Microcontroller_Experimentierplatine_r0ket.html
http://sarwiki.informatik.hu-berlin.de/R0ket_Keyboard_sniffer
First encounter with porting Arduino SPI API
Utter failure. I can’t sniff a thing!
Code does work (somewhat) - there is hope in porting code from one architecture (ARM Cortex
M3) to another (AVR)!
Travis Goodspeed - GoodFET
http://goodfet.sourceforge.net/
http://goodfet.sourceforge.net/clients/goodfetnrf/

●
●
●
●
●
●
●
●

MSP430 based, have to solder it!
How about port to Arduino Uno?
It does support few AVR boards...
Arduino Internals by Dale Wheat
...read, read,hack, google, hack…
port to different AVR! (CPU freq)
luckily nRF24L01 is 5V tolerant!
http://git.rot13.org/?p=goodfet;a=shortlog;
h=refs/heads/Arduino_Uno
Chicony KG-0609
http://saturn.ffzg.hr/rot13/index.cgi?chicony_kg_0609
http://git.rot13.org/?p=goodfet;a=shortlog;h=refs/heads/Arduino_Uno
dpavlin@blue:/blue-zfs/MSP430/goodfet/client$ ./goodfet.nrf sniffmacs | tee /dev/shm/keyboard
Holding autotune on 2402 MHz
sync,mac,r5,r6
'aa,bffffdea01,02,0f' looks valid
1
0.00094
'aa,bffffdea01,02,0f' looks valid
2
0.00187
'aa,bffffdea01,02,0f' looks valid
3
0.00143
'55,5ffffef500,02,0f' looks valid
1
0.00047
'55,5ffffef500,02,0f' looks valid
2
0.00084
'aa,bffffdea01,02,0f' looks valid
4
0.00154
'aa,bffffdea01,02,0f' looks valid
5
0.00182
'aa,bffffdea01,02,0f' looks valid
6
0.00202
'55,5ffffef500,02,0f' looks valid
3
0.00094
dpavlin@x200:/rest/cvs/goodfet/client$ ./goodfet.nrf tune aa,bffffdea01,02,0f
dpavlin@blue:/blue-zfs/MSP430/goodfet/client$
Listening as bffffdea01 on 2402 MHz
cc af f7 bf ff 1f e0 19 54 3b 9f 2d 2d c4 d4
cc ef f7 bc fe 7f e0 19 46 c2 5e b0 c2 5a 54
cc 2f f7 bd 42 5f e0 19 4c bf be dc d5 69 ab
cc 6f f7 a2 62 ff e0 19 58 26 9e 32 25 20 82
cc af f7 a2 7f 9f e0 19 5b 61 5d bf 1a 62 50
cc ef f7 bf 1d 9f e0 19 53 1f 14 a5 14 54 c3

./goodfet.nrf sniff
1d
a5
19
0b
b6
a2

6a
48
55
56
a9
14

96
cd
8e
d5
14
d1

d5
42
95
12
b8
84

16
2c
4f
54
d9
59

93
d8
8f
3a
d2
25

2a
99
66
a6
1a
56

95
dd
ed
bd
52
09

b6
19
ac
5f
11
08

2b
7a
a7
7d
0a
77

74
aa
d2
75
25
55

d4
a5
b6
ed
4d
4a

aa
85
8d
fd
aa
22

85
4a
d1
14
a8
ce

72
84
1b
b2
dc
ad

91
55
8b
4b
85
56

41
15
2a
48
1a
91
https://twitter.com/dpavlin/status/366151267548020737
Logitech - possible?
I guess so! Anybody want
to try it out?
buy nRFL01
2pcs NRF24L01+ 2.4GHz Antenna Wireless Transceiver
Module For Microcontr
http://www.ebay.com/itm/2pcs-NRF24L01-2-4GHzAntenna-Wireless-Transceiver-Module-Microcontr/251044600998?
pt=LH_DefaultDomain_0&hash=item3a736c9ca6
You will need two of them!
http://dx.com/p/upgraded-2-4ghz-nrf24l01-wirelesstransceiver-module-for-arduino-black-147596
http://dx.com/p/2-4ghz-wireless-nrf24l01-module-150867
Arduino - API first!
http://blog.rot13.org/2013/07/is-arduino-api-new-standard-for-embedded-development.html

● Arduino Uno - ATmega328
● Arduino Nano - ATmega328 - breadboard friendly
● Arduino Leonardo - ATmega32u4 - USB hacks!
● Arduino Mega - ATmega2560 - bigger, more IO
● Arduino Due - Atmel SAM3X8E ARM Cortex-M3
● Pinguino - PIC18 8-bit or PIC32 32-bit CPUs
● The Maple - STM32F103RB 72MHz ARM Cortex M3
● Energia - MSP430 16MHz board for under $10
● pcDuino - A10 1GHz ARM Cortex A8
● Papilio FPGA - Spartan 3 or 6 FPGA - AVR8 or ZPUino
Many more different boards with (some) API compatibility
5V vs 3.3V, some compatible with Arduino shield pinout
buy Arduino parts
http://blog.rot13.org/2013/08/monitoring-room-temperatureusing-arduino.html
● Solderless Breadboard with 400 Tie-Point
● Breadboard Jumper Wires
● Breadboard Jumper Wire Set
● DHT11 1-Wire Single Pin Thermometer/Hygrometer
Module
● DS18B20 Programmable Resolution 1-Wire Digital
Thermometer
● Arduino Compatible 1.6" Nokia 5110 LCD Module with
Blue Backlit
nRF24L01 + Bus Pirate
http://www.seeedstudio.com/depot/bus-pirate-v36-universal-serial-interface-p-609.html
http://sandboxelectronics.com/store/index.php?main_page=product_info&cPath=65&products_id=185
http://www.seeedstudio.com/depot/bus-pirate-cable-p-932.html

●

Bus Pirate v3.6 universal serial interface
http://dangerousprototypes.com/docs/Bus_Pirate
● different voltages (1.8V-5V from MCU power, sense) and protocols
○ UART, SPI, JTAG, I2C, SUMP logic analyzer (4K samples, <~1Mhz)
● scripting mode to drive nRF24L01 from python script
○ https://github.com/dpavlin/nRF24L01-buspirate
○ my fork, reviewed by someone who knows python, hi Aka :-)
● differnet modes have differnet pinout, take care when connecting!
http://dangerousprototypes.com/docs/Common_Bus_Pirate_cable_pinouts
nRF24L01 + Raspberry Pi
nRF24L01 RF Transceiver
https://github.com/kehribar/nrf24L01_plus
http://www.raspberrypi.org/phpBB3/viewtopic.php?f=45&t=17061
http://arduino-for-beginners.blogspot.fr/2013/02/setup-nordic-nrf24l01-rf-modules-to.html

setup it as hub for your devices
Raspberry Pi is 3.3V device so don’t blindingly
connect 5V Arduino sensors to it!
Level shifter comes to rescue:
http://www.ebay.com/itm/121032259497

there are models with less pins too!
RTL-SDR - NSND Osijek 2013
http://blog.rot13.org/2013/02/nsnd-2013-osijek-rtl-sdr-software-defined-radio.html

SDR receiver 8-bit, 2.4 MS/s, 24-1766 MHz
http://sdr.osmocom.org/trac/wiki/rtl-sdr
● good for IMS bands (433, 868 Mhz EU) or
ADS-B (1090 Mhz) - with home-made
antennas! All antennas are not equal!
● weather sensors, blinds, garage doors
What about sending IMS RF?
https://code.google.com/p/rfcat/
CC1111 (RF+MCU) vs CC1101 (RF only)
443 or 868 or 915 MHz - select one
Notice pin spacing! (2mm vs 2.54 mm)
Chronos AP dongle now
in with MSP430F5509
and CC1101 so rfcat
don’t work anymore!
http://saturn.ffzg.
hr/arh/index.cgi?
msp430_chronos
Cheaper alternative for Arduino
●
●
●
●

315 or 434 MHz only, AM modulation
buy pair - easier to debug and play with!
http://www.ebay.com/itm/251044600998
Separate sender and receiver module
USB IR Toy - easy IR hacking
http://blog.rot13.org/2013/04/usb-ir-toy---pic-18f2550-fw-update-under-linux.html
http://dangerousprototypes.com/docs/USB_Infrared_Toy

You will need to upgrade PIC firmware first!
Can be used as SUMP IR analyzer
Record and playback IR codes with ease!
IR Arduino alternative
Requires more software tweaking than IR Toy
http://www.righto.com/2009/08/multi-protocol-infrared-remote-library.html
● 5 pairs Infrared Diode LED IR Emission & Receiver http://www.ebay.
com/itm/281010446403
● you will need additional resistor for IR led!
Arduino Nano + 125KHz RFID
http://www.seeedstudio.com/wiki/index.php?title=Electronic_brick_-_125Khz_RFID_Card_Reader
https://plus.google.com/115404771036822212816/posts/VPnpbJqn2xo

It was cheap sell-out
component (5V serial)
USB Microscope
http://dx.com/p/s04-25-600x-usb-digital-photography-microscope-magnifier-w-8-led-white-light-grey-black-189450

Good for inspection
640*480 - don’t
believe megapixels,
has noticeable lag,
zoom too high, this
is only usable
distance!
ERSA analogue
soldering station, 80W
570 Kn, Nuškalo, temperature regulation
fail > 500°C, burned tip!
Bitcoins in Mojo FPGA
Mining #bitcoins at rate of 35.79 MH/s using +Embedded Micro mojo #fpga board. It's slower than GPU, but fun to watch.
https://plus.google.com/115404771036822212816/posts/4sTk4DEHncH
http://saturn.ffzg.hr/rot13/index.cgi?mojo
CubieBoard
https://plus.google.com/115404771036822212816/posts/VPnpbJqn2xo

2mm pins!
Seeking! Questions?
● Advice on board design (KiCAD? Fritzing?)
● Infrared microwave to convert into reflow
owen http://youtu.be/NCGzKDTFBSQ (and
somebody who wants to have it at home :-)
● everything else I don’t have and don’t know
that I need, please donate! I’m starting to
learn soldering :-)
● buy me something from my whishlist at ebay
● always buy more than one component (and
pass rest of them to friends)
hardware hacking
for software people
Dobrica Pavlinušić
http://blog.rot13.org/
FSEC 2013, Varaždin
http://bit.ly/fsec2013-hh

More Related Content

PDF
Cheap, good, hackable tools from China: AVR component tester
PDF
Raspberry Pi - best friend for all your GPIO needs
PDF
Let's hack cheap hardware 2016 edition
PDF
Gnu linux on arm for $50 - $100
PDF
FSEC 2014 - I can haz your board with JTAG
PPTX
pcDuino Presentation at SparkFun
PDF
How to build Open Hardware self-navigating car robot
Cheap, good, hackable tools from China: AVR component tester
Raspberry Pi - best friend for all your GPIO needs
Let's hack cheap hardware 2016 edition
Gnu linux on arm for $50 - $100
FSEC 2014 - I can haz your board with JTAG
pcDuino Presentation at SparkFun
How to build Open Hardware self-navigating car robot

What's hot (20)

PDF
Embedded Recipes 2019 - Introduction to JTAG debugging
PPTX
Scratch pcduino
PPTX
Innovation with pcDuino
PPTX
Esp8266 - Intro for dummies
PDF
Arduino arduino boardnano
PPTX
Introduction to pcDuino
PDF
A BEGINNER’S JOURNEY INTO THE WORLD OF HARDWARE HACKING
PPTX
pcDuino tech talk at Carnegie Mellon University 10/14/2014
PDF
Hardware Hacking area: Make Cool Things with Microcontrollers (and learn to s...
PDF
Controlling the internet of things using wearable tech - Design+Code Day; Ara...
PDF
Mainline kernel on ARM Tegra20 devices that are left behind on 2.6 kernels
PPTX
Stm32 develop tool introduction
PPTX
Hardware hacking 101
PPTX
[5]投影片 futurewad樹莓派研習會 141218
PDF
Arduino Forensics
PDF
Espresso Lite v2 - ESP8266 Overview
PDF
[Ruxcon 2011] Post Memory Corruption Memory Analysis
PDF
Stm32 f4 first touch
PDF
Let's begin io t with $10
PDF
⭐⭐⭐⭐⭐ CHARLA MACI: Prototipado de Aplicaciones Industriales Basado en Hardwar...
Embedded Recipes 2019 - Introduction to JTAG debugging
Scratch pcduino
Innovation with pcDuino
Esp8266 - Intro for dummies
Arduino arduino boardnano
Introduction to pcDuino
A BEGINNER’S JOURNEY INTO THE WORLD OF HARDWARE HACKING
pcDuino tech talk at Carnegie Mellon University 10/14/2014
Hardware Hacking area: Make Cool Things with Microcontrollers (and learn to s...
Controlling the internet of things using wearable tech - Design+Code Day; Ara...
Mainline kernel on ARM Tegra20 devices that are left behind on 2.6 kernels
Stm32 develop tool introduction
Hardware hacking 101
[5]投影片 futurewad樹莓派研習會 141218
Arduino Forensics
Espresso Lite v2 - ESP8266 Overview
[Ruxcon 2011] Post Memory Corruption Memory Analysis
Stm32 f4 first touch
Let's begin io t with $10
⭐⭐⭐⭐⭐ CHARLA MACI: Prototipado de Aplicaciones Industriales Basado en Hardwar...

Viewers also liked (19)

PDF
Ir수광모듈 datasheet
PDF
Gesture Control Car
PPTX
Hardware Hacking in schools (ACEC2014)
PDF
amrapali builders @@ hardware hacking and robotics using the raspberry pi.pdf
PDF
Intro to Hardware Firmware Hacking
PPT
Playful
PDF
Hardware Hacking caso práctico Ingeniería Inversa Smartcards
PPTX
Hardware Hacking Primer
PDF
BSides DFW2016-Hack Mode Enabled
PDF
Hardware hacking
PPTX
Hacker's and painters Hardware Hacking 101 - 10th Oct 2014
PDF
Breaking Bad EACS Implementations
PDF
Coders need to learn hardware hacking NOW
PPTX
Router forensics
PDF
JTAG Interface (Intro)
PDF
Hardware Reverse Engineering: From Boot to Root
PPTX
PyTriage: A malware analysis framework
PPTX
Hacktivism in Virtual Worlds
PDF
Post-relational databases: What's wrong with web development?
Ir수광모듈 datasheet
Gesture Control Car
Hardware Hacking in schools (ACEC2014)
amrapali builders @@ hardware hacking and robotics using the raspberry pi.pdf
Intro to Hardware Firmware Hacking
Playful
Hardware Hacking caso práctico Ingeniería Inversa Smartcards
Hardware Hacking Primer
BSides DFW2016-Hack Mode Enabled
Hardware hacking
Hacker's and painters Hardware Hacking 101 - 10th Oct 2014
Breaking Bad EACS Implementations
Coders need to learn hardware hacking NOW
Router forensics
JTAG Interface (Intro)
Hardware Reverse Engineering: From Boot to Root
PyTriage: A malware analysis framework
Hacktivism in Virtual Worlds
Post-relational databases: What's wrong with web development?

Similar to Hardware hacking for software people (20)

PDF
Nrf24l01 tutorial 0
PDF
How to use nRF24L01 module with Arduino
PPTX
Connected hardware for Software Engineers 101
PDF
Flyport openPicus datasheet
PDF
Interfacing the Raspberry Pi to the World
PPTX
Advanced Arduino Programming for Communications.pptx
PDF
Taking the hard out of hardware
PDF
Travis Goodspeed - Not Quite ZigBee
PDF
IoT Physical Devices and End Points.pdf
PDF
Having fun with a solar panel, camera and Apache projects.pdf
PPT
Arduino Meetup with Sonar and 433Mhz Radios
PPTX
IOT Talking to Webserver - how to
PDF
Intro to the raspberry pi board
PPTX
Esp8266 NodeMCU
PDF
WiFi mesh network(ESP32 mStar and mesh topology)
PPT
IoT with Arduino
PPTX
Using arduino and raspberry pi for internet of things
PDF
OpenPicus FlyPort Technology Introduction
PDF
IoT Intro and Demo
Nrf24l01 tutorial 0
How to use nRF24L01 module with Arduino
Connected hardware for Software Engineers 101
Flyport openPicus datasheet
Interfacing the Raspberry Pi to the World
Advanced Arduino Programming for Communications.pptx
Taking the hard out of hardware
Travis Goodspeed - Not Quite ZigBee
IoT Physical Devices and End Points.pdf
Having fun with a solar panel, camera and Apache projects.pdf
Arduino Meetup with Sonar and 433Mhz Radios
IOT Talking to Webserver - how to
Intro to the raspberry pi board
Esp8266 NodeMCU
WiFi mesh network(ESP32 mStar and mesh topology)
IoT with Arduino
Using arduino and raspberry pi for internet of things
OpenPicus FlyPort Technology Introduction
IoT Intro and Demo

More from Dobrica Pavlinušić (19)

PDF
Linux+sensor+device-tree+shell=IoT !
PDF
bro - what is in my network?
PDF
Ganeti - build your own cloud
PDF
Security of Linux containers in the cloud
PDF
This is an interesting metadata source. Can I import it into Koha?
PDF
Web scale monitoring
PDF
SysAdmin cookbook
PDF
Printing on Linux, simple right?
PPT
KohaCon11: Integrating Koha with RFID system
PDF
Deploy your own P2P network
PDF
Free Libre Open Source Software at FFZG library
PDF
Post-relational databases: What's wrong with web development? v3
PDF
Virtualization which isn't: LXC (Linux Containers)
PDF
Slobodni softver za digitalne arhive: EPrints u Knjižnici Filozofskog fakulte...
PDF
Mojo Facets – so, you have data and browser?
PDF
Kako napraviti Google od zgrade sa računalima?
PDF
Virtual LDAP - kako natjerati strgane aplikacije da koriste LDAP
PDF
REST ili kao sam se prestao brinuti o HTTP-u i zavolio ga (HTTP Server sa RFI...
PDF
Oslobodimo Hardware
Linux+sensor+device-tree+shell=IoT !
bro - what is in my network?
Ganeti - build your own cloud
Security of Linux containers in the cloud
This is an interesting metadata source. Can I import it into Koha?
Web scale monitoring
SysAdmin cookbook
Printing on Linux, simple right?
KohaCon11: Integrating Koha with RFID system
Deploy your own P2P network
Free Libre Open Source Software at FFZG library
Post-relational databases: What's wrong with web development? v3
Virtualization which isn't: LXC (Linux Containers)
Slobodni softver za digitalne arhive: EPrints u Knjižnici Filozofskog fakulte...
Mojo Facets – so, you have data and browser?
Kako napraviti Google od zgrade sa računalima?
Virtual LDAP - kako natjerati strgane aplikacije da koriste LDAP
REST ili kao sam se prestao brinuti o HTTP-u i zavolio ga (HTTP Server sa RFI...
Oslobodimo Hardware

Recently uploaded (20)

PPT
Teaching material agriculture food technology
PDF
Network Security Unit 5.pdf for BCA BBA.
PDF
Empathic Computing: Creating Shared Understanding
PPTX
Spectroscopy.pptx food analysis technology
PPTX
KOM of Painting work and Equipment Insulation REV00 update 25-dec.pptx
PDF
Diabetes mellitus diagnosis method based random forest with bat algorithm
PDF
Reach Out and Touch Someone: Haptics and Empathic Computing
PDF
NewMind AI Weekly Chronicles - August'25 Week I
PDF
Per capita expenditure prediction using model stacking based on satellite ima...
PPT
“AI and Expert System Decision Support & Business Intelligence Systems”
PDF
MIND Revenue Release Quarter 2 2025 Press Release
PPTX
Cloud computing and distributed systems.
PPTX
Digital-Transformation-Roadmap-for-Companies.pptx
PDF
Building Integrated photovoltaic BIPV_UPV.pdf
PDF
Mobile App Security Testing_ A Comprehensive Guide.pdf
PPTX
Understanding_Digital_Forensics_Presentation.pptx
PDF
Machine learning based COVID-19 study performance prediction
PPTX
20250228 LYD VKU AI Blended-Learning.pptx
PDF
Blue Purple Modern Animated Computer Science Presentation.pdf.pdf
PDF
Peak of Data & AI Encore- AI for Metadata and Smarter Workflows
Teaching material agriculture food technology
Network Security Unit 5.pdf for BCA BBA.
Empathic Computing: Creating Shared Understanding
Spectroscopy.pptx food analysis technology
KOM of Painting work and Equipment Insulation REV00 update 25-dec.pptx
Diabetes mellitus diagnosis method based random forest with bat algorithm
Reach Out and Touch Someone: Haptics and Empathic Computing
NewMind AI Weekly Chronicles - August'25 Week I
Per capita expenditure prediction using model stacking based on satellite ima...
“AI and Expert System Decision Support & Business Intelligence Systems”
MIND Revenue Release Quarter 2 2025 Press Release
Cloud computing and distributed systems.
Digital-Transformation-Roadmap-for-Companies.pptx
Building Integrated photovoltaic BIPV_UPV.pdf
Mobile App Security Testing_ A Comprehensive Guide.pdf
Understanding_Digital_Forensics_Presentation.pptx
Machine learning based COVID-19 study performance prediction
20250228 LYD VKU AI Blended-Learning.pptx
Blue Purple Modern Animated Computer Science Presentation.pdf.pdf
Peak of Data & AI Encore- AI for Metadata and Smarter Workflows

Hardware hacking for software people

  • 1. hardware hacking for software people Dobrica Pavlinušić http://blog.rot13.org/ FSEC 2013, Varaždin http://bit.ly/fsec2013-hh
  • 2. Open Hardware is game changer! Open Hardware - documentation, schematic, gerbers, source available If it’s not open hardware, open it and start hacking on it!
  • 3. Overview ● ● ● ● ● wireless 2.4GHz keyboards with nRF24L01 RTL-SDR as universal RF receiver IMS RF band: 315,433,868,915 MHz IR receiving, analysis and sending some microcontroller choices ○ Arduino - AVR, 5V, ARM 3.3V ○ Bus Pirate - PIC, 1.8-5V ○ r0ket, Maple Leaf - ARM Cortex M3, 3.3V ○ Raspberry Pi, ARM, 3.3V ○ CubieBoard, ARM A10/A20, 3.3V, more pins ● other useful supporting hardware ○ USB microscope, solder station...
  • 4. Wireless keyboards http://blog.rot13.org/2012/12/is-wireless-keyboard-safe-for-your-passwords.html Three basic types of RF connectivity 1. KeyKeriki v1.0 - 27 MHz http://www.remote-exploit.org/articles/keykeriki_v1_0_-_27mhz/index.html 2. KeyKeriki v2.0 – 2.4GHz - nRF24L01 - 1 or 2 Mbit/s http://www.remote-exploit.org/articles/keykeriki_v2_0__8211_2_4ghz/index.html 3. Ubertooth One - 2.4 GHz - Bluetooth http://greatscottgadgets.com/ubertoothone/ All somewhat complicated (KeyKeriki uses multiple radios), requires soldering or expensive kits But seed of doubt is planted: are they secure?! Most newer 2.4GHz (not bluetooth!) keyboards (with dongle) use nRF24L01
  • 5. nRF24L01 - cheap module http://arduino-info.wikispaces.com/nRF24L01-Mirf-Examples http://www.ebay.com/itm/251044600998 - buy in pair!
  • 6. Can we sniff with nRF24L01? http://travisgoodspeed.blogspot.com/2011/02/promiscuity-is-nrf24l01s-duty.html
  • 8. Open Logic Sniffer in the middle http://github.com/jawi/ols.git ols-0.9.7-RC1 self-compiled on Debian sid amd64 (Java librxtx is pain otherwise!) http://saturn.ffzg.hr/rot13/index.cgi?open_logic_sniffer
  • 9. nrf24L01_plus Dobrica Pavlinušić Shared publicly Jul 20, 2013 I'm looking for #nRF24L01 #Arduino library for which I can specify number of bytes in address (so, no #define please!) Should I write another one?! Damjan Georgievski Jul 20, 2013 If I'm not mistaken I saw R0ket in Kika, so you might try http://sarwiki.informatik.hu-berlin. de/R0ket_Keyboard_sniffer and let me know if it works because I'm basing my port on that code as opposed to combination of C and python which Travis did. Dobrica Pavlinušić Jul 22, 2013 Doesn't look as a big patch to make the address length an extra argument https://github. com/kehribar/nrf24L01_plus/blob/master/nrf24. c#L69 Dobrica Pavlinušić Jul 21, 2013 True, but I also need much more low-level access because I'm porting http: //travisgoodspeed.blogspot. com/2011/02/promiscuity-is-nrf24l01s-duty.html (and have no use for most of this library). +Damjan Georgievski I read through source code of ntf24L01_plus and it really is nicest library I've seen so far. It's not Arduino API based, so I'm somewhat reluctant to base my solution on it (since part of the goal is to show how Arduino based code can be run on different platforms since I think that Arduino API is new standard for embedded development -- blog post about it is pending :-)
  • 10. First try: port r0ket sniffer to Arduino ● ● ● ● ● http://www.pollin.de/shop/dt/ODE4OTgxOTk/Bausaetze_Module/Module/Microcontroller_Experimentierplatine_r0ket.html http://sarwiki.informatik.hu-berlin.de/R0ket_Keyboard_sniffer First encounter with porting Arduino SPI API Utter failure. I can’t sniff a thing! Code does work (somewhat) - there is hope in porting code from one architecture (ARM Cortex M3) to another (AVR)!
  • 11. Travis Goodspeed - GoodFET http://goodfet.sourceforge.net/ http://goodfet.sourceforge.net/clients/goodfetnrf/ ● ● ● ● ● ● ● ● MSP430 based, have to solder it! How about port to Arduino Uno? It does support few AVR boards... Arduino Internals by Dale Wheat ...read, read,hack, google, hack… port to different AVR! (CPU freq) luckily nRF24L01 is 5V tolerant! http://git.rot13.org/?p=goodfet;a=shortlog; h=refs/heads/Arduino_Uno
  • 12. Chicony KG-0609 http://saturn.ffzg.hr/rot13/index.cgi?chicony_kg_0609 http://git.rot13.org/?p=goodfet;a=shortlog;h=refs/heads/Arduino_Uno dpavlin@blue:/blue-zfs/MSP430/goodfet/client$ ./goodfet.nrf sniffmacs | tee /dev/shm/keyboard Holding autotune on 2402 MHz sync,mac,r5,r6 'aa,bffffdea01,02,0f' looks valid 1 0.00094 'aa,bffffdea01,02,0f' looks valid 2 0.00187 'aa,bffffdea01,02,0f' looks valid 3 0.00143 '55,5ffffef500,02,0f' looks valid 1 0.00047 '55,5ffffef500,02,0f' looks valid 2 0.00084 'aa,bffffdea01,02,0f' looks valid 4 0.00154 'aa,bffffdea01,02,0f' looks valid 5 0.00182 'aa,bffffdea01,02,0f' looks valid 6 0.00202 '55,5ffffef500,02,0f' looks valid 3 0.00094 dpavlin@x200:/rest/cvs/goodfet/client$ ./goodfet.nrf tune aa,bffffdea01,02,0f dpavlin@blue:/blue-zfs/MSP430/goodfet/client$ Listening as bffffdea01 on 2402 MHz cc af f7 bf ff 1f e0 19 54 3b 9f 2d 2d c4 d4 cc ef f7 bc fe 7f e0 19 46 c2 5e b0 c2 5a 54 cc 2f f7 bd 42 5f e0 19 4c bf be dc d5 69 ab cc 6f f7 a2 62 ff e0 19 58 26 9e 32 25 20 82 cc af f7 a2 7f 9f e0 19 5b 61 5d bf 1a 62 50 cc ef f7 bf 1d 9f e0 19 53 1f 14 a5 14 54 c3 ./goodfet.nrf sniff 1d a5 19 0b b6 a2 6a 48 55 56 a9 14 96 cd 8e d5 14 d1 d5 42 95 12 b8 84 16 2c 4f 54 d9 59 93 d8 8f 3a d2 25 2a 99 66 a6 1a 56 95 dd ed bd 52 09 b6 19 ac 5f 11 08 2b 7a a7 7d 0a 77 74 aa d2 75 25 55 d4 a5 b6 ed 4d 4a aa 85 8d fd aa 22 85 4a d1 14 a8 ce 72 84 1b b2 dc ad 91 55 8b 4b 85 56 41 15 2a 48 1a 91
  • 14. Logitech - possible? I guess so! Anybody want to try it out?
  • 15. buy nRFL01 2pcs NRF24L01+ 2.4GHz Antenna Wireless Transceiver Module For Microcontr http://www.ebay.com/itm/2pcs-NRF24L01-2-4GHzAntenna-Wireless-Transceiver-Module-Microcontr/251044600998? pt=LH_DefaultDomain_0&hash=item3a736c9ca6 You will need two of them! http://dx.com/p/upgraded-2-4ghz-nrf24l01-wirelesstransceiver-module-for-arduino-black-147596 http://dx.com/p/2-4ghz-wireless-nrf24l01-module-150867
  • 16. Arduino - API first! http://blog.rot13.org/2013/07/is-arduino-api-new-standard-for-embedded-development.html ● Arduino Uno - ATmega328 ● Arduino Nano - ATmega328 - breadboard friendly ● Arduino Leonardo - ATmega32u4 - USB hacks! ● Arduino Mega - ATmega2560 - bigger, more IO ● Arduino Due - Atmel SAM3X8E ARM Cortex-M3 ● Pinguino - PIC18 8-bit or PIC32 32-bit CPUs ● The Maple - STM32F103RB 72MHz ARM Cortex M3 ● Energia - MSP430 16MHz board for under $10 ● pcDuino - A10 1GHz ARM Cortex A8 ● Papilio FPGA - Spartan 3 or 6 FPGA - AVR8 or ZPUino Many more different boards with (some) API compatibility 5V vs 3.3V, some compatible with Arduino shield pinout
  • 17. buy Arduino parts http://blog.rot13.org/2013/08/monitoring-room-temperatureusing-arduino.html ● Solderless Breadboard with 400 Tie-Point ● Breadboard Jumper Wires ● Breadboard Jumper Wire Set ● DHT11 1-Wire Single Pin Thermometer/Hygrometer Module ● DS18B20 Programmable Resolution 1-Wire Digital Thermometer ● Arduino Compatible 1.6" Nokia 5110 LCD Module with Blue Backlit
  • 18. nRF24L01 + Bus Pirate http://www.seeedstudio.com/depot/bus-pirate-v36-universal-serial-interface-p-609.html http://sandboxelectronics.com/store/index.php?main_page=product_info&cPath=65&products_id=185 http://www.seeedstudio.com/depot/bus-pirate-cable-p-932.html ● Bus Pirate v3.6 universal serial interface http://dangerousprototypes.com/docs/Bus_Pirate ● different voltages (1.8V-5V from MCU power, sense) and protocols ○ UART, SPI, JTAG, I2C, SUMP logic analyzer (4K samples, <~1Mhz) ● scripting mode to drive nRF24L01 from python script ○ https://github.com/dpavlin/nRF24L01-buspirate ○ my fork, reviewed by someone who knows python, hi Aka :-) ● differnet modes have differnet pinout, take care when connecting! http://dangerousprototypes.com/docs/Common_Bus_Pirate_cable_pinouts
  • 19. nRF24L01 + Raspberry Pi nRF24L01 RF Transceiver https://github.com/kehribar/nrf24L01_plus http://www.raspberrypi.org/phpBB3/viewtopic.php?f=45&t=17061 http://arduino-for-beginners.blogspot.fr/2013/02/setup-nordic-nrf24l01-rf-modules-to.html setup it as hub for your devices Raspberry Pi is 3.3V device so don’t blindingly connect 5V Arduino sensors to it! Level shifter comes to rescue: http://www.ebay.com/itm/121032259497 there are models with less pins too!
  • 20. RTL-SDR - NSND Osijek 2013 http://blog.rot13.org/2013/02/nsnd-2013-osijek-rtl-sdr-software-defined-radio.html SDR receiver 8-bit, 2.4 MS/s, 24-1766 MHz http://sdr.osmocom.org/trac/wiki/rtl-sdr ● good for IMS bands (433, 868 Mhz EU) or ADS-B (1090 Mhz) - with home-made antennas! All antennas are not equal! ● weather sensors, blinds, garage doors
  • 21. What about sending IMS RF? https://code.google.com/p/rfcat/ CC1111 (RF+MCU) vs CC1101 (RF only) 443 or 868 or 915 MHz - select one Notice pin spacing! (2mm vs 2.54 mm) Chronos AP dongle now in with MSP430F5509 and CC1101 so rfcat don’t work anymore! http://saturn.ffzg. hr/arh/index.cgi? msp430_chronos
  • 22. Cheaper alternative for Arduino ● ● ● ● 315 or 434 MHz only, AM modulation buy pair - easier to debug and play with! http://www.ebay.com/itm/251044600998 Separate sender and receiver module
  • 23. USB IR Toy - easy IR hacking http://blog.rot13.org/2013/04/usb-ir-toy---pic-18f2550-fw-update-under-linux.html http://dangerousprototypes.com/docs/USB_Infrared_Toy You will need to upgrade PIC firmware first! Can be used as SUMP IR analyzer Record and playback IR codes with ease!
  • 24. IR Arduino alternative Requires more software tweaking than IR Toy http://www.righto.com/2009/08/multi-protocol-infrared-remote-library.html ● 5 pairs Infrared Diode LED IR Emission & Receiver http://www.ebay. com/itm/281010446403 ● you will need additional resistor for IR led!
  • 25. Arduino Nano + 125KHz RFID http://www.seeedstudio.com/wiki/index.php?title=Electronic_brick_-_125Khz_RFID_Card_Reader https://plus.google.com/115404771036822212816/posts/VPnpbJqn2xo It was cheap sell-out component (5V serial)
  • 26. USB Microscope http://dx.com/p/s04-25-600x-usb-digital-photography-microscope-magnifier-w-8-led-white-light-grey-black-189450 Good for inspection 640*480 - don’t believe megapixels, has noticeable lag, zoom too high, this is only usable distance!
  • 27. ERSA analogue soldering station, 80W 570 Kn, Nuškalo, temperature regulation fail > 500°C, burned tip!
  • 28. Bitcoins in Mojo FPGA Mining #bitcoins at rate of 35.79 MH/s using +Embedded Micro mojo #fpga board. It's slower than GPU, but fun to watch. https://plus.google.com/115404771036822212816/posts/4sTk4DEHncH http://saturn.ffzg.hr/rot13/index.cgi?mojo
  • 30. Seeking! Questions? ● Advice on board design (KiCAD? Fritzing?) ● Infrared microwave to convert into reflow owen http://youtu.be/NCGzKDTFBSQ (and somebody who wants to have it at home :-) ● everything else I don’t have and don’t know that I need, please donate! I’m starting to learn soldering :-) ● buy me something from my whishlist at ebay ● always buy more than one component (and pass rest of them to friends)
  • 31. hardware hacking for software people Dobrica Pavlinušić http://blog.rot13.org/ FSEC 2013, Varaždin http://bit.ly/fsec2013-hh