Merged branch testing into testing

This commit is contained in:
Stefan Kremser
2017-03-04 10:11:26 +01:00
7 changed files with 81 additions and 12 deletions
+1 -1
View File
@@ -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;
+3
View File
@@ -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();
+27 -3
View File
@@ -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+",";
+7
View File
@@ -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
+13 -4
View File
@@ -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
View File
@@ -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;