
Ein ESP32-S3-basierter USB-Keylogger mit WLAN, einfach selbst zu bauen mit weit verbreiteter Hardware.

DuckLogger ist ein USB-Tastenlogger auf Basis des ESP32-S3. Es zeichnet Tastatureingaben in einer Textdatei auf und bietet drahtlosen Zugriff zum Herunterladen der Protokolle über einen integrierten Wi-Fi-Access-Point. Für die Nachbildung dieses Projekts ist keine benutzerdefinierte Platine erforderlich. Die verwendete Hardware kostet insgesamt weniger als 10 $ auf Plattformen wie Aliexpress.

Greifen Sie auf die Web-UI unter folgender Adresse zu:
http://192.168.4.1/
(Im Access-Point-Modus)


| ESP32-S3 | CH9350 |
|---|---|
| 5V | 5V |
| GND | GND |
| GP1 | TX |
| GP2 | RX |
Das CH9350 unterstützt mehrere Betriebsmodi, die über die integrierten DIP-Schalter konfiguriert werden.

Setzen Sie S0 auf die GND-Position (0) und belassen Sie alle anderen Schalter in der entgegengesetzten Position (1). Dies aktiviert den USB-Host-Modus, der USB-Tastatureingaben in serielle Daten umwandelt, die über UART mit einer Standardbaudrate von 115200 gesendet werden.
DuckLogger ist in MicroPython geschrieben. Flashen Sie Ihr Board mit der MicroPython-Firmware. Eine Anleitung zum Flashen finden Sie hier.
Nach dem Flashen trennen Sie das Board vom USB und schließen es wieder an.
git clone https://github.com/Itsmmdoha/duckLogger.git
cd duckLogger
Stellen Sie sicher, dass Ihr Board per USB angeschlossen ist, und führen Sie dann Folgendes aus:
python flasher.py
Der Flasher wird automatisch:
mpremote und die erforderlichen MicroPython-Pakete auf dem Board installieren.index.html komprimieren und alle Dateien auf das Board kopieren.Wenn Sie sich im Access-Point-Modus (Standard) befinden, verbinden Sie sich mit dem Wi-Fi-Access-Point (Standard-Passwort: duckPass1234) und öffnen Sie:
http://192.168.4.1/
um auf das Befehls- und Kontrollzentrum zuzugreifen.
DuckLogger unterstützt derzeit einen Basissatz von DuckyScript-Befehlen für die Nutzlastinjektion:
.
├── 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
Dieses Projekt enthält Microdot von Miguel Grinberg (MIT-Lizenz):
https://github.com/miguelgrinberg/microdot
| Befehl | Beschreibung | Beispiel |
|---|
DELAY | Hält die Ausführung für eine bestimmte Anzahl von Millisekunden an. | DELAY 500 |
STRING | Gibt eine Zeichenfolge genau wie geschrieben aus. | STRING Hallo, Welt! |
| Tastenkombinationen | Sendet gleichzeitige Tastenanschläge. | STRG UMSCHALT ESC oder ALT i |
| Einzeltasten | Sendet einzelne Sondertasten. | EINGABE oder TAB |