SlideShare a Scribd company logo
IRON-HID:
Create your own bad USB
Seunghun Han
Who am I ?
 Security researcher at NSR
(National Security Research
Institute of South Korea)
 Operating system and firmware
developer
 Author of the book series titled “64-bit multi-
core OS principles and structure, Vol.1 & 2”
 a.k.a kkamagui (crow or raven in English)
- @kkamagui1
 Background and Architecture of
IRON-HID
 Hacking a Portable Charger
 Testing a Vulnerability of
a Smartphones
 Testing a Vulnerability of
a POS System and a PC
 Bonus
Contents
 Background and Architecture of
IRON-HID
 Hacking a Portable Charger
 Testing a Vulnerability of
the Smartphone
 Testing a Vulnerability of
the POS System and the PC
 Bonus
IRON-HID
Human Interface Device
for making your tools
IRON-HID Project?
=
Features
 Custom device + firmware + test agent
program + Android smartphone program
 Various types of system exploitable
 POS (Point-of-Sale), PC, Android, etc.
 Lightweight embedded hardware-based
 “Arduino” and “Teensy”
 Open-source project!
 https://github.com/kkamagui/IRON-HID
Arduino vs Teensy
Arduino Teensy
Arduino Mega
Teensy++ 2.0
Larger
(Palm size)
Smaller
(Paper-clip size)
256KB Flash
(ATmega16U2 + ATmega2560)
128KB Flash
(AT90USB1286)
60 I/O Pins 46 I/O Pins
Arduino Sketch IDE is available!
USB
Proxy DeviceCommander
Targets
Attach
Custom Device
Wireless
Test Agent
Target POS systems, PCs, smartphones
Embedded hardware
(Low-powered hardware)
Wireless module
(WiFi, Bluetooth, Cellular, etc.)
Receive results of commands
Receive status of a proxy device
Execute shell commands
Send keyboard events
Capture screens
Get files
Send commands and events
Install a test agent program
Receive results of commands
(Results of shell, screens, files)
Test agent (TA) program
IRON-HID firmware
(USB functions and a CD-ROM image)
Custom device
(in proxy devices)
: IRON-HID
component
Security inspector’ smartphone
IRON-HID commander program
IRON-HID Firmware
 Emulates keyboard and mass-storage
device
 It has one interrupt type endpoint for
sending and logging keyboard events
 It has two bulk type endpoints for installing
the TA program
 Makes a custom communication channel
 It has one control type endpoint for making
a tunnel between the TA program and the
Commander program
TA program and IRON-HID Commander
 TA program processes requests of
Commander
 Command Executions, Screen Captures,
File Transfers
 Commander is an interface of pen-testers
 It has control tab, command tab, key tab
 Penetration tester uses each tab for testing
security holes
Direction Format Description
Commander 
TA program
C;<command>;
Commander requests that TA program
executes a command and sends result to
Commander
Commander 
TA program
G;<filename>;
Commander requests that TA program sends
a file to Commander
Commander 
TA program
S;;
Commander requests that TA program
captures a screenshot and sends it to
Commander
TA program 
Commander
F;;<64byte data>; TA program sends results to Commander
Commander 
Firmware
<Magic string 1>
Commander changes firmware’s mode to
command transfer mode
Commander 
Firmware
<Magic string 2>
Commander changes firmware’s mode to
keyboard event mode
Commander 
Firmware
<Magic string 3>
Commander requests that firmware installs
TA program into host
Firmware 
Commander
M;;<keyboard event>;
Firmware sends user’s keyboard inputs to
Commander
Firmware 
Commander
D;;<debug message>;
Firmware sends debug messages to
Commander
We are ready to launch!
Choose a target to
attachit
We want a portable charger
 We use the smartphone everywhere!!
 We spend much time with the smartphone
 But, it doesn’t have enough battery
 So, you should bring your charger or …
So many portable chargers…
So many battery rental services…
Hey,
You totally believe
your portable charger?
PowerShock!!
 It is a portable charger, but not normal
 It has IRON-HID inside it
 It can test Android smartphones
 It can test POS(Point-Of-Sale) Systems
 It can test your PC
It is a perfect weapon for
penetration testers
 Background and Architecture of
