Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Sign up for free
Menu
Search
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Pricing
Search
Sign in
Sign up for free
BadUSBを作ろう / how to make your own BadUSB and Ke...
Search
Sponsored
·
SiteGround - Reliable hosting with speed, security, and support you can count on.
→
mu2in
June 29, 2019
Technology
520
0
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
BadUSBを作ろう / how to make your own BadUSB and Keyboard
BadUSBを作ってみた話です。
「オープンセミナー2019@岡山 懇親会」でのLT資料です。
https://oso.connpass.com/event/129843/
mu2in
June 29, 2019
More Decks by mu2in
See All by mu2in
スイッチ沼へようこそ / Welcome to the Key Switch Rabbit Hole
mu2in
0
260
Astroで サクッと作るWebサイト(仮) / Quickly create webpages with Astro
mu2in
1
350
CircuitPythonで動く自作キーボードの紹介 / Introducing Self-Made Keyboard from CircuitPython
mu2in
0
2.7k
スクリーンセーバーキラーを作ってみた / Making Mouse Jiggler with CircuitPython
mu2in
0
900
Pythonで始める自作キーボード入門 / Introduction to Self-Made Keyboard from Python
mu2in
1
2.4k
私のエンジニアライフHacks / my-engineer-lifehacks
mu2in
0
600
PyCon mini Hiroshima 2018 でノベルティを作ってみた話/pycon-mini-hiroshima-2018-novelty
mu2in
1
1.8k
家に帰ると灼熱地獄なのをなんとかする/obniz-universal-remote-control
mu2in
0
1k
最近ハマってるゲームとか
mu2in
0
830
Other Decks in Technology
See All in Technology
Rustuna: Rustによる高速なOptuna実装
pfn
PRO
0
160
DGX Spark でどこまでハッキングができるのか?
kash1064
2
1.2k
M5Stackで作る BLEマウス GPSログの世界
tomokusaba
0
360
Webの常識が通じないHTMLメールのダークモード
teamlab
PRO
0
110
実践!Cloud Run ハンズオン!! / Cloud Run handson
y0hgi
2
260
Benchmarking Disaggregated Serving on vLLM + Dynamo with a Real Coding-Agent Workload
nttcom
0
160
LocalStack を使ったサーバーレスアプリケーション開発 / Serverless Development with LocalStack
kakakakakku
1
440
継続的なAIコスト最適化
bgpat
1
300
スキマバイトという雇用形態は存在しないので、雇用期間1日のアルバイト契約を事業者とワーカーが結ぶ手続きを支えるのがタイミーなんです
akitoshiga
0
180
go-sqletch
moznion
0
140
Snapshot Testing in Practice: Predictable and Reliable SwiftUI Views
fespinoza
0
210
夫婦で子育てするための育児標準化
codmoninc
PRO
0
210
Featured
See All Featured
A designer walks into a library…
pauljervisheath
211
25k
Design of three-dimensional binary manipulators for pick-and-place task avoiding obstacles (IECON2024)
konakalab
0
620
Designing Dashboards & Data Visualisations in Web Apps
destraynor
232
55k
Exploring the relationship between traditional SERPs and Gen AI search
raygrieselhuber
PRO
4
4.4k
Leadership Guide Workshop - DevTernity 2021
reverentgeek
1
400
My Coaching Mixtape
mlcsv
0
350
Intergalactic Javascript Robots from Outer Space
tanoku
273
28k
From Legacy to Launchpad: Building Startup-Ready Communities
dugsong
0
350
The Impact of AI in SEO - AI Overviews June 2024 Edition
aleyda
6
1.2k
Believing is Seeing
oripsolob
1
240
WENDY [Excerpt]
tessaabrams
14
40k
The MySQL Ecosystem @ GitHub 2015
samlambert
251
13k
Transcript
#BE64#Λ࡞Ζ͏ʂ Φʔϓϯηϛφʔ!Ԭࢁ࠙ձ
‣ @mu2in ‣ JavaΤϯδχΞ6 ‣ ͖ͳϓϩάϥϛϯάݴޠɿJavaScript ‣ ࢀՃίϛϡχςΟ ▹ ͍͢͝ౡ
(ਫ༵͘͘ձ) ओ࠵ ▹ PyCon mini Hiroshima 2019 ▹ Φʔϓϯηϛφʔ2020@ౡ ࣗݾհ
BadUSBͱ ‣ USBϙʔτʹૠ͚ͩ͢ͰPCյͤΔͭ
BadUSBͱ ‣ USBϙʔτʹૠ͚ͩ͢ͰPCյͤΔͭ ▹ ͦΕUSB Killer
BadUSBͱ ‣ 20148݄ʹ։ൃऀձٞ Black Hat 2014 USAͰ ൃද͞Εͨ߈ܸख๏ ▹ USBͷϑΝʔϜΣΞΛॻ͖͑Δ͜ͱʹΑͬͯɺෆਖ਼ͳ
ϓϩάϥϜΛ࣮ߦ͢Δ͜ͱ͕Ͱ͖Δɻ ▹ Өڹ͕େ͖͍ͨΊɺ࣮ূίʔυΛެ։͞Ε͍ͯͳ͔ͬͨɻ ‣ ཌ݄ͷ9݄ʹߦΘΕͨηΩϡϦςΟձٞͷ DerbyCon 4.0 Ͱผͷݚڀऀ͕GitHubʹެ։ ▹ USBΩʔϘʔυͷϑΝʔϜΣΞΛॻ͖͑ͯɺ উखʹΩʔΛೖྗͤ͞ΔσϞ͕ߦΘΕͨɻ
Ͱ࡞ͬͯΈ·͠ΐ͏
༻ҙ͢Δͷ • CJMCU Beetle ▹ Arduino LeonardoޓͷϚΠίϯ • HID(ώϡʔϚϯΠϯλʔϑΣʔεσ όΠε)ͱͯ͠ৼ͏͜ͱ͕Ͱ͖Δ
• USBΦε͕͍ͯΔͨΊૠ͠Մೳ • ී௨ͷUSBϝϞϦΑΓখ͍͞ • AmazonͰ¥1,000 தࠃ༌ೖ¥300
ϚΠίϯʹBadUSBͷίʔυΛॻ͖ࠐΉ
USBΛૠ͚ͩ͢ͰϩάΞτ
͜ΕͰօ͞Μ#BE64#͕࡞Ε·͢ʂ
ण࢘ΩʔϘʔυΛ࡞Ζ͏ʂ
• Ruby Kaigi 2017Ͱͬͨण࢘ΩʔΩϟοϓ ( Misoca͞ΜϒʔεΑΓ ) • CJMCU Beetle
• Cherry MXΩʔεΠον • Cherry MX Switch Breakout • μΠΦʔυɺ߅ • ϐϯϔομ • LED • δϟϯύʔϫΠϠʔ • ϒϨουϘʔυ ༻ҙ͢Δͷ
ΈཱͯΔ
#include <Keyboard.h> #define PIN_KEYSW (0) int preState; int currentState; void
setup() { pinMode(PIN_KEYSW, INPUT); preState = HIGH; Keyboard.begin(); } void loop() { currentState = digitalRead(PIN_KEYSW); if((currentState != preState) && (currentState == HIGH)) { Keyboard.press(KEY_LEFT_ALT); Keyboard.print("d83c"); Keyboard.print("df63"); delay(10); Keyboard.releaseAll(); } preState = currentState; delay(10); } ण࢘ΩʔϘʔυͷίʔυΛॻ͖͜Ή Ωʔ͕ԡ͞ΕͨΒ 6OJDPEFೖྗͰ ͷαϩήʔτϖΞΛೖྗ
MacͷೖྗιʔεΛมߋ
ण࢘ΩʔΛಈ͔͢
·ͱΊ ‣ BadUSBૠ͚ͩ͢ͰΩʔೖྗΛ࣮ߦͰ͖ͯɺ ϚΫϩʹศརɻ ‣ ࣗ࡞ΩʔϘʔυ࡞Γָ͍͠ɻ ‣ ৭ΜͳΩʔϘʔυ࡞Γ͍ͨʢপʣ ‣ ѱ͍USB͚ͩͲɺ͍ํ࣍ୈͰ৭ʑͳ͜ͱ͕
Ͱ͖Δͧʂ