Inject Packets with an ESP8266

[Kripthor] sent us a link to his blog where he writes the Hello World of low-level networking. Basically he’s constructing his own packet and sending it. By itself this isn’t a bad thing. You could use this power for all sorts of networks-diagnostic good. And so, despite the ominous name of his blog post “ESP8266 Jamming”, he’s not really doing anything that bad — he’s just creating many fake WiFi beacon frames and sending them out every so often.

Which can apparently do bad things to some vulnerable routers. Who knew? Want to test yours?

Naturally we wanted to see how he was doing it, and we opened up the Arduino code in GitHub. It turns out that Espressif has written a wifi_send_pkt_freedom() function that just sends out whatever packet you’d like to the network. That was easy.

It also turns out that the ESP8266 will enter monitor mode, where it listens to all WiFi traffic regardless of the MAC address that it’s directed toward. [Pulkin] seems to have done the work for us and posted the code in his GitHub. Now things get nasty. Combining promiscuous monitor mode with some carefully constructed management frames can end up with a classic WiFi deauth denial-of-service attack on a $2 piece of hardware.

We think it’s tremendously cool that the ESP8266 packs such power, and we beg you all to use it responsibly. The last thing we want to see is the world littered with WiFi-DOS throwies. And the last thing you’d want is a visit from the FCC.

Better, Smaller WiFi Throwies

Because the world doesn’t have enough electronic junk floating around, [Victor] has improved the WiFi Throwie.

A decade ago, when strong, cheap magnets, bright LEDs, and small coin cell batteries were materials fresh to hacking, someone had a great idea: tape all these items up and throw them on bridges and overpasses. The LED throwie was born, and while we’re sure the biggest installation of LED throwies looked cool, it’s really just a small-scale environmental disaster.

Since then, the ESP8266 was created, and the world now has a tiny WiFi-enabled computer that’s the size of a postage stamp. Yes, WiFi throwies already exist, but coin cells don’t work with the ESP. This means the compact and tiny ESPs are laden down with heavy lithium cells. [Victor] had a better solution: tiny lithium batteries for quadcopters exist, so why not use those?

[Victor] ended up using a small 100mAh 3.7V Lipo battery from a tiny quadcopter for this build. 100mAh isn’t a lot, but in sleep mode, the ESP only uses about 15mAh, or about 6 hours of run time. Sending a picture takes 30 seconds at 120ma, or about 120mAh, so even with a tiny battery no bigger than the ESP itself, this diminutive web server can handle 100 connections before the battery dies.

While not recommended unless you intend to retrieve your throwable web server, it is an interesting example of the latest and cheapest technology that made a throwable webserver possible; 10 years ago, both the ESP and a battery this small would have been unthinkable.