
Un keylogger USB basé sur ESP32-S3 avec WiFi, facile à fabriquer soi-même avec du matériel couramment disponible.

DuckLogger est un enregistreur de frappe USB basé sur ESP32-S3. Il enregistre les frappes dans un fichier texte et fournit un accès sans fil pour télécharger les journaux via un point d'accès Wi-Fi intégré. La reproduction de ce projet ne nécessite pas de PCB personnalisé. Le matériel utilisé coûte moins de 10 $ au total sur des sites comme Aliexpress.

Accédez à l'interface Web à :
http://192.168.4.1/
(En mode Point d'accès)


| ESP32-S3 | CH9350 |
|---|---|
| 5V | 5V |
| GND | GND |
| GP1 | TX |
| GP2 | RX |
Le CH9350 prend en charge plusieurs modes de fonctionnement, configurés à l'aide des interrupteurs DIP intégrés.

Réglez S0 sur la position GND (0) et maintenez tous les autres interrupteurs en position opposée (1). Cela active le mode hôte USB, qui convertit les entrées du clavier USB en données série envoyées via UART à un débit en bauds par défaut de 115200.
DuckLogger est écrit en MicroPython. Flashez votre carte avec le firmware MicroPython. Trouvez les instructions de flashage ici.
Après le flashage, déconnectez et reconnectez la carte via USB.
git clone https://github.com/Itsmmdoha/duckLogger.git
cd duckLogger
Assurez-vous que votre carte est connectée via USB, puis exécutez :
python flasher.py
Le flasher va automatiquement :
mpremote et les paquets MicroPython requis sur la carteindex.html et copier tous les fichiers sur la carteBranchez le clavier USB sur le module HID CH9350.
Connectez l'ESP32-S3 SuperMini au PC cible à l'aide d'un câble USB-C vers USB-A.
L'appareil va automatiquement :
En mode Point d'accès (par défaut), connectez-vous au point d'accès Wi-Fi (mot de passe par défaut : duckPass1234) et ouvrez :
http://192.168.4.1/
Pour accéder au centre de commande et de contrôle.
DuckLogger prend actuellement en charge un ensemble de base de commandes DuckyScript pour l'injection de payload :
.
├── flasher.py
├── index.html
├── lib
│ ├── access_point.py
│ ├── api.py
│ ├── duckyscript.py
│ ├── keyboard.py
│ ├── key_led.py
│ ├── logger.py
│ ├── mapper.py
│ ├── microdot
│ │ ├── helpers.py
│ │ ├── __init__.py
│ │ ├── microdot.py
│ │ └── websocket.py
│ ├── queue.py
│ ├── settings.py
│ ├── uart_buffer.py
│ ├── wifi.py
│ └── wifi_radio.py
├── LICENSE
├── main.py
├── README.md
├── resources.md
└── settings.json
Ce projet inclut Microdot par Miguel Grinberg (licence MIT) :
https://github.com/miguelgrinberg/microdot
| Commande | Description | Exemple |
|---|
DELAY | Pause l'exécution pendant un nombre spécifié de millisecondes. | DELAY 500 |
STRING | Tape une séquence de caractères exactement comme écrit. | STRING Hello, World! |
| Combinaisons de touches | Envoie des frappes simultanées. | CTRL SHIFT ESC ou ALT i |
| Touches uniques | Envoie des touches spéciales individuelles. | ENTER ou TAB |