Skip to content

Commit 0f5f48d

Browse files
author
Stefan Kremser
committed
Merged branch testing into testing
2 parents 73390c6 + 4493418 commit 0f5f48d

File tree

7 files changed

+81
-12
lines changed

7 files changed

+81
-12
lines changed

esp8266_deauther/APScan.cpp

+1-1
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@ bool APScan::start(){
1111
}
1212
aps._clear();
1313
for(int i=0;i<maxAPScanResults;i++) selected[i] = false;
14-
results = WiFi.scanNetworks(false, true); // lets scanNetworks return hidden APs. (async = false & show_hidden = true)
14+
results = WiFi.scanNetworks(false, settings.apScanHidden); // lets scanNetworks return hidden APs. (async = false & show_hidden = true)
1515

1616
for(int i=0;i<results && i<maxAPScanResults;i++){
1717
Mac _ap;

esp8266_deauther/APScan.h

+3
Original file line numberDiff line numberDiff line change
@@ -6,10 +6,13 @@
66
#include <ESP8266WiFi.h>
77
#include "Mac.h"
88
#include "MacList.h"
9+
#include "Settings.h"
910

1011
extern String data_getVendor(uint8_t first,uint8_t second,uint8_t third);
1112
extern const bool debug;
1213

14+
extern Settings settings;
15+
1316
class APScan{
1417
public:
1518
APScan();

esp8266_deauther/Settings.cpp

+27-3
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,16 @@ void Settings::load(){
1515
for(int i=0;i<ssidLen;i++) ssid += (char)EEPROM.read(ssidAdr+i);
1616
for(int i=0;i<passwordLen;i++) password += (char)EEPROM.read(passwordAdr+i);
1717

18+
ssidHidden = (bool)EEPROM.read(ssidHiddenAdr);
19+
20+
if((int)EEPROM.read(apChannelAdr) >= 1 && (int)EEPROM.read(apChannelAdr) <= 11){
21+
apChannel = (int)EEPROM.read(apChannelAdr);
22+
} else {
23+
reset();
24+
}
25+
26+
apScanHidden = (bool)EEPROM.read(apScanHiddenAdr);
27+
1828
deauthReason = EEPROM.read(deauthReasonAdr);
1929
attackTimeout = eepromReadInt(attackTimeoutAdr);
2030
attackPacketRate = EEPROM.read(attackPacketRateAdr);
@@ -28,9 +38,13 @@ void Settings::reset(){
2838

2939
ssid = "pwned";
3040
password = "deauther"; //must have at least 8 characters
41+
ssidHidden = false;
42+
apChannel = 1;
3143

3244
ssidLen = ssid.length();
3345
passwordLen = password.length();
46+
47+
apScanHidden = true;
3448

3549
deauthReason = 0x01;
3650
attackTimeout = 5*60;
@@ -47,11 +61,15 @@ void Settings::save(){
4761
ssidLen = ssid.length();
4862
passwordLen = password.length();
4963

50-
EEPROM.write(ssidLenAdr,ssidLen);
51-
EEPROM.write(passwordLenAdr,passwordLen);
52-
64+
EEPROM.write(ssidLenAdr, ssidLen);
65+
EEPROM.write(passwordLenAdr, passwordLen);
5366
for(int i=0;i<ssidLen;i++) EEPROM.write(ssidAdr+i,ssid[i]);
5467
for(int i=0;i<passwordLen;i++) EEPROM.write(passwordAdr+i,password[i]);
68+
69+
EEPROM.write(ssidHiddenAdr, ssidHidden);
70+
EEPROM.write(apChannelAdr, apChannel);
71+
72+
EEPROM.write(apScanHiddenAdr, apScanHidden);
5573

5674
EEPROM.write(deauthReasonAdr, deauthReason);
5775

@@ -72,8 +90,11 @@ void Settings::info(){
7290
Serial.println("settings:");
7391
Serial.println("SSID: "+ssid);
7492
Serial.println("SSID length: "+(String)ssidLen);
93+
Serial.println("SSID hidden: "+(String)ssidHidden);
7594
Serial.println("password: "+password);
7695
Serial.println("password length: "+(String)passwordLen);
96+
Serial.println("channel: "+(String)apChannel);
97+
Serial.println("Scan hidden APs: "+(String)apScanHidden);
7798
Serial.println("deauth reson: "+(String)(int)deauthReason);
7899
Serial.println("attack timeout: "+(String)attackTimeout);
79100
Serial.println("attack packet rate: "+(String)attackPacketRate);
@@ -86,7 +107,10 @@ String Settings::get(){
86107
String json = "{";
87108

88109
json += "\"ssid\":\""+ssid+"\",";
110+
json += "\"ssidHidden\":"+(String)ssidHidden+",";
89111
json += "\"password\":\""+password+"\",";
112+
json += "\"apChannel\":"+(String)apChannel+",";
113+
json += "\"apScanHidden\":"+(String)apScanHidden+",";
90114
json += "\"deauthReason\":"+(String)(int)deauthReason+",";
91115
json += "\"attackTimeout\":"+(String)attackTimeout+",";
92116
json += "\"attackPacketRate\":"+(String)attackPacketRate+",";

esp8266_deauther/Settings.h

+7
Original file line numberDiff line numberDiff line change
@@ -21,6 +21,9 @@ extern NameList nameList;
2121
#define attackPacketRateAdr 1093
2222
#define clientScanTimeAdr 1094
2323
#define attackEncryptedAdr 1095
24+
#define ssidHiddenAdr 1096
25+
#define apScanHiddenAdr 1097
26+
#define apChannelAdr 1098
2427

2528
class Settings
2629
{
@@ -34,8 +37,12 @@ class Settings
3437

3538
int ssidLen;
3639
String ssid = "";
40+
bool ssidHidden;
3741
int passwordLen;
3842
String password = "";
43+
int apChannel;
44+
45+
bool apScanHidden;
3946

4047
uint8_t deauthReason;
4148
unsigned int attackTimeout;

esp8266_deauther/data.h

+2-2
Large diffs are not rendered by default.

esp8266_deauther/esp8266_deauther.ino

+13-4
Original file line numberDiff line numberDiff line change
@@ -39,7 +39,7 @@ void startWifi(){
3939
Serial.println("starting WiFi AP");
4040
WiFi.mode(WIFI_STA);
4141
wifi_set_promiscuous_rx_cb(sniffer);
42-
WiFi.softAP((const char*)settings.ssid.c_str(), (const char*)settings.password.c_str()); //for an open network without a password change to: WiFi.softAP(ssid);
42+
WiFi.softAP((const char*)settings.ssid.c_str(), (const char*)settings.password.c_str(), settings.apChannel, settings.ssidHidden); //for an open network without a password change to: WiFi.softAP(ssid);
4343
Serial.println("SSID: "+settings.ssid);
4444
Serial.println("Password: "+settings.password);
4545
if(settings.password.length()<8) Serial.println("WARNING: password must have at least 8 characters!");
@@ -224,14 +224,23 @@ void getSettings(){ server.send ( 200, "text/json", settings.get() ); }
224224

225225
void saveSettings(){
226226
if(server.hasArg("ssid")) settings.ssid = server.arg("ssid");
227+
if(server.hasArg("ssidHidden")){
228+
if(server.arg("ssidHidden") == "false") settings.ssidHidden = false;
229+
else settings.ssidHidden = true;
230+
}
227231
if(server.hasArg("password")) settings.password = server.arg("password");
232+
if(server.hasArg("apChannel")) settings.apChannel = server.arg("apChannel").toInt();
233+
if(server.hasArg("ssidEnc")){
234+
if(server.arg("ssidEnc") == "false") settings.attackEncrypted = false;
235+
else settings.attackEncrypted = true;
236+
}
228237
if(server.hasArg("scanTime")) settings.clientScanTime = server.arg("scanTime").toInt();
229238
if(server.hasArg("timeout")) settings.attackTimeout = server.arg("timeout").toInt();
230239
if(server.hasArg("deauthReason")) settings.deauthReason = server.arg("deauthReason").toInt();
231240
if(server.hasArg("packetRate")) settings.attackPacketRate = server.arg("packetRate").toInt();
232-
if(server.hasArg("ssidEnc")){
233-
if(server.arg("ssidEnc") == "false") settings.attackEncrypted = false;
234-
else settings.attackEncrypted = true;
241+
if(server.hasArg("apScanHidden")){
242+
if(server.arg("apScanHidden") == "false") settings.apScanHidden = false;
243+
else settings.apScanHidden = true;
235244
}
236245

237246
settings.save();

htmlfiles/settings.html

+28-2
Original file line numberDiff line numberDiff line change
@@ -33,28 +33,44 @@ <h1>Settings</h1>
3333

3434
<label for="ssid">SSID:</label>
3535
<input type="text" id="ssid" minlength="1" maxlength="32">
36-
36+
<br />
37+
<label for="ssidHidden">hidden:</label>
38+
<input type="checkbox" name="ssidHidden" id="ssidHidden" value="false">
3739
<br />
3840

3941
<label for="password">password:</label>
4042
<input type="text" id="password" minlength="8" maxlength="32">
4143
<p class="small">must have at least 8 characters! (needs restart)</p>
44+
<br />
45+
46+
<label for="apChannel">channel:</label>
47+
<input type="number" id="apChannel" min="1" max="11">
48+
49+
<br />
50+
<br />
51+
<p class="block bold">AP scan</p>
4252

53+
<label for="apScanHidden">scan for hidden APs:</label>
54+
<input type="checkbox" name="apScanHidden" id="apScanHidden" value="false">
55+
56+
<br />
4357
<br />
4458
<p class="block bold">Client Scan</p>
4559

4660
<label for="scanTime">default scan time:</label>
4761
<input type="number" id="scanTime" min="1" max="255">s
62+
4863
<br />
4964
<br />
65+
5066
<p class="block bold">Attack</p>
5167

5268
<label for="timeout">timeout:</label>
5369
<input type="number" id="timeout" min="-1" max="65536">s
5470
<p class="small">0 = no timeout</p>
5571

5672
<label for="ssidEnc">beacon encrypted:</label>
57-
<input type="checkbox" name="ssidEnc" id="ssidEnc" value="true">
73+
<input type="checkbox" name="ssidEnc" id="ssidEnc" value="false">
5874
<br />
5975

6076
<label for="deauthReason">deauth reason:</label>
@@ -85,7 +101,10 @@ <h1>Settings</h1>
85101
<script>
86102
var nameListTable = document.getElementById('nameList');
87103
var ssid = document.getElementById('ssid');
104+
var ssidHidden = document.getElementById('ssidHidden');
88105
var password = document.getElementById('password');
106+
var apChannel = document.getElementById('apChannel');
107+
var apScanHidden = document.getElementById('apScanHidden');
89108
var scanTime = document.getElementById('scanTime');
90109
var timeout = document.getElementById('timeout');
91110
var deauthReason = document.getElementById('deauthReason');
@@ -100,13 +119,17 @@ <h1>Settings</h1>
100119
res = JSON.parse(responseText);
101120

102121
ssid.value = res.ssid;
122+
ssidHidden.checked = res.ssidHidden;
103123
password.value = res.password;
124+
apChannel.value = res.apChannel;
125+
apScanHidden.checked = res.apScanHidden;
104126
scanTime.value = res.clientScanTime;
105127
timeout.value = res.attackTimeout;
106128
deauthReason.value = res.deauthReason;
107129
packetRate.value = res.attackPacketRate;
108130
ssidEnc.checked = res.attackEncrypted;
109131

132+
110133
clientNames.innerHTML = "Client Names "+res.nameList.length+"/50";
111134

112135
var tr = '<tr><th>MAC</th><th>Vendor</th><th>Name</th><th>X</th></tr>';
@@ -147,7 +170,10 @@ <h1>Settings</h1>
147170
saved.innerHTML = "saving...";
148171
var url = "settingsSave.json";
149172
url += "?ssid="+ssid.value;
173+
url += "&ssidHidden="+ssidHidden.checked;
150174
url += "&password="+password.value;
175+
url += "&apChannel="+apChannel.value;
176+
url += "&apScanHidden="+apScanHidden.checked;
151177
url += "&scanTime="+scanTime.value;
152178
url += "&timeout="+timeout.value;
153179
url += "&deauthReason="+deauthReason.value;

0 commit comments

Comments
 (0)