
ESP32-S3 기반의 WiFi 지원 USB 키로거, 널리 사용 가능한 하드웨어로 쉽게 DIY할 수 있습니다.

DuckLogger은 ESP32-S3 기반 USB 키 로거입니다. 키 입력을 텍스트 파일에 기록하며, 내장 Wi-Fi 액세스 포인트를 통해 무선으로 로그를 다운로드할 수 있습니다. 이 프로젝트를 재현하는 데 커스텀 PCB가 필요하지 않습니다. 여기에 사용된 하드웨어는 Aliexpress 등에서 총 10달러 미만입니다.

웹 UI에 접속하려면:
http://192.168.4.1/
(액세스 포인트 모드일 때)


| ESP32-S3 | CH9350 |
|---|---|
| 5V | 5V |
| GND | GND |
| GP1 | TX |
| GP2 | RX |
CH9350은 여러 작동 모드를 지원하며, 온보드 DIP 스위치를 사용하여 설정합니다.

S0를 GND 위치(0)로 설정하고 다른 모든 스위치는 반대 위치(1)로 유지합니다. 이렇게 하면 USB 호스트 모드가 활성화되어 USB 키보드 입력이 기본 전송 속도 115200의 UART를 통해 직렬 데이터로 변환됩니다.
DuckLogger는 MicroPython으로 작성되었습니다. 보드에 MicroPython 펌웨어를 플래싱하세요. 플래싱 지침은 여기에서 확인할 수 있습니다.
플래싱 후 보드를 USB에서 분리했다가 다시 연결하세요.
git clone https://github.com/Itsmmdoha/duckLogger.git
cd duckLogger
보드가 USB로 연결되어 있는지 확인한 후 다음을 실행하세요:
python flasher.py
플래셔가 자동으로 다음을 수행합니다:
mpremote 및 필요한 MicroPython 패키지 설치index.html 압축 및 모든 파일을 보드에 복사USB 키보드를 CH9350 HID 모듈에 연결합니다.
ESP32-S3 SuperMini를 USB-C to USB-A 케이블을 사용하여 대상 PC에 연결합니다.
장치가 자동으로 다음을 수행합니다:
액세스 포인트 모드(기본값)인 경우 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
이 프로젝트는 Miguel Grinberg의 Microdot(MIT 라이선스)을 포함합니다:
https://github.com/miguelgrinberg/microdot
| 명령어 | 설명 | 예시 |
|---|
DELAY | 지정된 밀리초 동안 실행을 일시 중지합니다. | DELAY 500 |
STRING | 작성된 그대로의 문자 시퀀스를 입력합니다. | STRING Hello, World! |
| 키 조합 | 동시 키 입력을 전송합니다. | CTRL SHIFT ESC 또는 ALT i |
| 단일 키 | 개별 특수 키를 전송합니다. | ENTER 또는 TAB |