mirror of
https://github.com/SpacehuhnTech/esp8266_deauther.git
synced 2026-08-02 17:07:36 -07:00
Merged branch testing into testing
This commit is contained in:
@@ -11,7 +11,7 @@ bool APScan::start(){
|
||||
}
|
||||
aps._clear();
|
||||
for(int i=0;i<maxAPScanResults;i++) selected[i] = false;
|
||||
results = WiFi.scanNetworks(false, true); // lets scanNetworks return hidden APs. (async = false & show_hidden = true)
|
||||
results = WiFi.scanNetworks(false, settings.apScanHidden); // lets scanNetworks return hidden APs. (async = false & show_hidden = true)
|
||||
|
||||
for(int i=0;i<results && i<maxAPScanResults;i++){
|
||||
Mac _ap;
|
||||
|
||||
@@ -6,10 +6,13 @@
|
||||
#include <ESP8266WiFi.h>
|
||||
#include "Mac.h"
|
||||
#include "MacList.h"
|
||||
#include "Settings.h"
|
||||
|
||||
extern String data_getVendor(uint8_t first,uint8_t second,uint8_t third);
|
||||
extern const bool debug;
|
||||
|
||||
extern Settings settings;
|
||||
|
||||
class APScan{
|
||||
public:
|
||||
APScan();
|
||||
|
||||
@@ -15,6 +15,16 @@ void Settings::load(){
|
||||
for(int i=0;i<ssidLen;i++) ssid += (char)EEPROM.read(ssidAdr+i);
|
||||
for(int i=0;i<passwordLen;i++) password += (char)EEPROM.read(passwordAdr+i);
|
||||
|
||||
ssidHidden = (bool)EEPROM.read(ssidHiddenAdr);
|
||||
|
||||
if((int)EEPROM.read(apChannelAdr) >= 1 && (int)EEPROM.read(apChannelAdr) <= 11){
|
||||
apChannel = (int)EEPROM.read(apChannelAdr);
|
||||
} else {
|
||||
reset();
|
||||
}
|
||||
|
||||
apScanHidden = (bool)EEPROM.read(apScanHiddenAdr);
|
||||
|
||||
deauthReason = EEPROM.read(deauthReasonAdr);
|
||||
attackTimeout = eepromReadInt(attackTimeoutAdr);
|
||||
attackPacketRate = EEPROM.read(attackPacketRateAdr);
|
||||
@@ -28,9 +38,13 @@ void Settings::reset(){
|
||||
|
||||
ssid = "pwned";
|
||||
password = "deauther"; //must have at least 8 characters
|
||||
ssidHidden = false;
|
||||
apChannel = 1;
|
||||
|
||||
ssidLen = ssid.length();
|
||||
passwordLen = password.length();
|
||||
|
||||
apScanHidden = true;
|
||||
|
||||
deauthReason = 0x01;
|
||||
attackTimeout = 5*60;
|
||||
@@ -47,11 +61,15 @@ void Settings::save(){
|
||||
ssidLen = ssid.length();
|
||||
passwordLen = password.length();
|
||||
|
||||
EEPROM.write(ssidLenAdr,ssidLen);
|
||||
EEPROM.write(passwordLenAdr,passwordLen);
|
||||
|
||||
EEPROM.write(ssidLenAdr, ssidLen);
|
||||
EEPROM.write(passwordLenAdr, passwordLen);
|
||||
for(int i=0;i<ssidLen;i++) EEPROM.write(ssidAdr+i,ssid[i]);
|
||||
for(int i=0;i<passwordLen;i++) EEPROM.write(passwordAdr+i,password[i]);
|
||||
|
||||
EEPROM.write(ssidHiddenAdr, ssidHidden);
|
||||
EEPROM.write(apChannelAdr, apChannel);
|
||||
|
||||
EEPROM.write(apScanHiddenAdr, apScanHidden);
|
||||
|
||||
EEPROM.write(deauthReasonAdr, deauthReason);
|
||||
|
||||
@@ -72,8 +90,11 @@ void Settings::info(){
|
||||
Serial.println("settings:");
|
||||
Serial.println("SSID: "+ssid);
|
||||
Serial.println("SSID length: "+(String)ssidLen);
|
||||
Serial.println("SSID hidden: "+(String)ssidHidden);
|
||||
Serial.println("password: "+password);
|
||||
Serial.println("password length: "+(String)passwordLen);
|
||||
Serial.println("channel: "+(String)apChannel);
|
||||
Serial.println("Scan hidden APs: "+(String)apScanHidden);
|
||||
Serial.println("deauth reson: "+(String)(int)deauthReason);
|
||||
Serial.println("attack timeout: "+(String)attackTimeout);
|
||||
Serial.println("attack packet rate: "+(String)attackPacketRate);
|
||||
@@ -86,7 +107,10 @@ String Settings::get(){
|
||||
String json = "{";
|
||||
|
||||
json += "\"ssid\":\""+ssid+"\",";
|
||||
json += "\"ssidHidden\":"+(String)ssidHidden+",";
|
||||
json += "\"password\":\""+password+"\",";
|
||||
json += "\"apChannel\":"+(String)apChannel+",";
|
||||
json += "\"apScanHidden\":"+(String)apScanHidden+",";
|
||||
json += "\"deauthReason\":"+(String)(int)deauthReason+",";
|
||||
json += "\"attackTimeout\":"+(String)attackTimeout+",";
|
||||
json += "\"attackPacketRate\":"+(String)attackPacketRate+",";
|
||||
|
||||
@@ -21,6 +21,9 @@ extern NameList nameList;
|
||||
#define attackPacketRateAdr 1093
|
||||
#define clientScanTimeAdr 1094
|
||||
#define attackEncryptedAdr 1095
|
||||
#define ssidHiddenAdr 1096
|
||||
#define apScanHiddenAdr 1097
|
||||
#define apChannelAdr 1098
|
||||
|
||||
class Settings
|
||||
{
|
||||
@@ -34,8 +37,12 @@ class Settings
|
||||
|
||||
int ssidLen;
|
||||
String ssid = "";
|
||||
bool ssidHidden;
|
||||
int passwordLen;
|
||||
String password = "";
|
||||
int apChannel;
|
||||
|
||||
bool apScanHidden;
|
||||
|
||||
uint8_t deauthReason;
|
||||
unsigned int attackTimeout;
|
||||
|
||||
File diff suppressed because one or more lines are too long
@@ -39,7 +39,7 @@ void startWifi(){
|
||||
Serial.println("starting WiFi AP");
|
||||
WiFi.mode(WIFI_STA);
|
||||
wifi_set_promiscuous_rx_cb(sniffer);
|
||||
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);
|
||||
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);
|
||||
Serial.println("SSID: "+settings.ssid);
|
||||
Serial.println("Password: "+settings.password);
|
||||
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() ); }
|
||||
|
||||
void saveSettings(){
|
||||
if(server.hasArg("ssid")) settings.ssid = server.arg("ssid");
|
||||
if(server.hasArg("ssidHidden")){
|
||||
if(server.arg("ssidHidden") == "false") settings.ssidHidden = false;
|
||||
else settings.ssidHidden = true;
|
||||
}
|
||||
if(server.hasArg("password")) settings.password = server.arg("password");
|
||||
if(server.hasArg("apChannel")) settings.apChannel = server.arg("apChannel").toInt();
|
||||
if(server.hasArg("ssidEnc")){
|
||||
if(server.arg("ssidEnc") == "false") settings.attackEncrypted = false;
|
||||
else settings.attackEncrypted = true;
|
||||
}
|
||||
if(server.hasArg("scanTime")) settings.clientScanTime = server.arg("scanTime").toInt();
|
||||
if(server.hasArg("timeout")) settings.attackTimeout = server.arg("timeout").toInt();
|
||||
if(server.hasArg("deauthReason")) settings.deauthReason = server.arg("deauthReason").toInt();
|
||||
if(server.hasArg("packetRate")) settings.attackPacketRate = server.arg("packetRate").toInt();
|
||||
if(server.hasArg("ssidEnc")){
|
||||
if(server.arg("ssidEnc") == "false") settings.attackEncrypted = false;
|
||||
else settings.attackEncrypted = true;
|
||||
if(server.hasArg("apScanHidden")){
|
||||
if(server.arg("apScanHidden") == "false") settings.apScanHidden = false;
|
||||
else settings.apScanHidden = true;
|
||||
}
|
||||
|
||||
settings.save();
|
||||
|
||||
+28
-2
@@ -33,20 +33,36 @@
|
||||
|
||||
<label for="ssid">SSID:</label>
|
||||
<input type="text" id="ssid" minlength="1" maxlength="32">
|
||||
|
||||
<br />
|
||||
<label for="ssidHidden">hidden:</label>
|
||||
<input type="checkbox" name="ssidHidden" id="ssidHidden" value="false">
|
||||
<br />
|
||||
|
||||
<label for="password">password:</label>
|
||||
<input type="text" id="password" minlength="8" maxlength="32">
|
||||
<p class="small">must have at least 8 characters! (needs restart)</p>
|
||||
<br />
|
||||
|
||||
<label for="apChannel">channel:</label>
|
||||
<input type="number" id="apChannel" min="1" max="11">
|
||||
|
||||
<br />
|
||||
<br />
|
||||
<p class="block bold">AP scan</p>
|
||||
|
||||
<label for="apScanHidden">scan for hidden APs:</label>
|
||||
<input type="checkbox" name="apScanHidden" id="apScanHidden" value="false">
|
||||
|
||||
<br />
|
||||
<br />
|
||||
<p class="block bold">Client Scan</p>
|
||||
|
||||
<label for="scanTime">default scan time:</label>
|
||||
<input type="number" id="scanTime" min="1" max="255">s
|
||||
|
||||
<br />
|
||||
<br />
|
||||
|
||||
<p class="block bold">Attack</p>
|
||||
|
||||
<label for="timeout">timeout:</label>
|
||||
@@ -54,7 +70,7 @@
|
||||
<p class="small">0 = no timeout</p>
|
||||
|
||||
<label for="ssidEnc">beacon encrypted:</label>
|
||||
<input type="checkbox" name="ssidEnc" id="ssidEnc" value="true">
|
||||
<input type="checkbox" name="ssidEnc" id="ssidEnc" value="false">
|
||||
<br />
|
||||
|
||||
<label for="deauthReason">deauth reason:</label>
|
||||
@@ -85,7 +101,10 @@
|
||||
<script>
|
||||
var nameListTable = document.getElementById('nameList');
|
||||
var ssid = document.getElementById('ssid');
|
||||
var ssidHidden = document.getElementById('ssidHidden');
|
||||
var password = document.getElementById('password');
|
||||
var apChannel = document.getElementById('apChannel');
|
||||
var apScanHidden = document.getElementById('apScanHidden');
|
||||
var scanTime = document.getElementById('scanTime');
|
||||
var timeout = document.getElementById('timeout');
|
||||
var deauthReason = document.getElementById('deauthReason');
|
||||
@@ -100,13 +119,17 @@
|
||||
res = JSON.parse(responseText);
|
||||
|
||||
ssid.value = res.ssid;
|
||||
ssidHidden.checked = res.ssidHidden;
|
||||
password.value = res.password;
|
||||
apChannel.value = res.apChannel;
|
||||
apScanHidden.checked = res.apScanHidden;
|
||||
scanTime.value = res.clientScanTime;
|
||||
timeout.value = res.attackTimeout;
|
||||
deauthReason.value = res.deauthReason;
|
||||
packetRate.value = res.attackPacketRate;
|
||||
ssidEnc.checked = res.attackEncrypted;
|
||||
|
||||
|
||||
clientNames.innerHTML = "Client Names "+res.nameList.length+"/50";
|
||||
|
||||
var tr = '<tr><th>MAC</th><th>Vendor</th><th>Name</th><th>X</th></tr>';
|
||||
@@ -147,7 +170,10 @@
|
||||
saved.innerHTML = "saving...";
|
||||
var url = "settingsSave.json";
|
||||
url += "?ssid="+ssid.value;
|
||||
url += "&ssidHidden="+ssidHidden.checked;
|
||||
url += "&password="+password.value;
|
||||
url += "&apChannel="+apChannel.value;
|
||||
url += "&apScanHidden="+apScanHidden.checked;
|
||||
url += "&scanTime="+scanTime.value;
|
||||
url += "&timeout="+timeout.value;
|
||||
url += "&deauthReason="+deauthReason.value;
|
||||
|
||||
Reference in New Issue
Block a user