Added setting options to scan hidden APs and to hide your own

This commit is contained in:
N0vaPixel
2017-03-03 23:55:52 +01:00
parent 73390c68bc
commit 3d36cb3f3c
4 changed files with 64 additions and 7 deletions
+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
+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;