Some checks failed
Discord Push Notification / notify (push) Has been cancelled
Phase 1 of v0.4.0 offensive modules: - Promiscuous dispatcher (rt_promisc): shared IRAM callback multiplexer for stealth scan, karma, capture — solves single-callback ESP-IDF limit - Attack manager (rt_attack): mutual exclusion ensuring only one offensive operation runs at a time - Deauth refactored to use shared promisc dispatcher + attack lock - Stealth passive scan migrated to promisc dispatcher - Karma attack (rt_karma): probe request listener + probe response injection + rogue SoftAP with most-requested SSID + DNS responder - WPA handshake capture (rt_capture): EAPOL frame capture via promiscuous DATA filter, 4-way handshake identification, optional deauth burst to trigger reconnection - Kconfig: RT_BEACON, RT_KARMA, RT_CAPTURE toggle options - 5 new C2 commands: rt_karma, rt_karma_stop, rt_karma_clients, rt_capture, rt_capture_stop (14 total in mod_redteam)
50 lines
1.1 KiB
C
50 lines
1.1 KiB
C
/*
|
|
* rt_attack.h
|
|
* Mutual exclusion for offensive operations.
|
|
*
|
|
* Only one attack (deauth, beacon, karma, capture) can run at a time.
|
|
* Each attack calls rt_attack_start() before launching its task and
|
|
* rt_attack_stop() when it finishes or is aborted.
|
|
*/
|
|
#pragma once
|
|
|
|
#include <stdbool.h>
|
|
#include "esp_err.h"
|
|
|
|
#ifdef __cplusplus
|
|
extern "C" {
|
|
#endif
|
|
|
|
typedef enum {
|
|
RT_ATTACK_NONE = 0,
|
|
RT_ATTACK_DEAUTH,
|
|
RT_ATTACK_BEACON,
|
|
RT_ATTACK_KARMA,
|
|
RT_ATTACK_CAPTURE,
|
|
} rt_attack_type_t;
|
|
|
|
/* Initialise the attack manager (call once, idempotent). */
|
|
void rt_attack_init(void);
|
|
|
|
/*
|
|
* Try to start an attack. Returns ESP_OK if acquired, or
|
|
* ESP_ERR_INVALID_STATE if another attack is already running.
|
|
*/
|
|
esp_err_t rt_attack_start(rt_attack_type_t type);
|
|
|
|
/* Release the attack lock (call from the stopping attack). */
|
|
void rt_attack_stop(void);
|
|
|
|
/* Current attack type (NONE if idle). */
|
|
rt_attack_type_t rt_attack_current(void);
|
|
|
|
/* Human-readable name for the current attack. */
|
|
const char *rt_attack_name(void);
|
|
|
|
/* True if any attack is in progress. */
|
|
bool rt_attack_is_active(void);
|
|
|
|
#ifdef __cplusplus
|
|
}
|
|
#endif
|