IRON-HID
 Hacking a Portable Charger
 Testing a Vulnerability of
the Smartphone
 Testing a Vulnerability of
the POS System and the PC
 Bonus
Tools you need
Inside of the portable charger
 It has a very simple architecture
 A charger module and battery cells
 High capacity model  More battery cells!
Cutting off battery cells
 Make some space for IRON-HIDs
 Battery cells are connected in parallel
 Cut off the cell connector carefully
Pin layouts of the charger module
USB Connector
for Input (recharging)
USB Connector
for Output (smartphone)
VCC
Data-
Data+
GND
VCC
Data-
Data+
GND
ID
(No.1)(No.5) (No.1)(No.4)
USB Datasheet
(VCC) (GND)
(VCC) (GND)
(VCC) (GND)
Micro Type A Type
Mini Type
Pin layouts of the IRON-HID
VCC
GND
TX
RX
CTS
RTS
Bluetooth Serial Module
(RN-42 Silver)
Teensy
D2 (RX)
D3 (TX)
GND
5V OUT
Bluetooth
TX
RX
GND
VCC
VCC
Data-
Data+
GND
IDTeensy
You got the power!!
* Rebirth of the Portable Charger *
 It activates the USB host function of
smart-phones
 You can connect various types of USB
peripherals such as a keyboard, a mass-
storage (USB drive), a mouse
USB OTG (On-The-Go)
* The final piece of the puzzle *
… ?! …
Smartphone PowerShockCables
… ?! …
Smartphone PowerShockCables
THIS IS NOT WHAT I WANT
OH…
Making a custom OTG cable
Connect the ID pin with the GND pin
 Background and Architecture of
IRON-HID
 Hacking a Portable Charger
 Testing a Vulnerability of
the Smartphone
 Testing a Vulnerability of
the POS System and the PC
 Bonus
Well-known Smartphone Vulnerability
Do you use
a pattern lock?
Do you set
a backup PIN?
Can you type
backup PINs
unlimitedly?
Yes
Yes
No
No
No Yes
You are in
danger
You are safe
(maybe…)
 Connect PowerShock to a smartphone
with the custom OTG cable and fire!!
 It is really hard to test the vulnerability
with your hands
 The PowerShock tests it instead of you
 It sends PINs quickly and automatically!!
Testing the vulnerability
If someone asks you to charge a phone,
charge it with PowerShock!!
Demo
(Let’s test the Android)
 Background and Architecture of
IRON-HID
 Hacking a Portable Charger
 Testing a Vulnerability of
the Smartphone
 Testing a Vulnerability of
the POS System and the PC
 Bonus
Inside of the POS Systems
Parallel Port USB + LAN
Serial Port PS/2
Many POS systems are PC-based!!
==
If the PowerShock plugs into the POS?
If POS system has a vulnerability,
you can grab card numbers!!
Recharge
Card Num:
XXXX-XXXX
Date:
XX/XXPOS System
PowerShock
USB
Demo
(Let’s test the POS system)
 Background and Architecture of
IRON-HID
 Hacking a Portable Charger
 Testing a Vulnerability of
the Smartphone
 Testing a Vulnerability of
the POS System and the PC
 Bonus
KeyboardShock
Attach IRON-HID onto USB keyboards
and give them to your colleagues
Find the key matrix with multimeter
The example of the keyboard matrix
ReaderShock
Attach IRON-HID onto card readers
and give them also to your colleagues
Then…
You will be the big brother for fun!!
Logging and sending keys
Receiving files and capturing
screenshots
Executing commands
C:> notepad no-mercy.txt
C:> format c: /q
Resources
 http://www.fourwalledcubicle.com
 http://cdemu.blogspot.com
 http://www.usb.org
 https://www.arduino.cc
 https://www.pjrc.com/teensy
I will be waiting for your email
@kkamagui1, hanseunghun@nsr.re.kr
Thank you !

More Related Content

