
USB-кейлоггер на базе ESP32-S3 с Wi-Fi, легко собираемый своими руками из широкодоступных компонентов.

DuckLogger — USB-клавиатурный логгер на базе ESP32-S3. Он записывает нажатия клавиш в текстовый файл и предоставляет беспроводной доступ для скачивания логов через встроенную точку доступа Wi-Fi. Для повторения этого проекта не требуется собственная печатная плата. Используемое здесь оборудование стоит менее $10 в сумме на таких площадках, как Aliexpress.

Доступ к веб-интерфейсу:
http://192.168.4.1/
(В режиме точки доступа)


| ESP32-S3 | CH9350 |
|---|---|
| 5V | 5V |
| GND | GND |
| GP1 | TX |
| GP2 | RX |
CH9350 поддерживает несколько режимов работы, которые настраиваются с помощью встроенных DIP-переключателей.

Установите S0 в положение GND (0), а все остальные переключатели оставьте в противоположном положении (1). Это включает режим USB Host, который преобразует ввод с USB-клавиатуры в последовательные данные, передаваемые через UART со скоростью по умолчанию 115200 бод.
DuckLogger написан на MicroPython. Прошейте вашу плату прошивкой MicroPython. Инструкции по прошивке здесь.
После прошивки отключите и снова подключите плату через USB.
git clone https://github.com/Itsmmdoha/duckLogger.git
cd duckLogger
Убедитесь, что плата подключена через USB, затем выполните:
python flasher.py
Программа flasher автоматически:
mpremote и необходимые пакеты MicroPython на платуindex.html и скопирует все файлы на платуПодключите USB-клавиатуру к модулю CH9350 HID.
Подключите ESP32-S3 SuperMini к целевому ПК с помощью кабеля USB-C — USB-A.
Устройство автоматически:
Если включён режим точки доступа (по умолчанию), подключитесь к точке доступа Wi-Fi (пароль по умолчанию: duckPass1234) и откройте:
http://192.168.4.1/
для доступа к центру управления и контроля.
DuckLogger в настоящее время поддерживает основной набор команд DuckyScript для внедрения полезных нагрузок:
.
├── 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
Этот проект включает Microdot от Miguel Grinberg (лицензия MIT):
https://github.com/miguelgrinberg/microdot
| Команда | Описание | Пример |
|---|
DELAY | Приостанавливает выполнение на указанное количество миллисекунд. | DELAY 500 |
STRING | Печатает последовательность символов точно так, как написано. | STRING Hello, World! |
| Комбинации клавиш | Отправляет одновременные нажатия клавиш. | CTRL SHIFT ESC или ALT i |
| Одиночные клавиши | Отправляет отдельные специальные клавиши. | ENTER или TAB |