mirror of
https://github.com/SpacehuhnTech/esp8266_deauther.git
synced 2025-12-23 23:20:00 +01:00
Merged branch testing into testing
This commit is contained in:
@@ -231,11 +231,14 @@ void Attack::run(){
|
||||
}
|
||||
|
||||
void Attack::start(int num){
|
||||
Serial.println(num);
|
||||
if(!isRunning[num]){
|
||||
Serial.println(num);
|
||||
isRunning[num] = true;
|
||||
stati[num] = "starting";
|
||||
prevTime[num] = millis();
|
||||
attackTimeoutCounter[num] = 0;
|
||||
refreshLed();
|
||||
if(debug) Serial.println("starting "+(String)attackNames[num]+" attack");
|
||||
if(num == 1 && isRunning[2]) stop(2);
|
||||
else if(num == 2 && isRunning[1]) stop(1);
|
||||
@@ -248,7 +251,8 @@ void Attack::stop(int num){
|
||||
isRunning[num] = false;
|
||||
stati[num] = "ready";
|
||||
prevTime[num] = millis();
|
||||
}
|
||||
refreshLed();
|
||||
}
|
||||
}
|
||||
|
||||
void Attack::stopAll(){
|
||||
@@ -310,4 +314,21 @@ String Attack::getResults(){
|
||||
Serial.println("done ");
|
||||
}
|
||||
return json;
|
||||
}
|
||||
}
|
||||
|
||||
void Attack::refreshLed(){
|
||||
int numberRunning = 0;
|
||||
for(int i=0; i<sizeof(isRunning); i++){
|
||||
if(isRunning[i]) numberRunning++;
|
||||
if(debug) Serial.println(numberRunning);
|
||||
}
|
||||
if(numberRunning>=1 && settings.useLed){
|
||||
if(debug) Serial.println("Attack LED : ON");
|
||||
digitalWrite(BUILTIN_LED, LOW);
|
||||
}
|
||||
else if(numberRunning==0 || !settings.useLed){
|
||||
if(debug) Serial.println("Attack LED : OFF");
|
||||
digitalWrite(BUILTIN_LED, HIGH);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -38,6 +38,7 @@ class Attack
|
||||
void stop(int num);
|
||||
void stopAll();
|
||||
String getResults();
|
||||
void refreshLed();
|
||||
private:
|
||||
|
||||
void buildDeauth(Mac _ap, Mac _client, uint8_t type, uint8_t reason);
|
||||
@@ -109,6 +110,7 @@ class Attack
|
||||
int macListChangeCounter = 0;
|
||||
int attackTimeoutCounter[attacksNum];
|
||||
int channels[macListLen];
|
||||
bool buildInLedStatus = false;
|
||||
};
|
||||
|
||||
#endif
|
||||
|
||||
@@ -20,7 +20,7 @@ void Settings::load(){
|
||||
if((int)EEPROM.read(apChannelAdr) >= 1 && (int)EEPROM.read(apChannelAdr) <= 11){
|
||||
apChannel = (int)EEPROM.read(apChannelAdr);
|
||||
} else {
|
||||
reset();
|
||||
apChannel = 1;
|
||||
}
|
||||
|
||||
apScanHidden = (bool)EEPROM.read(apScanHiddenAdr);
|
||||
@@ -30,6 +30,7 @@ void Settings::load(){
|
||||
attackPacketRate = EEPROM.read(attackPacketRateAdr);
|
||||
clientScanTime = EEPROM.read(clientScanTimeAdr);
|
||||
attackEncrypted = (bool)EEPROM.read(attackEncryptedAdr);
|
||||
useLed = (bool)EEPROM.read(useLedAdr);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -51,6 +52,7 @@ void Settings::reset(){
|
||||
attackPacketRate = 10;
|
||||
clientScanTime = 15;
|
||||
attackEncrypted = false;
|
||||
useLed = false;
|
||||
|
||||
if(debug) Serial.println("done");
|
||||
|
||||
@@ -78,6 +80,7 @@ void Settings::save(){
|
||||
EEPROM.write(attackPacketRateAdr, attackPacketRate);
|
||||
EEPROM.write(clientScanTimeAdr, clientScanTime);
|
||||
EEPROM.write(attackEncryptedAdr, attackEncrypted);
|
||||
EEPROM.write(useLedAdr, useLed);
|
||||
EEPROM.commit();
|
||||
|
||||
if(debug){
|
||||
@@ -100,6 +103,7 @@ void Settings::info(){
|
||||
Serial.println("attack packet rate: "+(String)attackPacketRate);
|
||||
Serial.println("client scan time: "+(String)clientScanTime);
|
||||
Serial.println("attack SSID encrypted: "+(String)attackEncrypted);
|
||||
Serial.println("use built-in LED: "+(String)attackEncrypted);
|
||||
}
|
||||
|
||||
String Settings::get(){
|
||||
@@ -116,6 +120,7 @@ String Settings::get(){
|
||||
json += "\"attackPacketRate\":"+(String)attackPacketRate+",";
|
||||
json += "\"clientScanTime\":"+(String)clientScanTime+",";
|
||||
json += "\"attackEncrypted\":"+(String)attackEncrypted+",";
|
||||
json += "\"useLed\":"+(String)useLed+",";
|
||||
|
||||
json += "\"nameList\":[";
|
||||
for(int i=0;i<nameList.len;i++){
|
||||
|
||||
@@ -24,6 +24,7 @@ extern NameList nameList;
|
||||
#define ssidHiddenAdr 1096
|
||||
#define apScanHiddenAdr 1097
|
||||
#define apChannelAdr 1098
|
||||
#define useLedAdr 1099
|
||||
|
||||
class Settings
|
||||
{
|
||||
@@ -50,6 +51,7 @@ class Settings
|
||||
|
||||
int clientScanTime;
|
||||
bool attackEncrypted;
|
||||
bool useLed;
|
||||
private:
|
||||
};
|
||||
|
||||
|
||||
File diff suppressed because one or more lines are too long
@@ -5,7 +5,7 @@
|
||||
#include <ESP8266mDNS.h>
|
||||
|
||||
extern "C" {
|
||||
#include "user_interface.h"
|
||||
#include "user_interface.h"
|
||||
}
|
||||
|
||||
#include <EEPROM.h>
|
||||
@@ -31,30 +31,33 @@ Attack attack;
|
||||
Settings settings;
|
||||
SSIDList ssidList;
|
||||
|
||||
void sniffer(uint8_t *buf, uint16_t len){
|
||||
clientScan.packetSniffer(buf,len);
|
||||
void sniffer(uint8_t *buf, uint16_t len) {
|
||||
clientScan.packetSniffer(buf, len);
|
||||
}
|
||||
|
||||
void startWifi(){
|
||||
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(), 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!");
|
||||
if(settings.ssid.length()<1 || settings.ssid.length()>32) Serial.println("WARNING: SSID length must be between 1 and 32 characters!");
|
||||
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!");
|
||||
if (settings.ssid.length() < 1 || settings.ssid.length() > 32) Serial.println("WARNING: SSID length must be between 1 and 32 characters!");
|
||||
}
|
||||
|
||||
void setup(){
|
||||
void setup() {
|
||||
|
||||
Serial.begin(115200);
|
||||
delay(2000);
|
||||
|
||||
EEPROM.begin(4096);
|
||||
|
||||
pinMode(BUILTIN_LED, OUTPUT);
|
||||
digitalWrite(BUILTIN_LED, HIGH);
|
||||
|
||||
settings.load();
|
||||
if(debug) settings.info();
|
||||
if (debug) settings.info();
|
||||
nameList.load();
|
||||
ssidList.load();
|
||||
|
||||
@@ -105,48 +108,65 @@ void setup(){
|
||||
server.on("/clearSSID.json", clearSSID);
|
||||
server.on("/resetSSID.json", resetSSID);
|
||||
server.on("/saveSSID.json", saveSSID);
|
||||
server.on("/restartESP.json", restartESP);
|
||||
|
||||
server.begin();
|
||||
}
|
||||
|
||||
void loop(){
|
||||
if(clientScan.sniffing){
|
||||
if(clientScan.stop()) startWifi();
|
||||
} else{
|
||||
void loop() {
|
||||
if (clientScan.sniffing) {
|
||||
if (clientScan.stop()) startWifi();
|
||||
} else {
|
||||
server.handleClient();
|
||||
attack.run();
|
||||
}
|
||||
}
|
||||
|
||||
void load404(){ server.send ( 200, "text/html", data_get404()); }
|
||||
void loadIndex(){ server.send ( 200, "text/html", data_getIndexHTML() ); }
|
||||
void loadClients(){ server.send ( 200, "text/html", data_getClientsHTML()); }
|
||||
void loadAttack(){ server.send ( 200, "text/html", data_getAttackHTML() ); }
|
||||
void loadFunctionsJS(){ server.send( 200, "text/javascript", data_getFunctionsJS() ); }
|
||||
void loadStyle(){ server.send ( 200, "text/css", data_getStyle() ); }
|
||||
void loadManifest(){ server.send ( 200, "text/css", data_getManifest() ); }
|
||||
void loadSettings(){ server.send( 200, "text/html", data_getSettingsHTML() ); }
|
||||
void load404() {
|
||||
server.send ( 200, "text/html", data_get404());
|
||||
}
|
||||
void loadIndex() {
|
||||
server.send ( 200, "text/html", data_getIndexHTML() );
|
||||
}
|
||||
void loadClients() {
|
||||
server.send ( 200, "text/html", data_getClientsHTML());
|
||||
}
|
||||
void loadAttack() {
|
||||
server.send ( 200, "text/html", data_getAttackHTML() );
|
||||
}
|
||||
void loadFunctionsJS() {
|
||||
server.send( 200, "text/javascript", data_getFunctionsJS() );
|
||||
}
|
||||
void loadStyle() {
|
||||
server.send ( 200, "text/css", data_getStyle() );
|
||||
}
|
||||
void loadManifest() {
|
||||
server.send ( 200, "text/css", data_getManifest() );
|
||||
}
|
||||
void loadSettings() {
|
||||
server.send( 200, "text/html", data_getSettingsHTML() );
|
||||
}
|
||||
|
||||
|
||||
//==========AP-Scan==========
|
||||
void startAPScan(){
|
||||
if(apScan.start()){
|
||||
void startAPScan() {
|
||||
if (apScan.start()) {
|
||||
server.send ( 200, "text/json", "true");
|
||||
attack.stopAll();
|
||||
}
|
||||
}
|
||||
|
||||
void sendAPResults(){
|
||||
if(server.hasArg("apid")) {
|
||||
void sendAPResults() {
|
||||
if (server.hasArg("apid")) {
|
||||
int apid = server.arg("apid").toInt();
|
||||
server.send ( 200, "text/json", apScan.getResult(apid));
|
||||
server.send ( 200, "text/json", apScan.getResult(apid));
|
||||
} else {
|
||||
server.send ( 200, "text/json", apScan.getResults());
|
||||
server.send ( 200, "text/json", apScan.getResults());
|
||||
}
|
||||
}
|
||||
|
||||
void selectAP(){
|
||||
if(server.hasArg("num")) {
|
||||
void selectAP() {
|
||||
if (server.hasArg("num")) {
|
||||
apScan.select(server.arg("num").toInt());
|
||||
server.send( 200, "text/json", "true");
|
||||
attack.stopAll();
|
||||
@@ -154,129 +174,151 @@ void selectAP(){
|
||||
}
|
||||
|
||||
//==========Client-Scan==========
|
||||
void startClientScan(){
|
||||
if(server.hasArg("time") && apScan.getFirstTarget() > -1 && !clientScan.sniffing) {
|
||||
void startClientScan() {
|
||||
if (server.hasArg("time") && apScan.getFirstTarget() > -1 && !clientScan.sniffing) {
|
||||
server.send(200, "text/json", "true");
|
||||
clientScan.start(server.arg("time").toInt());
|
||||
attack.stopAll();
|
||||
} else server.send( 200, "text/json", "Error: no selected access point");
|
||||
}
|
||||
|
||||
void sendClientResults(){ server.send( 200, "text/json", clientScan.getResults() ); }
|
||||
void sendClientScanTime(){ server.send( 200, "text/json", (String)settings.clientScanTime ); }
|
||||
void sendClientResults() {
|
||||
server.send( 200, "text/json", clientScan.getResults() );
|
||||
}
|
||||
void sendClientScanTime() {
|
||||
server.send( 200, "text/json", (String)settings.clientScanTime );
|
||||
}
|
||||
|
||||
void selectClient(){
|
||||
if(server.hasArg("num")) {
|
||||
void selectClient() {
|
||||
if (server.hasArg("num")) {
|
||||
clientScan.select(server.arg("num").toInt());
|
||||
attack.stop(0);
|
||||
server.send( 200, "text/json", "true");
|
||||
}
|
||||
}
|
||||
|
||||
void setClientName(){
|
||||
if(server.hasArg("id") && server.hasArg("name")) {
|
||||
nameList.add(clientScan.getClientMac(server.arg("id").toInt()),server.arg("name"));
|
||||
void setClientName() {
|
||||
if (server.hasArg("id") && server.hasArg("name")) {
|
||||
nameList.add(clientScan.getClientMac(server.arg("id").toInt()), server.arg("name"));
|
||||
server.send( 200, "text/json", "true");
|
||||
}
|
||||
}
|
||||
|
||||
//==========Attack==========
|
||||
void sendAttackInfo(){ server.send( 200, "text/json", attack.getResults()); }
|
||||
void sendAttackInfo() {
|
||||
server.send( 200, "text/json", attack.getResults());
|
||||
}
|
||||
|
||||
void startAttack(){
|
||||
if(server.hasArg("num")) {
|
||||
void startAttack() {
|
||||
if (server.hasArg("num")) {
|
||||
int _attackNum = server.arg("num").toInt();
|
||||
if(apScan.getFirstTarget() > -1 || _attackNum == 2){
|
||||
if (apScan.getFirstTarget() > -1 || _attackNum == 2) {
|
||||
attack.start(server.arg("num").toInt());
|
||||
server.send ( 200, "text/json", "true");
|
||||
}else server.send( 200, "text/json", "false");
|
||||
} else server.send( 200, "text/json", "false");
|
||||
}
|
||||
}
|
||||
|
||||
void addSSID(){
|
||||
void addSSID() {
|
||||
ssidList.add(server.arg("name"));
|
||||
server.send( 200, "text/json", "true");
|
||||
}
|
||||
|
||||
void cloneSSID(){
|
||||
void cloneSSID() {
|
||||
ssidList.addClone(server.arg("name"));
|
||||
server.send( 200, "text/json", "true");
|
||||
server.send( 200, "text/json", "true");
|
||||
}
|
||||
|
||||
void deleteSSID(){
|
||||
void deleteSSID() {
|
||||
ssidList.remove(server.arg("num").toInt());
|
||||
server.send( 200, "text/json", "true");
|
||||
}
|
||||
|
||||
void randomSSID(){
|
||||
void randomSSID() {
|
||||
ssidList._random();
|
||||
server.send( 200, "text/json", "true");
|
||||
server.send( 200, "text/json", "true");
|
||||
}
|
||||
|
||||
void clearSSID(){
|
||||
void clearSSID() {
|
||||
ssidList.clear();
|
||||
server.send( 200, "text/json", "true");
|
||||
}
|
||||
|
||||
void resetSSID(){
|
||||
void resetSSID() {
|
||||
ssidList.load();
|
||||
server.send( 200, "text/json", "true");
|
||||
}
|
||||
|
||||
void saveSSID(){
|
||||
void saveSSID() {
|
||||
ssidList.save();
|
||||
server.send( 200, "text/json", "true");
|
||||
}
|
||||
|
||||
//==========Settings==========
|
||||
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("apScanHidden")){
|
||||
if(server.arg("apScanHidden") == "false") settings.apScanHidden = false;
|
||||
else settings.apScanHidden = true;
|
||||
}
|
||||
|
||||
settings.save();
|
||||
server.send( 200, "text/json", "true" );
|
||||
void restartESP() {
|
||||
server.send( 200, "text/json", "true");
|
||||
ESP.reset();
|
||||
}
|
||||
|
||||
void resetSettings(){
|
||||
//==========Settings==========
|
||||
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")) {
|
||||
if(server.arg("apChannel").toInt() >= 1 && server.arg("apChannel").toInt() <= 11){
|
||||
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("apScanHidden")) {
|
||||
if (server.arg("apScanHidden") == "false") settings.apScanHidden = false;
|
||||
else settings.apScanHidden = true;
|
||||
}
|
||||
if (server.hasArg("useLed")) {
|
||||
if (server.arg("useLed") == "false") settings.useLed = false;
|
||||
else settings.useLed = true;
|
||||
attack.refreshLed();
|
||||
}
|
||||
|
||||
settings.save();
|
||||
server.send( 200, "text/json", "true" );
|
||||
}
|
||||
|
||||
void resetSettings() {
|
||||
settings.reset();
|
||||
server.send( 200, "text/json", "true" );
|
||||
}
|
||||
|
||||
void deleteName(){
|
||||
if(server.hasArg("num")) {
|
||||
void deleteName() {
|
||||
if (server.hasArg("num")) {
|
||||
int _num = server.arg("num").toInt();
|
||||
nameList.remove(_num);
|
||||
server.send( 200, "text/json", "true");
|
||||
}
|
||||
}
|
||||
|
||||
void clearNameList(){
|
||||
void clearNameList() {
|
||||
nameList.clear();
|
||||
server.send( 200, "text/json", "true" );
|
||||
}
|
||||
|
||||
void editClientName(){
|
||||
if(server.hasArg("id") && server.hasArg("name")) {
|
||||
nameList.edit(server.arg("id").toInt(),server.arg("name"));
|
||||
void editClientName() {
|
||||
if (server.hasArg("id") && server.hasArg("name")) {
|
||||
nameList.edit(server.arg("id").toInt(), server.arg("name"));
|
||||
server.send( 200, "text/json", "true");
|
||||
}
|
||||
}
|
||||
|
||||
@@ -20,6 +20,9 @@
|
||||
<a href="clients.html">Clients</a>
|
||||
<a href="attack.html">Attack</a>
|
||||
<a href="settings.html">Settings</a>
|
||||
<ul class="nav right">
|
||||
<a href="#" onclick="restartESP()">Restart</a>
|
||||
<ul>
|
||||
</nav>
|
||||
<div id="content">
|
||||
<h1>Attack</h1>
|
||||
@@ -160,6 +163,12 @@
|
||||
getResponse("resetSSID.json",getResults);
|
||||
}
|
||||
|
||||
function restartESP(){
|
||||
getResponse("restartESP.json", function(responseText){
|
||||
if(responseText == "true") getData();
|
||||
else alert("error");
|
||||
});
|
||||
}
|
||||
|
||||
getResults();
|
||||
resultInterval = setInterval(getResults,3000);
|
||||
|
||||
@@ -26,6 +26,9 @@
|
||||
<a href="clients.html">Clients</a>
|
||||
<a href="attack.html">Attack</a>
|
||||
<a href="settings.html">Settings</a>
|
||||
<ul class="nav right">
|
||||
<a href="#" onclick="restartESP()">Restart</a>
|
||||
<ul>
|
||||
</nav>
|
||||
<div id="content">
|
||||
<h1>Scan for client devices</h1>
|
||||
@@ -139,10 +142,17 @@
|
||||
}
|
||||
}
|
||||
|
||||
function restartESP(){
|
||||
getResponse("restartESP.json", function(responseText){
|
||||
if(responseText == "true") getData();
|
||||
else alert("error");
|
||||
});
|
||||
}
|
||||
|
||||
getResponse("ClientScanTime.json",function(responseText){
|
||||
scanTime.value = responseText;
|
||||
});
|
||||
|
||||
|
||||
getResults();
|
||||
</script>
|
||||
</html>
|
||||
@@ -34,6 +34,9 @@
|
||||
<a href="clients.html">Clients</a>
|
||||
<a href="attack.html">Attack</a>
|
||||
<a href="settings.html">Settings</a>
|
||||
<ul class="nav right">
|
||||
<a href="#" onclick="restartESP()">Restart</a>
|
||||
<ul>
|
||||
</nav>
|
||||
<div id="content">
|
||||
<h1>Scan for WiFi access points</h1>
|
||||
@@ -154,6 +157,13 @@
|
||||
});
|
||||
}
|
||||
|
||||
function restartESP(){
|
||||
getResponse("restartESP.json", function(responseText){
|
||||
if(responseText == "true") getData();
|
||||
else alert("error");
|
||||
});
|
||||
}
|
||||
|
||||
getResults();
|
||||
|
||||
setInterval(function(){
|
||||
|
||||
@@ -25,6 +25,9 @@
|
||||
<a href="clients.html">Clients</a>
|
||||
<a href="attack.html">Attack</a>
|
||||
<a href="settings.html">Settings</a>
|
||||
<ul class="right">
|
||||
<a href="#" onclick="restartESP()">Restart</a>
|
||||
<ul>
|
||||
</nav>
|
||||
<div id="content">
|
||||
<h1>Settings</h1>
|
||||
@@ -73,6 +76,10 @@
|
||||
<input type="checkbox" name="ssidEnc" id="ssidEnc" value="false">
|
||||
<br />
|
||||
|
||||
<label for="useLed">Use LED:</label>
|
||||
<input type="checkbox" name="useLed" id="useLed" value="false">
|
||||
<br />
|
||||
|
||||
<label for="deauthReason">deauth reason:</label>
|
||||
<input type="number" id="deauthReason" min="1" max="45">
|
||||
<p class="small">reason codes: <a target="_blank" href="http://www.aboutcher.co.uk/2012/07/linux-wifi-deauthenticated-reason-codes/">click</a></p>
|
||||
@@ -82,7 +89,7 @@
|
||||
<p class="small">only for deauth attack - may cause instability!</p>
|
||||
<br />
|
||||
<br />
|
||||
<button class="warnBtn" onclick="resetSettings()">reset</button> <button onclick="saveSettings()">save</button><p class="small" id="saved"></p>
|
||||
<button class="warnBtn" onclick="resetSettings()">reset</button> <button onclick="saveSettings()">save</button><p class="small" id="saved"></p><br \>
|
||||
<br />
|
||||
<br />
|
||||
|
||||
@@ -112,6 +119,7 @@
|
||||
var saved = document.getElementById('saved');
|
||||
var clientNames = document.getElementById('clientNames');
|
||||
var ssidEnc = document.getElementById('ssidEnc');
|
||||
var useLed = document.getElementById('useLed');
|
||||
var res;
|
||||
|
||||
function getData(){
|
||||
@@ -128,6 +136,7 @@
|
||||
deauthReason.value = res.deauthReason;
|
||||
packetRate.value = res.attackPacketRate;
|
||||
ssidEnc.checked = res.attackEncrypted;
|
||||
useLed.checked = res.useLed;
|
||||
|
||||
|
||||
clientNames.innerHTML = "Client Names "+res.nameList.length+"/50";
|
||||
@@ -179,6 +188,7 @@
|
||||
url += "&deauthReason="+deauthReason.value;
|
||||
url += "&packetRate="+packetRate.value;
|
||||
url += "&ssidEnc="+ssidEnc.checked;
|
||||
url += "&useLed="+useLed.checked;
|
||||
|
||||
getResponse(url, function(responseText){
|
||||
if(responseText == "true"){
|
||||
@@ -206,6 +216,13 @@
|
||||
});
|
||||
}
|
||||
|
||||
function restartESP(){
|
||||
getResponse("restartESP.json", function(responseText){
|
||||
if(responseText == "true") getData();
|
||||
else alert("error");
|
||||
});
|
||||
}
|
||||
|
||||
getData();
|
||||
</script>
|
||||
</html>
|
||||
Reference in New Issue
Block a user