PDF
HITBSecConf 2017-Shadow-Box-the Practical and Omnipotent Sandbox
PDF
BlackHat Asia 2017-Myth and Truth about Hypervisor-Based Kernel Protector
PDF
A Security Barrier Device That Can Protect Critical Data Regardless of OS or ...
PDF
Kernel Memory Protection by an Insertable Hypervisor which has VM Introspec...
PDF
Secret of Intel Management Engine by Igor Skochinsky
PDF
CODE BLUE 2014 : BadXNU, A rotten apple! by PEDRO VILAÇA
PPTX
Making and breaking security in embedded devices
PDF
NSC #2 - D2 01 - Andrea Allievi - Windows 8.1 Patch Protections
HITBSecConf 2017-Shadow-Box-the Practical and Omnipotent Sandbox
BlackHat Asia 2017-Myth and Truth about Hypervisor-Based Kernel Protector
A Security Barrier Device That Can Protect Critical Data Regardless of OS or ...
Kernel Memory Protection by an Insertable Hypervisor which has VM Introspec...
Secret of Intel Management Engine by Igor Skochinsky
CODE BLUE 2014 : BadXNU, A rotten apple! by PEDRO VILAÇA
Making and breaking security in embedded devices
NSC #2 - D2 01 - Andrea Allievi - Windows 8.1 Patch Protections

What's hot (20)

PPT
Live Memory Forensics on Android devices
PPTX
Halvar Flake: Why Johnny can’t tell if he is compromised
PDF
Hardware Reverse Engineering: From Boot to Root
PDF
IoT Getting Started with Intel® IoT Devkit
PDF
インテルMEの秘密 - チップセットに隠されたコードと、それが一体何をするかを見出す方法 - by イゴール・スコチンスキー - Igor Skochinsky
PDF
Linux Kernel Exploitation
PDF
CSW2017Richard Johnson_harnessing intel processor trace on windows for vulner...
PPTX
VM Forking and Hypervisor-based fuzzing
PDF
VM Forking and Hypervisor-based Fuzzing with Xen
PDF
Workshop su Android Kernel Hacking
PDF
Tapping into the core
PDF
Hyperforce: Hypervisor-enForced Execution of Security-Critical Code
PDF
Practical IoT Exploitation (DEFCON23 IoTVillage) - Lyon Yang
PDF
Implement Runtime Environments for HSA using LLVM
PDF
Android for Embedded Linux Developers
PDF
PDF
Shorten Device Boot Time for Automotive IVI and Navigation Systems
PDF
Android Forensics: Exploring Android Internals and Android Apps
PPTX
Lab Handson: Power your Creations with Intel Edison!
PDF
Extending Android with New Devices
Live Memory Forensics on Android devices
Halvar Flake: Why Johnny can’t tell if he is compromised
Hardware Reverse Engineering: From Boot to Root
IoT Getting Started with Intel® IoT Devkit
インテルMEの秘密 - チップセットに隠されたコードと、それが一体何をするかを見出す方法 - by イゴール・スコチンスキー - Igor Skochinsky
Linux Kernel Exploitation
CSW2017Richard Johnson_harnessing intel processor trace on windows for vulner...
VM Forking and Hypervisor-based fuzzing
VM Forking and Hypervisor-based Fuzzing with Xen
Workshop su Android Kernel Hacking
Tapping into the core
Hyperforce: Hypervisor-enForced Execution of Security-Critical Code
Practical IoT Exploitation (DEFCON23 IoTVillage) - Lyon Yang
Implement Runtime Environments for HSA using LLVM
Android for Embedded Linux Developers
Shorten Device Boot Time for Automotive IVI and Navigation Systems
Android Forensics: Exploring Android Internals and Android Apps
Lab Handson: Power your Creations with Intel Edison!
Extending Android with New Devices
Ad

Similar to HITBSecConf 2016-Create Your Own Bad Usb (20)

