SkillAgentSearch skills...

WiFiDuck

Wireless keystroke injection attack platform

Install / Use

/learn @SpacehuhnTech/WiFiDuck
About this skill

Quality Score

0/100

Supported Platforms

Universal

README

WiFi Duck

<p align="center"> <img alt="WiFi Duck Logo" src="img/thumbnail.jpg" width="640"> </p>

👉 Visit wifiduck.com for an improved documentation.

Want to learn more about BadUSBs? Check out our online course: learnbadusb.com


About

This open-source project aims to provide a user-friendly tool to learn about keystroke injection attacks and 'BadUSBs'.

By emulating a USB keyboard, tools like this can gain full access to any computer with a USB port in a matter of seconds!
This is made possible by the fact that keyboards are trusted by computers. You can have full control over a computer with just a keyboard.
A BadUSB pretends to be a keyboard to the computer to send keystrokes. But unlike a human, it can type hundreds of characters per second. By using a simple scripting language, it's easy to make BadUSBs type whatever you want.

With the WiFi Duck, you can simply connect via WiFi to manage all scripts from within a web interface. This means that, unlike other BadUSBs, you don't need to install an app, log in, compile or copy scripts to an SD card.

Usage

<p align="center"> <a href="https://www.youtube.com/watch?v=sSJuGXd8QRk"> <img alt="WiFi Duck Video Thumbnail" src="https://raw.githubusercontent.com/spacehuhn/WiFiDuck/master/img/showcase.gif" width="400"> <br> <b>Watch the full video</b> </a> </p>
  1. Plug in your WiFi Duck
  2. Connect to the WiFi network wifiduck with the password wifiduck
  3. Open a browser and visit 192.168.4.1
  4. Write, save and run your first Ducky Script
  5. [Recommended] Open Settings (top right corner) and update SSID and password

Help I forgot the password: Flash the ESP8266, but make sure that you select Erase Flash: Sketch + WiFi Settings under Tools in the Arduino IDE.

If you have further questions, check out the issue section.

Support us

Hey, do you like this kind of project?
It took a huge amount of effort to create!

To make sure we can keep working on free and open-source projects like this,
please consider becoming a :heart: Sponsor or support us via :coffee: Ko-fi.

Visit spacehuhn.com to learn more about us. :chicken:

<a href='https://ko-fi.com/G2G75FA4V' target='_blank'><img height='36' style='border:0px;height:36px;' src='https://cdn.ko-fi.com/cdn/kofi2.png?v=3' border='0' alt='Buy Me a Coffee at ko-fi.com' /></a>

Buy Hardware

Malduino W

<p align="center"> <a href="https://maltronics.com/collections/malduinos/products/malduino-w"> <img alt="Malduino W" src="img/malw.jpg" width="400"> <br> <b>Go to Maltronics.com</b> </a> </p>

A nicely encased, inconspicuous looking BadUSB by Maltronics.
Having USB-A and USB-C makes it compatible with all kind of devices.
It comes flashed with the WiFi Duck firmware and works plug and play.
ℹ️ Documentation can be found here

DSTIKE WiFi Duck

<p align="center"> <a href="https://dstike.com/collections/frontpage/products/dstike-wifi-duck"> <img alt="DSTIKE WiFi Duck" src="img/dstikeboard.jpg" width="400"> <br> <b>Got to DSTIKE.com</b> </a> </p>

A custom designed development board which comes preflashed with this software by Travis Lin.

You can update the ESP8266 over the air and flash the Atmega32u4 via Arduino, all while enclosed in its neat little case.
📺 Watch the How to Update Tutorial here.

If you wish to develop your own software or help improve this one, the 8-bit DIP-switch makes it easy for you to access the Atmega32u4 or ESP8266 independently. For more info see Flash Software.

| Mode | Atmega32u4 | ESP8266 | DIP-switch | Image | | --- | --- | --- | --- | --- | | Default Operating Mode | USB | On | 10101101 | <img alt="dstike wifi duck work mode" src="img/dstike_normal.jpg" height="50px"> | | Atmega32u4 Flash Mode | USB | Off |10101010 | <img alt="dstike wifi duck atmega mode" src="img/dstike_atmega.jpg" height="50px"> | | ESP8266 Flash Mode | Off | USB | 01011101 | <img alt="dstike wifi duck esp8266 mode" src="img/dstike_esp8266.jpg" height="50px"> |

DIY Hardware

<p align="center"> <a href="https://www.youtube.com/watch?v=-Gmv98tUiYw"> <img alt="WiFi Duck Hardware Tutorial Video Thumbnail" src="https://img.youtube.com/vi/-Gmv98tUiYw/maxresdefault.jpg" width="400"> <br> <b>Watch the video tutorial</b> </a> </p>

