mirror of
https://github.com/justcallmekoko/ESP32Marauder.git
synced 2026-08-03 09:21:38 -07:00
Deauth with evil portal
This commit is contained in:
@@ -1540,7 +1540,7 @@ void MenuFunctions::updateStatusBar()
|
||||
}
|
||||
|
||||
// Force PMKID stuff
|
||||
if (wifi_scan_obj.force_pmkid) {
|
||||
if ((wifi_scan_obj.force_pmkid) || (wifi_scan_obj.ep_deauth)) {
|
||||
#ifdef HAS_FULL_SCREEN
|
||||
display_obj.tft.drawXBitmap(170 - (16 * 2),
|
||||
0,
|
||||
@@ -1732,7 +1732,7 @@ void MenuFunctions::drawStatusBar()
|
||||
}
|
||||
|
||||
// Force PMKID stuff
|
||||
if (wifi_scan_obj.force_pmkid) {
|
||||
if ((wifi_scan_obj.force_pmkid) || (wifi_scan_obj.ep_deauth)) {
|
||||
#ifdef HAS_FULL_SCREEN
|
||||
display_obj.tft.drawXBitmap(170 - (16 * 2),
|
||||
0,
|
||||
@@ -3140,6 +3140,7 @@ void MenuFunctions::RunSetup()
|
||||
wifi_scan_obj.force_pmkid = settings_obj.loadSetting<bool>(text_table4[5]);
|
||||
wifi_scan_obj.force_probe = settings_obj.loadSetting<bool>(text_table4[6]);
|
||||
wifi_scan_obj.save_pcap = settings_obj.loadSetting<bool>(text_table4[7]);
|
||||
wifi_scan_obj.ep_deauth = settings_obj.loadSetting<bool>("EPDeauth");
|
||||
}, settings_obj.loadSetting<bool>(settings_obj.setting_index_to_name(i)));
|
||||
}
|
||||
|
||||
|
||||
@@ -855,6 +855,7 @@ void WiFiScan::initWiFi(uint8_t scan_mode) {
|
||||
this->force_pmkid = settings_obj.loadSetting<bool>(text_table4[5]);
|
||||
this->force_probe = settings_obj.loadSetting<bool>(text_table4[6]);
|
||||
this->save_pcap = settings_obj.loadSetting<bool>(text_table4[7]);
|
||||
this->ep_deauth = settings_obj.loadSetting<bool>("EPDeauth");
|
||||
//Serial.println(F("Initialization complete"));
|
||||
}
|
||||
}
|
||||
@@ -7575,6 +7576,16 @@ void WiFiScan::main(uint32_t currentTime)
|
||||
}
|
||||
}
|
||||
else if (currentScanMode == WIFI_SCAN_EVIL_PORTAL) {
|
||||
if (currentTime - initTime >= this->channel_hop_delay * HOP_DELAY) {
|
||||
initTime = millis();
|
||||
if (this->ep_deauth) {
|
||||
for (int i = 0; i < access_points->size(); i++) {
|
||||
if (access_points->get(i).selected) {
|
||||
this->sendDeauthFrame(access_points->get(i).bssid, access_points->get(i).channel);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
evil_portal_obj.main(currentScanMode);
|
||||
}
|
||||
else if (currentScanMode == WIFI_PACKET_MONITOR)
|
||||
|
||||
@@ -500,6 +500,7 @@ class WiFiScan
|
||||
bool force_pmkid = false;
|
||||
bool force_probe = false;
|
||||
bool save_pcap = false;
|
||||
bool ep_deauth = false;
|
||||
|
||||
String analyzer_name_string = "";
|
||||
|
||||
|
||||
+65
-38
@@ -91,7 +91,7 @@ bool Settings::loadSetting<bool>(String key) {
|
||||
DynamicJsonDocument json(1024); // ArduinoJson v6
|
||||
|
||||
if (deserializeJson(json, this->json_settings_string)) {
|
||||
Serial.println("\nCould not parse json");
|
||||
Serial.println("Could not parse json to load");
|
||||
}
|
||||
|
||||
for (int i = 0; i < json["Settings"].size(); i++) {
|
||||
@@ -99,6 +99,10 @@ bool Settings::loadSetting<bool>(String key) {
|
||||
return json["Settings"][i]["value"];
|
||||
}
|
||||
|
||||
Serial.println("Did not find setting named " + (String)key + ". Creating...");
|
||||
if (this->createDefaultSettings(SPIFFS, true, json["Settings"].size(), "bool", key))
|
||||
return true;
|
||||
|
||||
return false;
|
||||
}
|
||||
|
||||
@@ -239,7 +243,7 @@ void Settings::printJsonSettings(String json_string) {
|
||||
}
|
||||
}
|
||||
|
||||
bool Settings::createDefaultSettings(fs::FS &fs) {
|
||||
bool Settings::createDefaultSettings(fs::FS &fs, bool spec, uint8_t index, String typeStr, String name) {
|
||||
Serial.println(F("Creating default settings file: settings.json"));
|
||||
|
||||
File settingsFile = fs.open("/settings.json", FILE_WRITE);
|
||||
@@ -249,51 +253,74 @@ bool Settings::createDefaultSettings(fs::FS &fs) {
|
||||
return false;
|
||||
}
|
||||
|
||||
DynamicJsonDocument jsonBuffer(1024);
|
||||
String settings_string;
|
||||
|
||||
//jsonBuffer["Settings"][0]["name"] = "Channel";
|
||||
//jsonBuffer["Settings"][0]["type"] = "uint8_t";
|
||||
//jsonBuffer["Settings"][0]["value"] = 11;
|
||||
//jsonBuffer["Settings"][0]["range"]["min"] = 1;
|
||||
//jsonBuffer["Settings"][0]["range"]["max"] = 14;
|
||||
if (!spec) {
|
||||
DynamicJsonDocument jsonBuffer(1024);
|
||||
|
||||
//jsonBuffer["Settings"][1]["name"] = "Channel Hop Delay";
|
||||
//jsonBuffer["Settings"][1]["type"] = "int";
|
||||
//jsonBuffer["Settings"][1]["value"] = 1;
|
||||
//jsonBuffer["Settings"][1]["range"]["min"] = 1;
|
||||
//jsonBuffer["Settings"][1]["range"]["max"] = 10;
|
||||
jsonBuffer["Settings"][0]["name"] = "ForcePMKID";
|
||||
jsonBuffer["Settings"][0]["type"] = "bool";
|
||||
jsonBuffer["Settings"][0]["value"] = false;
|
||||
jsonBuffer["Settings"][0]["range"]["min"] = false;
|
||||
jsonBuffer["Settings"][0]["range"]["max"] = true;
|
||||
|
||||
jsonBuffer["Settings"][0]["name"] = "ForcePMKID";
|
||||
jsonBuffer["Settings"][0]["type"] = "bool";
|
||||
jsonBuffer["Settings"][0]["value"] = true;
|
||||
jsonBuffer["Settings"][0]["range"]["min"] = false;
|
||||
jsonBuffer["Settings"][0]["range"]["max"] = true;
|
||||
jsonBuffer["Settings"][1]["name"] = "ForceProbe";
|
||||
jsonBuffer["Settings"][1]["type"] = "bool";
|
||||
jsonBuffer["Settings"][1]["value"] = false;
|
||||
jsonBuffer["Settings"][1]["range"]["min"] = false;
|
||||
jsonBuffer["Settings"][1]["range"]["max"] = true;
|
||||
|
||||
jsonBuffer["Settings"][1]["name"] = "ForceProbe";
|
||||
jsonBuffer["Settings"][1]["type"] = "bool";
|
||||
jsonBuffer["Settings"][1]["value"] = true;
|
||||
jsonBuffer["Settings"][1]["range"]["min"] = false;
|
||||
jsonBuffer["Settings"][1]["range"]["max"] = true;
|
||||
jsonBuffer["Settings"][2]["name"] = "SavePCAP";
|
||||
jsonBuffer["Settings"][2]["type"] = "bool";
|
||||
jsonBuffer["Settings"][2]["value"] = true;
|
||||
jsonBuffer["Settings"][2]["range"]["min"] = false;
|
||||
jsonBuffer["Settings"][2]["range"]["max"] = true;
|
||||
|
||||
jsonBuffer["Settings"][2]["name"] = "SavePCAP";
|
||||
jsonBuffer["Settings"][2]["type"] = "bool";
|
||||
jsonBuffer["Settings"][2]["value"] = true;
|
||||
jsonBuffer["Settings"][2]["range"]["min"] = false;
|
||||
jsonBuffer["Settings"][2]["range"]["max"] = true;
|
||||
jsonBuffer["Settings"][3]["name"] = "EnableLED";
|
||||
jsonBuffer["Settings"][3]["type"] = "bool";
|
||||
jsonBuffer["Settings"][3]["value"] = true;
|
||||
jsonBuffer["Settings"][3]["range"]["min"] = false;
|
||||
jsonBuffer["Settings"][3]["range"]["max"] = true;
|
||||
|
||||
jsonBuffer["Settings"][3]["name"] = "EnableLED";
|
||||
jsonBuffer["Settings"][3]["type"] = "bool";
|
||||
jsonBuffer["Settings"][3]["value"] = true;
|
||||
jsonBuffer["Settings"][3]["range"]["min"] = false;
|
||||
jsonBuffer["Settings"][3]["range"]["max"] = true;
|
||||
jsonBuffer["Settings"][4]["name"] = "EPDeauth";
|
||||
jsonBuffer["Settings"][4]["type"] = "bool";
|
||||
jsonBuffer["Settings"][4]["value"] = false;
|
||||
jsonBuffer["Settings"][4]["range"]["min"] = false;
|
||||
jsonBuffer["Settings"][4]["range"]["max"] = true;
|
||||
|
||||
//jsonBuffer.printTo(settingsFile);
|
||||
if (serializeJson(jsonBuffer, settingsFile) == 0) {
|
||||
Serial.println(F("Failed to write to file"));
|
||||
//jsonBuffer.printTo(settingsFile);
|
||||
if (serializeJson(jsonBuffer, settingsFile) == 0) {
|
||||
Serial.println(F("Failed to write to file"));
|
||||
}
|
||||
if (serializeJson(jsonBuffer, settings_string) == 0) {
|
||||
Serial.println(F("Failed to write to string"));
|
||||
}
|
||||
}
|
||||
if (serializeJson(jsonBuffer, settings_string) == 0) {
|
||||
Serial.println(F("Failed to write to string"));
|
||||
|
||||
else {
|
||||
DynamicJsonDocument json(1024); // ArduinoJson v6
|
||||
|
||||
if (deserializeJson(json, this->json_settings_string)) {
|
||||
Serial.println("Could not parse json to create new setting");
|
||||
return false;
|
||||
}
|
||||
|
||||
if (typeStr == "bool") {
|
||||
Serial.println("Creating bool setting...");
|
||||
json["Settings"][index]["name"] = name;
|
||||
json["Settings"][index]["type"] = typeStr;
|
||||
json["Settings"][index]["value"] = false;
|
||||
json["Settings"][index]["range"]["min"] = false;
|
||||
json["Settings"][index]["range"]["max"] = true;
|
||||
|
||||
if (serializeJson(json, settings_string) == 0) {
|
||||
Serial.println("Failed to write to string");
|
||||
}
|
||||
|
||||
if (serializeJson(json, settingsFile) == 0) {
|
||||
Serial.println("Failed to write to file");
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// Close the file
|
||||
|
||||
@@ -49,7 +49,7 @@ class Settings {
|
||||
//uint8_t loadSetting<uint8_t>(String key);
|
||||
|
||||
String getSettingsString();
|
||||
bool createDefaultSettings(fs::FS &fs);
|
||||
bool createDefaultSettings(fs::FS &fs, bool spec = false, uint8_t index = 0, String typeStr = "bool", String name = "");
|
||||
void printJsonSettings(String json_string);
|
||||
void main(uint32_t currentTime);
|
||||
};
|
||||
|
||||
Reference in New Issue
Block a user