PDF
Smart TV Security - #1984 in 21st century -
PDF
KazHackStan Doing The IoT Penetration Testing - Yogesh Ojha
PDF
Hacking, Surveilling, and Deceiving Victims on Smart TV
PPTX
Lesson 2.5 Mobile Apps and Mobile Devices.pptx
PDF
Hyperchem Ma, badbarcode en_1109_nocomment-final
PDF
CheapSCAte: Attacking IoT with less than $60
PPTX
Practical Security Assessments of IoT Devices and Systems
DOCX
Laptop repairing course details
PDF
IoThings you don't even need to hack
PPTX
The Internet of Fails - Mark Stanislav, Senior Security Consultant, Rapid7
PDF
DEF CON 27 - DANIEL ROMERO and MARIO RIVAS - why you should fear your mundane...
PDF
IDF_Eclipse_Plugin_EclipseCon2020_v2.pdf
PPT
Snug2007 Presentation
DOCX
Resume
PDF
AVR HOW-TO GUIDE Interfacing SPI-Ethernet With AVR Slicker Contents At A Glance
PPTX
Arduino camera interfacing OV7670
PPTX
ELECTRONIC AND - Copy (1)
PDF
DEFCON-21-Koscher-Butler-The-Secret-Life-of-SIM-Cards-Updated.pdf
PPT
FPGA_prototyping proccesing with conclusion
PPTX
Connected Cars - Poster Child for the IoT Reality Check
Smart TV Security - #1984 in 21st century -
KazHackStan Doing The IoT Penetration Testing - Yogesh Ojha
Hacking, Surveilling, and Deceiving Victims on Smart TV
Lesson 2.5 Mobile Apps and Mobile Devices.pptx
Hyperchem Ma, badbarcode en_1109_nocomment-final
CheapSCAte: Attacking IoT with less than $60
Practical Security Assessments of IoT Devices and Systems
Laptop repairing course details
IoThings you don't even need to hack
The Internet of Fails - Mark Stanislav, Senior Security Consultant, Rapid7
DEF CON 27 - DANIEL ROMERO and MARIO RIVAS - why you should fear your mundane...
IDF_Eclipse_Plugin_EclipseCon2020_v2.pdf
Snug2007 Presentation
Resume
AVR HOW-TO GUIDE Interfacing SPI-Ethernet With AVR Slicker Contents At A Glance
Arduino camera interfacing OV7670
ELECTRONIC AND - Copy (1)
DEFCON-21-Koscher-Butler-The-Secret-Life-of-SIM-Cards-Updated.pdf
FPGA_prototyping proccesing with conclusion
Connected Cars - Poster Child for the IoT Reality Check
Ad

Recently uploaded (20)

PDF
Navsoft: AI-Powered Business Solutions & Custom Software Development
PDF
Upgrade and Innovation Strategies for SAP ERP Customers
PDF
Internet Downloader Manager (IDM) Crack 6.42 Build 42 Updates Latest 2025
PPTX
CHAPTER 2 - PM Management and IT Context
PPTX
Lecture 3: Operating Systems Introduction to Computer Hardware Systems
PDF
top salesforce developer skills in 2025.pdf
PDF
Design an Analysis of Algorithms II-SECS-1021-03
PPTX
Operating system designcfffgfgggggggvggggggggg
PDF
SAP S4 Hana Brochure 3 (PTS SYSTEMS AND SOLUTIONS)
PPTX
ManageIQ - Sprint 268 Review - Slide Deck
PDF
Why TechBuilder is the Future of Pickup and Delivery App Development (1).pdf
PPTX
ai tools demonstartion for schools and inter college
PPTX
history of c programming in notes for students .pptx
PPTX
Agentic AI Use Case- Contract Lifecycle Management (CLM).pptx
PDF
Odoo Companies in India – Driving Business Transformation.pdf
PDF
How to Migrate SBCGlobal Email to Yahoo Easily
PDF
Claude Code: Everyone is a 10x Developer - A Comprehensive AI-Powered CLI Tool
PDF
Nekopoi APK 2025 free lastest update
PPT
Introduction Database Management System for Course Database
PPTX
L1 - Introduction to python Backend.pptx
Navsoft: AI-Powered Business Solutions & Custom Software Development
Upgrade and Innovation Strategies for SAP ERP Customers
Internet Downloader Manager (IDM) Crack 6.42 Build 42 Updates Latest 2025
CHAPTER 2 - PM Management and IT Context
Lecture 3: Operating Systems Introduction to Computer Hardware Systems
top salesforce developer skills in 2025.pdf
Design an Analysis of Algorithms II-SECS-1021-03
Operating system designcfffgfgggggggvggggggggg
SAP S4 Hana Brochure 3 (PTS SYSTEMS AND SOLUTIONS)
ManageIQ - Sprint 268 Review - Slide Deck
Why TechBuilder is the Future of Pickup and Delivery App Development (1).pdf
ai tools demonstartion for schools and inter college
history of c programming in notes for students .pptx
Agentic AI Use Case- Contract Lifecycle Management (CLM).pptx
Odoo Companies in India – Driving Business Transformation.pdf
How to Migrate SBCGlobal Email to Yahoo Easily
Claude Code: Everyone is a 10x Developer - A Comprehensive AI-Powered CLI Tool
Nekopoi APK 2025 free lastest update
Introduction Database Management System for Course Database
L1 - Introduction to python Backend.pptx