To build a WiFi Duck yourself, you need the following hardware:

  • An Atmega32u4 development board (see the list below)
  • An ESP8266 or ESP8285 development board (see the list below)
  • Optional: A single Neopixel (WS2812b) or Dotstar (APA102) LED

To flash the microcontrollers you need a computer and USB cable.

If you're a beginner, it's recommended you wire everything together on a breadboard first!
In this case, you'd also need a breadboard with a couple of jumper wires.

If you wish to solder everything together into a small gadget, you also need soldering equipment.

You can use any Atmega32u4 or ESP8266 based development board, but if you have no idea where to start, here's a list.
:warning: Keep in mind that you will need both microcontrollers!
The Atmega32u4 to act as USB keyboard, and the ESP8266 for WiFi.

Atmega32u4 Development Boards

  • Arduino Leonardo
  • Arduino Micro
  • Sparkfun Pro Micro
  • CJMCU Beetle
  • SS Micro

:bangbang: DIGISPARK or other ATTINY85 based development boards, are NOT supported! :bangbang:

ESP8266 Development Boards

  • NodeMCU 1.0 (ESP-12E Module)
  • LOLIN(WEMOS) D1 Mini
  • LOLIN(WEMOS) D1 Mini Pro
  • LOLIN(WEMOS) D1 Mini Lite

Connections

A map of pins that need to be connected.

| ESP8266 | Atmega32u4 | | ------- | ---------- | | D1 alias GPIO 5 | 3 alias SCL | | D2 alias GPIO 4 | 2 alias SDA | | GND | GND |

Ideally, you want the Atmega32u4 to power the ESP8266, so it can run on one USB connection, instead of having to always plug in both.
To share power between both chips, you need a voltage regulator that takes 5V and turns it into 3.3V.
That's because USB runs on 5V, but the ESP8266 only takes 3.3V. Luckily most development boards have such a regulator on board.
DO NOT CONNECT ESP8266 VCC to the ATMEGA32u4 VCC, it will kill the ESP826. Instead look for the 5V or VIN pin on your dev board, as those will be connected to the regulator.

| ESP8266 Dev Board | Atmega32u4 | | ----------------- | -------------------- | | 5V or VIN | RAW, 5V or VIN |

To add a Neopixel (WS2812b) LED:

| Atmega32u4 | Neopixel LED | | ---------- | ------------ | | 7* | DI alias Data, In | | 5V alias VCC | 5V alias VCC | | GND | GND |

* The Data pin can be changed later on in the software, pin 7 is just an example.

Example of a DIY build using a Wemos d1 mini, a Pro Micro and a Neopixel LED

PCB

To make the DIY process easier, I designed a little PCB.

You solder a Pro Micro board on one side and a Wemos d1 mini or NodeMCU board (depending on the PCB) on the other side.
That's it. You don't even have to solder all pins, just the ones mentioned in Connections, excluding the LED.

<p align="center"> <img alt="PCB Layout" src="img/pcbs.jpg" width="400"> </p> <p align="center"> <img alt="Soldered PCBs" src="img/pcbs_soldered.jpg" width="400"> </p>

Design Files:

  • Pro Micro + Wemos d1 mini: https://easyeda.com/Spacehuhn/wifi-duck
  • Pro Micro + NodeMCU: https://easyeda.com/Spacehuhn/diy-wifi-duck-pro-micro-nodemcu

You can also order them on OSHPark:

  • Pro Micro + Wemos d1 mini: https://oshpark.com/shared_projects/ARCED9je
  • Pro Micro + NodeMCU: https://oshpark.com/shared_projects/XUuUH1HB

Flash Software

<p align="center"> <a href="https://youtu.be/VQAzxBefLZo"> <img alt="WiFi Duck Hardware Tutorial Video Thumbnail" src="https://img.youtube.com/vi/VQAzxBefLZo/maxresdefault.jpg" width="400"> <br> <b>Watch the video tutorial</b> </a> </p>
  1. Download and install the Arduino IDE.
  2. Start the Arduino IDE, go to File > Preferences.
  3. At Additional Board Manager ULRs enter https://raw.githubusercontent.com/SpacehuhnTech/arduino/main/package_spacehuhn_index.json. You can add multiple URLs, separating them with commas.
  4. Go to Tools > Board > Board Manager, search for wifi duck and install WiFi Duck AVR Boards and WiFi Duck ESP8266 Boards.
  5. Download and extract this repository or [git clone](https://github.com/spacehu
View on GitHub
GitHub Stars2.9k
CategoryDevelopment
Updated8h ago
Forks442

Languages

C++

Security Score

100/100

Audited on Mar 28, 2026

No findings