mirror of
https://github.com/SpacehuhnTech/esp8266_deauther.git
synced 2025-12-22 14:40:05 +01:00
Enabled Multiple attacks + Improved Probe Request
This commit is contained in:
@@ -96,6 +96,8 @@ void Attack::buildProbe(String _ssid, Mac _mac) {
|
||||
for (int i = 0; i < len; i++) packet[packetSize + i] = _ssid[i];
|
||||
packetSize += len;
|
||||
|
||||
for (int i = 0; i < sizeof(probePacket_RateTag); i++) packet[packetSize + i] = probePacket_RateTag[i];
|
||||
packetSize += sizeof(probePacket_RateTag);
|
||||
}
|
||||
|
||||
bool Attack::send() {
|
||||
@@ -218,15 +220,18 @@ void Attack::run() {
|
||||
|
||||
for (int a = 0; a < ssidList.len; a++) {
|
||||
buildProbe(ssidList.get(a), beaconAdrs._get(a));
|
||||
if (send()) packetsCounter[2]++;
|
||||
if(send()) packetsCounter[2]++;
|
||||
if(send()) packetsCounter[2]++;
|
||||
}
|
||||
|
||||
stati[2] = (String)(packetsCounter[2] * 10) + "pkts/s";
|
||||
stati[2] = (String)(packetsCounter[2]) + "pkts/s";
|
||||
packetsCounter[2] = 0;
|
||||
macListChangeCounter++;
|
||||
if (macListChangeCounter >= macChangeInterval && macChangeInterval > 0) {
|
||||
generate();
|
||||
macListChangeCounter = 0;
|
||||
/*ssidList.clear();
|
||||
ssidList._random();
|
||||
macListChangeCounter = 0;*/
|
||||
}
|
||||
if (debug) Serial.println("done");
|
||||
if (settings.attackTimeout > 0) {
|
||||
@@ -248,8 +253,10 @@ void Attack::start(int num) {
|
||||
refreshLed();
|
||||
if (debug) Serial.println("starting " + (String)attackNames[num] + " attack...");
|
||||
if (num == 0) attackMode = "STOP";
|
||||
for (int i = 0; i < attacksNum; i++){
|
||||
if(i != num) stop(i);
|
||||
if(!settings.multiAttacks){
|
||||
for (int i = 0; i < attacksNum; i++){
|
||||
if(i != num) stop(i);
|
||||
}
|
||||
}
|
||||
}else stop(num);
|
||||
}
|
||||
|
||||
@@ -18,7 +18,7 @@ extern "C" {
|
||||
|
||||
#define attacksNum 3
|
||||
#define macListLen 64
|
||||
#define macChangeInterval 4
|
||||
#define macChangeInterval 6
|
||||
|
||||
extern void PrintHex8(uint8_t *data, uint8_t length);
|
||||
extern void getRandomVendorMac(uint8_t *buf);
|
||||
@@ -131,6 +131,16 @@ class Attack
|
||||
*/
|
||||
};
|
||||
|
||||
uint8_t probePacket_RateTag[6] = {
|
||||
0x01, //Tag Number: Supported Rates (1)
|
||||
0x04, //Tag length: 4
|
||||
//Supported Rates:
|
||||
0x82, //1Mbit/s
|
||||
0x84, //2Mbit/s
|
||||
0x8b, //5.5Mbit/s
|
||||
0x96 //11Mbit/s
|
||||
};
|
||||
|
||||
int macListChangeCounter = 0;
|
||||
int attackTimeoutCounter[attacksNum];
|
||||
int channels[macListLen];
|
||||
|
||||
@@ -42,6 +42,7 @@ void Settings::load() {
|
||||
useLed = (bool)EEPROM.read(useLedAdr);
|
||||
channelHop = (bool)EEPROM.read(channelHopAdr);
|
||||
multiAPs = (bool)EEPROM.read(multiAPsAdr);
|
||||
multiAttacks = (bool)EEPROM.read(multiAttacksAdr);
|
||||
}
|
||||
|
||||
void Settings::reset() {
|
||||
@@ -65,6 +66,7 @@ void Settings::reset() {
|
||||
useLed = true;
|
||||
channelHop = false;
|
||||
multiAPs = false;
|
||||
multiAttacks = false;
|
||||
|
||||
if (debug) Serial.println("done");
|
||||
|
||||
@@ -95,6 +97,7 @@ void Settings::save() {
|
||||
EEPROM.write(useLedAdr, useLed);
|
||||
EEPROM.write(channelHopAdr, channelHop);
|
||||
EEPROM.write(multiAPsAdr, multiAPs);
|
||||
EEPROM.write(multiAttacksAdr, multiAttacks);
|
||||
EEPROM.write(checkNumAdr, checkNum);
|
||||
EEPROM.commit();
|
||||
|
||||
@@ -121,6 +124,7 @@ void Settings::info() {
|
||||
Serial.println("use built-in LED: " + (String)useLed);
|
||||
Serial.println("channel hopping: " + (String)channelHop);
|
||||
Serial.println("multiple APs: " + (String)multiAPs);
|
||||
Serial.println("multiple Attacks: " + (String)multiAttacks);
|
||||
}
|
||||
|
||||
size_t Settings::getSize(){
|
||||
@@ -139,7 +143,8 @@ size_t Settings::getSize(){
|
||||
json += "\"attackEncrypted\":" + (String)attackEncrypted + ",";
|
||||
json += "\"useLed\":" + (String)useLed + ",";
|
||||
json += "\"channelHop\":" + (String)channelHop + ",";
|
||||
json += "\"multiAPs\":" + (String)multiAPs + "}";
|
||||
json += "\"multiAPs\":" + (String)multiAPs + ",";
|
||||
json += "\"multiAttacks\":" + (String)multiAttacks + "}";
|
||||
jsonSize += json.length();
|
||||
|
||||
return jsonSize;
|
||||
@@ -162,7 +167,8 @@ void Settings::send() {
|
||||
json += "\"attackEncrypted\":" + (String)attackEncrypted + ",";
|
||||
json += "\"useLed\":" + (String)useLed + ",";
|
||||
json += "\"channelHop\":" + (String)channelHop + ",";
|
||||
json += "\"multiAPs\":" + (String)multiAPs + "}";
|
||||
json += "\"multiAPs\":" + (String)multiAPs + ",";
|
||||
json += "\"multiAttacks\":" + (String)multiAttacks + "}";
|
||||
sendToBuffer(json);
|
||||
sendBuffer();
|
||||
|
||||
|
||||
@@ -33,6 +33,7 @@ extern NameList nameList;
|
||||
#define useLedAdr 1099
|
||||
#define channelHopAdr 1100
|
||||
#define multiAPsAdr 1101
|
||||
#define multiAttacksAdr 1102
|
||||
|
||||
#define checkNumAdr 1102
|
||||
#define checkNum 14
|
||||
@@ -62,6 +63,7 @@ class Settings
|
||||
bool useLed;
|
||||
bool channelHop;
|
||||
bool multiAPs;
|
||||
bool multiAttacks;
|
||||
|
||||
private:
|
||||
size_t getSize();
|
||||
|
||||
File diff suppressed because one or more lines are too long
@@ -375,6 +375,10 @@ void saveSettings() {
|
||||
if (server.arg("multiAPs") == "false") settings.multiAPs = false;
|
||||
else settings.multiAPs = true;
|
||||
}
|
||||
if (server.hasArg("multiAttacks")) {
|
||||
if (server.arg("multiAttacks") == "false") settings.multiAttacks = false;
|
||||
else settings.multiAttacks = true;
|
||||
}
|
||||
|
||||
settings.save();
|
||||
server.send( 200, "text/json", "true" );
|
||||
|
||||
@@ -13,6 +13,7 @@ var ssidEnc = getE('ssidEnc');
|
||||
var useLed = getE('useLed');
|
||||
/*var channelHop = getE('channelHop');*/
|
||||
var multiAPs = getE('multiAPs');
|
||||
var multiAttacks = getE('multiAttacks');
|
||||
var cMac = getE('cMac');
|
||||
var cName = getE('cName');
|
||||
var res;
|
||||
@@ -38,6 +39,7 @@ function getData() {
|
||||
useLed.checked = res.useLed;
|
||||
/*channelHop.checked = res.channelHop;*/
|
||||
multiAPs.checked = res.multiAPs;
|
||||
multiAttacks.checked = res.multiAttacks;
|
||||
});
|
||||
}
|
||||
|
||||
@@ -56,7 +58,8 @@ function saveSettings() {
|
||||
url += "&ssidEnc=" + ssidEnc.checked;
|
||||
url += "&useLed=" + useLed.checked;
|
||||
/*url += "&channelHop=" + channelHop.checked;*/
|
||||
url += "&multiAPs="+ multiAPs.checked;
|
||||
url += "&multiAPs="+multiAPs.checked;
|
||||
url += "&multiAttacks="+multiAttacks.checked;
|
||||
|
||||
getResponse(url, function(responseText) {
|
||||
if (responseText == "true") {
|
||||
|
||||
@@ -143,6 +143,15 @@
|
||||
<input type="number" id="packetRate" min="1" max="50"> pkts/s
|
||||
</div>
|
||||
</div>
|
||||
<div class="row">
|
||||
<div class="col-6">
|
||||
<label for="multiAttacks">Multiple Attacks</label>
|
||||
</div>
|
||||
<div class="col-6">
|
||||
<input type="checkbox" name="multiAttacks" id="multiAttacks" value="false">
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<!--
|
||||
<div class="row">
|
||||
<div class="col-6">
|
||||
|
||||
Reference in New Issue
Block a user