Просмотр исходного кода

Marauder: Fix script save pcaps handling

Willy-JL 1 год назад
Родитель
Сommit
6d9b64427b

+ 22 - 9
wifi_marauder_companion/scenes/wifi_marauder_scene_console_output.c

@@ -9,11 +9,16 @@ char* _wifi_marauder_get_prefix_from_cmd(const char* command) {
 }
 
 bool _wifi_marauder_is_save_pcaps_enabled(WifiMarauderApp* app) {
-    if(!app->ok_to_save_pcaps) {
-        return false;
-    }
     // If it is a script that contains a sniff function
     if(app->script != NULL) {
+        if(app->script->save_pcap == WifiMarauderScriptBooleanFalse) {
+            return false;
+        }
+        if(app->script->save_pcap == WifiMarauderScriptBooleanUndefined) {
+            if(!app->ok_to_save_pcaps) {
+                return false;
+            }
+        }
         return wifi_marauder_script_has_stage(app->script, WifiMarauderScriptStageTypeSniffRaw) ||
                wifi_marauder_script_has_stage(
                    app->script, WifiMarauderScriptStageTypeSniffBeacon) ||
@@ -24,6 +29,9 @@ bool _wifi_marauder_is_save_pcaps_enabled(WifiMarauderApp* app) {
                    app->script, WifiMarauderScriptStageTypeSniffPmkid) ||
                wifi_marauder_script_has_stage(app->script, WifiMarauderScriptStageTypeSniffPwn);
     }
+    if(!app->ok_to_save_pcaps) {
+        return false;
+    }
     // If it is a sniff function
     return app->is_command && app->selected_tx_string &&
            strncmp("sniff", app->selected_tx_string, strlen("sniff")) == 0;
@@ -152,12 +160,17 @@ void wifi_marauder_scene_console_output_on_enter(void* context) {
 
         // Send command with newline '\n'
         if(app->selected_tx_string) {
-            wifi_marauder_uart_tx(
-                app->uart, (uint8_t*)(app->selected_tx_string), strlen(app->selected_tx_string));
-            if(app->is_writing_pcap) {
-                wifi_marauder_uart_tx(app->uart, (uint8_t*)(" -serial\n"), strlen(" -serial\n"));
-            } else {
-                wifi_marauder_uart_tx(app->uart, (uint8_t*)("\n"), 1);
+            if(app->script == NULL) {
+                wifi_marauder_uart_tx(
+                    app->uart,
+                    (uint8_t*)(app->selected_tx_string),
+                    strlen(app->selected_tx_string));
+                if(app->is_writing_pcap) {
+                    wifi_marauder_uart_tx(
+                        app->uart, (uint8_t*)(" -serial\n"), strlen(" -serial\n"));
+                } else {
+                    wifi_marauder_uart_tx(app->uart, (uint8_t*)("\n"), 1);
+                }
             }
             if(send_html && the_html) {
                 wifi_marauder_uart_tx(app->uart, the_html, html_size);

+ 41 - 7
wifi_marauder_companion/script/wifi_marauder_script_executor.c

@@ -105,8 +105,13 @@ void _wifi_marauder_script_execute_probe(
 void _wifi_marauder_script_execute_sniff_raw(
     WifiMarauderScriptStageSniffRaw* stage,
     WifiMarauderScriptWorker* worker) {
-    const char sniff_command[] = "sniffraw -serial\n";
+    const char sniff_command[] = "sniffraw";
     wifi_marauder_uart_tx(worker->uart, (uint8_t*)sniff_command, strlen(sniff_command));
+    if(((WifiMarauderScript*)worker->context)->save_pcap != WifiMarauderScriptBooleanFalse) {
+        wifi_marauder_uart_tx(worker->uart, (uint8_t*)(" -serial\n"), strlen(" -serial\n"));
+    } else {
+        wifi_marauder_uart_tx(worker->uart, (uint8_t*)("\n"), 1);
+    }
     _wifi_marauder_script_delay(worker, stage->timeout);
     _send_stop(worker);
 }
@@ -114,8 +119,13 @@ void _wifi_marauder_script_execute_sniff_raw(
 void _wifi_marauder_script_execute_sniff_beacon(
     WifiMarauderScriptStageSniffBeacon* stage,
     WifiMarauderScriptWorker* worker) {
-    const char sniff_command[] = "sniffbeacon -serial\n";
+    const char sniff_command[] = "sniffbeacon";
     wifi_marauder_uart_tx(worker->uart, (uint8_t*)sniff_command, strlen(sniff_command));
+    if(((WifiMarauderScript*)worker->context)->save_pcap != WifiMarauderScriptBooleanFalse) {
+        wifi_marauder_uart_tx(worker->uart, (uint8_t*)(" -serial\n"), strlen(" -serial\n"));
+    } else {
+        wifi_marauder_uart_tx(worker->uart, (uint8_t*)("\n"), 1);
+    }
     _wifi_marauder_script_delay(worker, stage->timeout);
     _send_stop(worker);
 }
@@ -123,8 +133,13 @@ void _wifi_marauder_script_execute_sniff_beacon(
 void _wifi_marauder_script_execute_sniff_deauth(
     WifiMarauderScriptStageSniffDeauth* stage,
     WifiMarauderScriptWorker* worker) {
-    const char sniff_command[] = "sniffdeauth -serial\n";
+    const char sniff_command[] = "sniffdeauth";
     wifi_marauder_uart_tx(worker->uart, (uint8_t*)sniff_command, strlen(sniff_command));
+    if(((WifiMarauderScript*)worker->context)->save_pcap != WifiMarauderScriptBooleanFalse) {
+        wifi_marauder_uart_tx(worker->uart, (uint8_t*)(" -serial\n"), strlen(" -serial\n"));
+    } else {
+        wifi_marauder_uart_tx(worker->uart, (uint8_t*)("\n"), 1);
+    }
     _wifi_marauder_script_delay(worker, stage->timeout);
     _send_stop(worker);
 }
@@ -132,8 +147,13 @@ void _wifi_marauder_script_execute_sniff_deauth(
 void _wifi_marauder_script_execute_sniff_esp(
     WifiMarauderScriptStageSniffEsp* stage,
     WifiMarauderScriptWorker* worker) {
-    const char sniff_command[] = "sniffesp -serial\n";
+    const char sniff_command[] = "sniffesp";
     wifi_marauder_uart_tx(worker->uart, (uint8_t*)sniff_command, strlen(sniff_command));
+    if(((WifiMarauderScript*)worker->context)->save_pcap != WifiMarauderScriptBooleanFalse) {
+        wifi_marauder_uart_tx(worker->uart, (uint8_t*)(" -serial\n"), strlen(" -serial\n"));
+    } else {
+        wifi_marauder_uart_tx(worker->uart, (uint8_t*)("\n"), 1);
+    }
     _wifi_marauder_script_delay(worker, stage->timeout);
     _send_stop(worker);
 }
@@ -152,7 +172,12 @@ void _wifi_marauder_script_execute_sniff_pmkid(
                 len += snprintf(attack_command + len, sizeof(attack_command) - len, " -d");
             }
 
-            len += snprintf(attack_command + len, sizeof(attack_command) - len, " -serial\n");
+            if(((WifiMarauderScript*)worker->context)->save_pcap !=
+               WifiMarauderScriptBooleanFalse) {
+                len += snprintf(attack_command + len, sizeof(attack_command) - len, " -serial\n");
+            } else {
+                len += snprintf(attack_command + len, sizeof(attack_command) - len, "\n");
+            }
             wifi_marauder_uart_tx(worker->uart, (uint8_t*)attack_command, len);
             _wifi_marauder_script_delay(worker, stage->timeout);
             _send_stop(worker);
@@ -169,7 +194,11 @@ void _wifi_marauder_script_execute_sniff_pmkid(
         if(stage->force_deauth) {
             len += snprintf(attack_command + len, sizeof(attack_command) - len, " -d");
         }
-        len += snprintf(attack_command + len, sizeof(attack_command) - len, " -serial\n");
+        if(((WifiMarauderScript*)worker->context)->save_pcap != WifiMarauderScriptBooleanFalse) {
+            len += snprintf(attack_command + len, sizeof(attack_command) - len, " -serial\n");
+        } else {
+            len += snprintf(attack_command + len, sizeof(attack_command) - len, "\n");
+        }
         wifi_marauder_uart_tx(worker->uart, (uint8_t*)attack_command, len);
         _wifi_marauder_script_delay(worker, stage->timeout);
         _send_stop(worker);
@@ -179,8 +208,13 @@ void _wifi_marauder_script_execute_sniff_pmkid(
 void _wifi_marauder_script_execute_sniff_pwn(
     WifiMarauderScriptStageSniffPwn* stage,
     WifiMarauderScriptWorker* worker) {
-    const char sniff_command[] = "sniffpwn -serial\n";
+    const char sniff_command[] = "sniffpwn";
     wifi_marauder_uart_tx(worker->uart, (uint8_t*)sniff_command, strlen(sniff_command));
+    if(((WifiMarauderScript*)worker->context)->save_pcap != WifiMarauderScriptBooleanFalse) {
+        wifi_marauder_uart_tx(worker->uart, (uint8_t*)(" -serial\n"), strlen(" -serial\n"));
+    } else {
+        wifi_marauder_uart_tx(worker->uart, (uint8_t*)("\n"), 1);
+    }
     _wifi_marauder_script_delay(worker, stage->timeout);
     _send_stop(worker);
 }