Skip to content

Commit de952ba

Browse files
author
Stefan Kremser
committed
Added beacon flood to OLED
1 parent d842c76 commit de952ba

File tree

3 files changed

+49
-18
lines changed

3 files changed

+49
-18
lines changed

esp8266_deauther/Attack.cpp

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -281,7 +281,8 @@ void Attack::start(int num) {
281281
attackTimeoutCounter[num] = 0;
282282
refreshLed();
283283
if (debug) Serial.println("starting " + (String)attackNames[num] + " attack...");
284-
if (num == 0) attackMode = "STOP";
284+
if (num == 0) attackMode_deauth = "STOP";
285+
else if(num == 1) attackMode_beacon = "STOP";
285286
if(!settings.multiAttacks){
286287
for (int i = 0; i < attacksNum; i++){
287288
if(i != num) stop(i);
@@ -293,7 +294,8 @@ void Attack::start(int num) {
293294
void Attack::stop(int num) {
294295
if(isRunning[num]) {
295296
if (debug) Serial.println("stopping " + (String)attackNames[num] + " attack...");
296-
if (num == 0) attackMode = "START";
297+
if (num == 0) attackMode_deauth = "START";
298+
else if(num == 1) attackMode_beacon = "START";
297299
isRunning[num] = false;
298300
prevTime[num] = millis();
299301
refreshLed();

esp8266_deauther/Attack.h

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -26,7 +26,8 @@ extern const bool debug;
2626
extern void addLog(String str);
2727
extern void openLog();
2828
extern void closeLog();
29-
extern String attackMode;
29+
extern String attackMode_deauth;
30+
extern String attackMode_beacon;
3031

3132
extern APScan apScan;
3233
extern ClientScan clientScan;

esp8266_deauther/esp8266_deauther.ino

Lines changed: 43 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -42,7 +42,7 @@
4242
#define fontSize 8
4343
#define rowsPerSite 8
4444

45-
int rows = 3;
45+
int rows = 4;
4646
int curRow = 0;
4747
int sites = 1;
4848
int curSite = 1;
@@ -77,7 +77,8 @@ const bool debug = true;
7777

7878
// Run-Time Variables //
7979
String wifiMode = "";
80-
String attackMode = "";
80+
String attackMode_deauth = "";
81+
String attackMode_beacon = "";
8182
String scanMode = "SCAN";
8283

8384
bool warning = true;
@@ -104,10 +105,11 @@ void drawInterface() {
104105
for (int i = curSite * rowsPerSite - rowsPerSite; i < curSite * rowsPerSite; i++) {
105106
if (i == 0) display.drawString(3, i * fontSize, "-> WiFi " + wifiMode);
106107
else if (i == 1) display.drawString(3, i * fontSize, "-> " + scanMode);
107-
else if (i == 2) display.drawString(3, i * fontSize, "-> " + attackMode + " attack");
108-
else if (i - 3 < apScan.results) {
109-
display.drawString(3, _lrow * fontSize, apScan.getAPName(i - 3));
110-
if (apScan.isSelected(i - 3)) {
108+
else if (i == 2) display.drawString(3, i * fontSize, "-> " + attackMode_deauth + " deauth");
109+
else if (i == 3) display.drawString(3, i * fontSize, "-> " + attackMode_beacon + " beacon flood");
110+
else if (i - 4 < apScan.results) {
111+
display.drawString(4, _lrow * fontSize, apScan.getAPName(i - 4));
112+
if (apScan.isSelected(i - 4)) {
111113
display.drawVerticalLine(1, _lrow * fontSize, fontSize);
112114
display.drawVerticalLine(2, _lrow * fontSize, fontSize);
113115
}
@@ -210,7 +212,7 @@ void startAPScan() {
210212

211213
#ifdef USE_DISPLAY
212214
apScan.sort();
213-
rows = 3;
215+
rows = 4;
214216
rows += apScan.results;
215217
sites = rows / rowsPerSite;
216218
if (rows % rowsPerSite > 0) sites++;
@@ -489,7 +491,8 @@ void setup() {
489491

490492
Serial.begin(115200);
491493

492-
attackMode = "START";
494+
attackMode_deauth = "START";
495+
attackMode_beacon = "START";
493496

494497
EEPROM.begin(4096);
495498
SPIFFS.begin();
@@ -578,13 +581,17 @@ void setup() {
578581
display.setFont(ArialMT_Plain_24);
579582
display.drawString(0, 16, "Deauther");
580583
display.setFont(ArialMT_Plain_10);
584+
display.drawString(100, 28, "v");
585+
display.setFont(ArialMT_Plain_16);
586+
display.drawString(104, 24, "1.6");
587+
display.setFont(ArialMT_Plain_10);
581588
display.drawString(0, 40, "Copyright (c) 2017");
582589
display.drawString(0, 50, "Stefan Kremser");
583590
display.display();
584591

585592
display.setFont(Roboto_Mono_8);
586593

587-
delay(2000);
594+
delay(1600);
588595
#endif
589596

590597
#ifdef resetPin
@@ -595,7 +602,7 @@ void setup() {
595602
if(debug){
596603
Serial.println("\nStarting...\n");
597604
#ifndef USE_DISPLAY
598-
delay(2000);
605+
delay(1600);
599606
#endif
600607
}
601608
}
@@ -657,16 +664,37 @@ void loop() {
657664
startAPScan();
658665
drawInterface();
659666

660-
// ===== start,stop attack =====
667+
// ===== start,stop deauth attack =====
661668
} else if (curRow == 2) {
662-
if (attackMode == "START" && apScan.getFirstTarget() > -1) attack.start(0);
663-
else if (attackMode == "STOP") attack.stop(0);
669+
if (attackMode_deauth == "START" && apScan.getFirstTarget() > -1) attack.start(0);
670+
else if (attackMode_deauth == "STOP") attack.stop(0);
671+
672+
// ===== start,stop beacon attack =====
673+
} else if (curRow == 3) {
674+
if (attackMode_beacon == "START"){
675+
676+
//clone all selected SSIDs
677+
if(apScan.selectedSum > 0){
678+
int clonesPerSSID = 48/apScan.selectedSum;
679+
ssidList.clear();
680+
for(int i=0;i<apScan.results;i++){
681+
if(apScan.isSelected(i)){
682+
ssidList.addClone(apScan.getAPName(i),clonesPerSSID, apScan.getAPEncryption(i) != "none");
683+
}
684+
}
685+
}
686+
attack.ssidChange = true;
687+
688+
//start attack
689+
attack.start(1);
690+
}
691+
else if (attackMode_beacon == "STOP") attack.stop(1);
664692
}
665693

666694
// ===== select APs =====
667-
else if (curRow >= 3) {
695+
else if (curRow >= 4) {
668696
attack.stop(0);
669-
apScan.select(curRow - 3);
697+
apScan.select(curRow - 4);
670698
}
671699
}
672700
// ===== DISPLAY =====

0 commit comments

Comments
 (0)