HITBSecConf 2016-Create Your Own Bad Usb

  • 1. IRON-HID: Create your own bad USB Seunghun Han
  • 2. Who am I ?  Security researcher at NSR (National Security Research Institute of South Korea)  Operating system and firmware developer  Author of the book series titled “64-bit multi- core OS principles and structure, Vol.1 & 2”  a.k.a kkamagui (crow or raven in English) - @kkamagui1
  • 3.  Background and Architecture of IRON-HID  Hacking a Portable Charger  Testing a Vulnerability of a Smartphones  Testing a Vulnerability of a POS System and a PC  Bonus Contents
  • 4.  Background and Architecture of IRON-HID  Hacking a Portable Charger  Testing a Vulnerability of the Smartphone  Testing a Vulnerability of the POS System and the PC  Bonus
  • 5. IRON-HID Human Interface Device for making your tools IRON-HID Project? =
  • 6. Features  Custom device + firmware + test agent program + Android smartphone program  Various types of system exploitable  POS (Point-of-Sale), PC, Android, etc.  Lightweight embedded hardware-based  “Arduino” and “Teensy”  Open-source project!  https://github.com/kkamagui/IRON-HID
  • 7. Arduino vs Teensy Arduino Teensy Arduino Mega Teensy++ 2.0 Larger (Palm size) Smaller (Paper-clip size) 256KB Flash (ATmega16U2 + ATmega2560) 128KB Flash (AT90USB1286) 60 I/O Pins 46 I/O Pins Arduino Sketch IDE is available!
  • 9. Target POS systems, PCs, smartphones Embedded hardware (Low-powered hardware) Wireless module (WiFi, Bluetooth, Cellular, etc.) Receive results of commands Receive status of a proxy device Execute shell commands Send keyboard events Capture screens Get files Send commands and events Install a test agent program Receive results of commands (Results of shell, screens, files) Test agent (TA) program IRON-HID firmware (USB functions and a CD-ROM image) Custom device (in proxy devices) : IRON-HID component Security inspector’ smartphone IRON-HID commander program
  • 10. IRON-HID Firmware  Emulates keyboard and mass-storage device  It has one interrupt type endpoint for sending and logging keyboard events  It has two bulk type endpoints for installing the TA program  Makes a custom communication channel  It has one control type endpoint for making a tunnel between the TA program and the Commander program
  • 11. TA program and IRON-HID Commander  TA program processes requests of Commander  Command Executions, Screen Captures, File Transfers  Commander is an interface of pen-testers  It has control tab, command tab, key tab  Penetration tester uses each tab for testing security holes
  • 12. Direction Format Description Commander  TA program C;<command>; Commander requests that TA program executes a command and sends result to Commander Commander  TA program G;<filename>; Commander requests that TA program sends a file to Commander Commander  TA program S;; Commander requests that TA program captures a screenshot and sends it to Commander TA program  Commander F;;<64byte data>; TA program sends results to Commander Commander  Firmware <Magic string 1> Commander changes firmware’s mode to command transfer mode Commander  Firmware <Magic string 2> Commander changes firmware’s mode to keyboard event mode Commander  Firmware <Magic string 3> Commander requests that firmware installs TA program into host Firmware  Commander M;;<keyboard event>; Firmware sends user’s keyboard inputs to Commander Firmware  Commander D;;<debug message>; Firmware sends debug messages to Commander
  • 13. We are ready to launch! Choose a target to attachit
  • 14. We want a portable charger  We use the smartphone everywhere!!  We spend much time with the smartphone  But, it doesn’t have enough battery  So, you should bring your charger or …
  • 15. So many portable chargers…
  • 16. So many battery rental services…
  • 17. Hey, You totally believe your portable charger?
  • 18. PowerShock!!  It is a portable charger, but not normal  It has IRON-HID inside it  It can test Android smartphones  It can test POS(Point-Of-Sale) Systems  It can test your PC It is a perfect weapon for penetration testers
  • 19.  Background and Architecture of IRON-HID  Hacking a Portable Charger  Testing a Vulnerability of the Smartphone  Testing a Vulnerability of the POS System and the PC  Bonus
  • 21. Inside of the portable charger  It has a very simple architecture  A charger module and battery cells  High capacity model  More battery cells!
  • 22. Cutting off battery cells  Make some space for IRON-HIDs  Battery cells are connected in parallel  Cut off the cell connector carefully
  • 23. Pin layouts of the charger module USB Connector for Input (recharging) USB Connector for Output (smartphone) VCC Data- Data+ GND VCC Data- Data+ GND ID (No.1)(No.5) (No.1)(No.4)
  • 24. USB Datasheet (VCC) (GND) (VCC) (GND) (VCC) (GND) Micro Type A Type Mini Type
  • 25. Pin layouts of the IRON-HID VCC GND TX RX CTS RTS Bluetooth Serial Module (RN-42 Silver) Teensy D2 (RX) D3 (TX) GND 5V OUT Bluetooth TX RX GND VCC VCC Data- Data+ GND IDTeensy
  • 26. You got the power!! * Rebirth of the Portable Charger *
  • 27.  It activates the USB host function of smart-phones  You can connect various types of USB peripherals such as a keyboard, a mass- storage (USB drive), a mouse USB OTG (On-The-Go) * The final piece of the puzzle *
  • 28. … ?! … Smartphone PowerShockCables
  • 29. … ?! … Smartphone PowerShockCables THIS IS NOT WHAT I WANT OH…
  • 30. Making a custom OTG cable Connect the ID pin with the GND pin
  • 31.  Background and Architecture of IRON-HID  Hacking a Portable Charger  Testing a Vulnerability of the Smartphone  Testing a Vulnerability of the POS System and the PC  Bonus
  • 32. Well-known Smartphone Vulnerability Do you use a pattern lock? Do you set a backup PIN? Can you type backup PINs unlimitedly? Yes Yes No No No Yes You are in danger You are safe (maybe…)
  • 33.  Connect PowerShock to a smartphone with the custom OTG cable and fire!!  It is really hard to test the vulnerability with your hands  The PowerShock tests it instead of you  It sends PINs quickly and automatically!! Testing the vulnerability If someone asks you to charge a phone, charge it with PowerShock!!
  • 35.  Background and Architecture of IRON-HID  Hacking a Portable Charger  Testing a Vulnerability of the Smartphone  Testing a Vulnerability of the POS System and the PC  Bonus
  • 36. Inside of the POS Systems Parallel Port USB + LAN Serial Port PS/2 Many POS systems are PC-based!! ==
  • 37. If the PowerShock plugs into the POS? If POS system has a vulnerability, you can grab card numbers!! Recharge Card Num: XXXX-XXXX Date: XX/XXPOS System PowerShock USB
  • 38. Demo (Let’s test the POS system)
  • 39.  Background and Architecture of IRON-HID  Hacking a Portable Charger  Testing a Vulnerability of the Smartphone  Testing a Vulnerability of the POS System and the PC  Bonus
  • 40. KeyboardShock Attach IRON-HID onto USB keyboards and give them to your colleagues
  • 41. Find the key matrix with multimeter
  • 42. The example of the keyboard matrix
  • 43. ReaderShock Attach IRON-HID onto card readers and give them also to your colleagues
  • 44. Then… You will be the big brother for fun!! Logging and sending keys Receiving files and capturing screenshots Executing commands C:> notepad no-mercy.txt C:> format c: /q
  • 45. Resources  http://www.fourwalledcubicle.com  http://cdemu.blogspot.com  http://www.usb.org  https://www.arduino.cc  https://www.pjrc.com/teensy
  • 46. I will be waiting for your email @kkamagui1, hanseunghun@nsr.re.kr Thank you !