What is the ESP8266?
The ESP8266
is an integrated circuit with a microcontroller
developed by Espressif
.
It allows WiFi
connectivity at a lower cost, with relatively easy and accessible programming.
It supports C++
(Arduino IDE), C
with the SDK
esp-open-sdk (GCC), or even MicroPython (Python for microcontrollers).
What is the WiFi Nugget?
he WiFi Nugget is a small printed circuit board containing an ESP8266
as well as a small neopixel
screen shaped like a cat.
In addition to being aesthetically cute, it allows for a pre-assembled ESP8266
(or ESP32S2
for the USB Nugget.) with pre-flashed firmware WiFi Deauth Detector.
This project is open-source
and semi-home made. It’s perfect for those looking to delve into WiFi attacks
.
You’re by no means required to use the WiFi nugget to utilize an ESP8266
, and you’re free to complement its use with an Arduino
/MicroPython
.
Getting started with ESPtool
ESPtool
is an open-source
tool developed in python
by Espressif
to communicate with the ROM bootloader
(Read Only Memory); it’s the first thing executed when the chip is powered on.
You can find this tool on their github with pip install esptool
or even in the AUR.
Once the download of ESPtool
is complete, we can use it to push the desired firmware.
For instance, you can find the deauther firmware here, which allows you to easily monitor attacks
.
Determining your serial port
To push our firmware onto our chip, we need to know the serial port
of our device.
To do this, we simply need to list all the serial ports:
Deleting the old firmware
Before even starting the firmware writing process, we need to delete
the old one (if present).
We will use the erase_flash
option of esptool to perform this action.
We’ll need to input the --chip
parameter specifying the exact version of our ESP and -p
followed by the SERIAL_PORT
.
If you don’t know it/aren’t sure about it, entering an incorrect version will result in an error containing the correct one.
When executing the command, if the SERIAL_PORT
is not found/is listed as non-existent, switch to root.
Writing the firmware
We can now flash the firmware using the write_flash
option.
The -z
option determines the address where the firmware will be written. Here, we have 0x000000
representing the first byte. We could also use the parameter -z 0x0
; this alternative is preferable as it avoids specifying the interface (8bit, 16bit, 32bit, etc.).
I personally use the firmware from HakCat-Tech in this example, but feel free to use whichever one you’d like. If you don’t have a WiFi Nugget, you can simply use the firmware from deauther.
Accessing the deauther graphical interface
As you can see, I’ve pushed the article even though I haven’t finished it, like 90% of what I have on this web server, sorry.