Politician 1.0.0
WiFi Auditing Library for ESP32
Loading...
Searching...
No Matches
politician Namespace Reference

Namespaces

namespace  fingerprint
 
namespace  format
 
namespace  storage
 
namespace  stress
 PoliticianStress: Decoupled DoS / Disruption Payload Delivery System.
 

Classes

struct  __attribute__
 
struct  ApRecord
 Snapshot of a discovered Access Point from the internal cache. More...
 
struct  AttackResultRecord
 Identifies the AP and failure reason for a failed attack, delivered to the AttackResultCb callback. More...
 
struct  Config
 Configuration for the Politician engine. More...
 
struct  DeviceFingerprint
 One fingerprint entry in the built-in or user-defined database. More...
 
struct  DeviceRecord
 A matched device, delivered to the DeviceFoundCb callback. More...
 
struct  DisruptRecord
 A deauthentication or disassociation frame observed on the air, delivered to the DisruptCb callback. More...
 
struct  EapIdentityRecord
 A harvested 802.1X Enterprise plaintext identity, delivered to the IdentityCb callback. More...
 
struct  HandshakeRecord
 A captured handshake or PMKID record delivered to the EapolCb callback. More...
 
union  HandshakeRecord.__unnamed3__
 
union  HandshakeRecord.__unnamed5__
 
class  Politician
 The core WiFi handshake capturing engine. More...
 
struct  ProbeRequestRecord
 A probe request frame observed on the air, delivered to the ProbeRequestCb callback. More...
 
struct  RogueApRecord
 Fired when a second BSSID advertising the same SSID is observed on the same channel. More...
 
struct  Stats
 Cumulative frame and capture counters for the engine session. More...
 

Typedefs

typedef void(* LogCb) (const char *msg)
 
typedef void(* ApFoundCb) (const ApRecord &ap)
 
typedef int(* TargetScoreCb) (const ApRecord &ap, const char *vendor)
 
typedef void(* PacketCb) (const uint8_t *payload, uint16_t len, int8_t rssi, uint8_t channel, uint32_t ts_usec)
 
typedef void(* EapolCb) (const HandshakeRecord &rec)
 
typedef void(* IdentityCb) (const EapIdentityRecord &rec)
 
typedef void(* ProbeRequestCb) (const ProbeRequestRecord &rec)
 
typedef void(* DisruptCb) (const DisruptRecord &rec)
 
typedef void(* AttackResultCb) (const AttackResultRecord &rec)
 
typedef void(* ClientFoundCb) (const uint8_t *bssid, const uint8_t *sta, int8_t rssi)
 
typedef void(* RogueApCb) (const RogueApRecord &rec)
 

Enumerations

enum  Error {
  OK = 0 ,
  ERR_WIFI_INIT = 1 ,
  ERR_INVALID_CH = 2 ,
  ERR_NOT_ACTIVE = 3 ,
  ERR_ALREADY_CAPTURED = 4 ,
  ERR_NOT_FOUND = 5
}
 
enum  DisconnectStrategy : uint8_t {
  STRATEGY_AUTO_FALLBACK = 0 ,
  STRATEGY_SIMULTANEOUS = 1
}
 
enum  AttackResult : uint8_t {
  RESULT_PMKID_EXHAUSTED = 1 ,
  RESULT_CSA_EXPIRED = 2
}
 

Functions

static bool isValidChannel (uint8_t ch)
 

Variables

static const uint8_t CHANNEL_5GHZ_COMMON []
 

Class Documentation

◆ politician::__attribute__

struct politician::__attribute__

Definition at line 31 of file Politician.h.

Class Members
uint8_t addr1[6]
uint8_t addr2[6]
uint8_t addr3[6]
uint16_t duration
uint16_t frame_ctrl
ieee80211_hdr_t hdr
uint8_t payload[0]
uint16_t seq_ctrl

◆ politician::ApRecord

struct politician::ApRecord

Snapshot of a discovered Access Point from the internal cache.

Populated by getAp(), getApByBssid(), and the ApFoundCb callback.

Definition at line 108 of file PoliticianTypes.h.

Class Members
uint16_t beacon_interval
uint8_t bssid[6]
bool captured
uint8_t chan_util
uint8_t channel
char country[3]
uint8_t enc
uint32_t first_seen_ms
bool ft_capable
bool is_hidden
uint32_t last_seen_ms
uint8_t max_rate_mbps
uint8_t network_type
bool pmf_capable
bool pmf_required
int8_t rssi
char ssid[33]
uint8_t ssid_len
uint16_t sta_count
uint8_t total_attempts
uint8_t venue_group
uint8_t venue_type
bool wps_enabled

◆ politician::AttackResultRecord

struct politician::AttackResultRecord

Identifies the AP and failure reason for a failed attack, delivered to the AttackResultCb callback.

Definition at line 204 of file PoliticianTypes.h.

Class Members
uint8_t bssid[6]
AttackResult result
char ssid[33]
uint8_t ssid_len

◆ politician::Config

struct politician::Config

Configuration for the Politician engine.

Definition at line 73 of file PoliticianTypes.h.

Class Members
uint32_t ap_expiry_ms = 300000
uint8_t capture_filter = LOG_FILTER_HANDSHAKES | LOG_FILTER_PROBES
bool capture_group_keys = false
bool capture_half_handshakes = false
uint8_t csa_beacon_count = 8
uint8_t csa_deauth_count = 15
uint32_t csa_wait_ms = 4000
uint8_t deauth_burst_count = 16
uint8_t deauth_reason = 7
bool deauth_reason_cycling = true
uint8_t enc_filter_mask = 0xFF
uint8_t fish_max_retries = 2
uint32_t fish_timeout_ms = 2000
uint16_t hop_dwell_ms = 200
uint16_t hop_max_dwell_ms = 400
uint16_t hop_min_dwell_ms = 50
uint32_t m1_lock_ms = 800
uint8_t max_total_attempts = 0
uint8_t min_beacon_count = 0
int8_t min_rssi = -100
uint16_t probe_aggr_interval_s = 30
uint32_t probe_hidden_interval_ms = 0
bool require_active_clients = false
uint32_t session_timeout_ms = 60000
bool skip_immune_networks = true
bool smart_hopping = true
char ssid_filter[33] = {}
bool ssid_filter_exact = true
uint8_t sta_filter[6] = {}
bool unicast_deauth = true

◆ politician::DeviceFingerprint

struct politician::DeviceFingerprint

One fingerprint entry in the built-in or user-defined database.

Definition at line 279 of file PoliticianTypes.h.

Class Members
uint8_t confidence
uint8_t ht_cap_info[2]
uint8_t ht_cap_mask[2]
uint8_t ie_flags
uint8_t ie_flags_mask
const char * model
uint8_t oui[3]
const char * probeSsid
uint8_t rate_sig[4]
const char * vendor

◆ politician::DeviceRecord

struct politician::DeviceRecord

A matched device, delivered to the DeviceFoundCb callback.

Definition at line 294 of file PoliticianTypes.h.

Class Members
uint8_t channel
uint8_t confidence
uint8_t mac[6]
uint8_t match_flags
char model[32]
int8_t rssi
char vendor[32]

◆ politician::DisruptRecord

struct politician::DisruptRecord

A deauthentication or disassociation frame observed on the air, delivered to the DisruptCb callback.

Definition at line 252 of file PoliticianTypes.h.

Class Members
uint8_t bssid[6]
uint8_t channel
uint8_t dst[6]
bool rand_mac
uint16_t reason
int8_t rssi
uint8_t src[6]
uint8_t subtype

◆ politician::EapIdentityRecord

struct politician::EapIdentityRecord

A harvested 802.1X Enterprise plaintext identity, delivered to the IdentityCb callback.

Definition at line 231 of file PoliticianTypes.h.

Class Members
uint8_t bssid[6]
uint8_t channel
uint8_t client[6]
char identity[65]
int8_t rssi

◆ politician::HandshakeRecord

struct politician::HandshakeRecord

A captured handshake or PMKID record delivered to the EapolCb callback.

The type field identifies the capture path; fields not relevant to that path are zeroed.

Definition at line 155 of file PoliticianTypes.h.

Class Members
union HandshakeRecord.__unnamed3__ __unnamed__
union HandshakeRecord.__unnamed5__ __unnamed__
uint8_t anonce[32]
uint8_t bssid[6]
uint8_t channel
uint8_t eapol_m3[256]
uint16_t eapol_m3_len
uint8_t eapol_m4[256]
uint16_t eapol_m4_len
uint8_t enc
bool has_anonce
bool has_m3
bool has_m4
bool has_mic
bool has_snonce
bool is_full
uint8_t mic[16]
uint8_t pmkid[16]
int8_t rssi
uint8_t sae_seq
uint8_t snonce[32]
char ssid[33]
uint8_t ssid_len
uint8_t sta[6]
uint8_t type

◆ politician::HandshakeRecord.__unnamed3__

union politician::HandshakeRecord.__unnamed3__

Definition at line 170 of file PoliticianTypes.h.

Class Members
uint8_t eapol_m2[256]
uint8_t sae_data[256]

◆ politician::HandshakeRecord.__unnamed5__

union politician::HandshakeRecord.__unnamed5__

Definition at line 176 of file PoliticianTypes.h.

Class Members
uint16_t eapol_m2_len
uint16_t sae_len

◆ politician::ProbeRequestRecord

struct politician::ProbeRequestRecord

A probe request frame observed on the air, delivered to the ProbeRequestCb callback.

Definition at line 241 of file PoliticianTypes.h.

Class Members
uint8_t channel
uint8_t client[6]
bool rand_mac
int8_t rssi
char ssid[33]
uint8_t ssid_len

◆ politician::RogueApRecord

struct politician::RogueApRecord

Fired when a second BSSID advertising the same SSID is observed on the same channel.

This indicates a potential evil twin or rogue AP. Both the known AP and the newcomer are included.

Definition at line 218 of file PoliticianTypes.h.

Class Members
uint8_t channel
uint8_t known_bssid[6]
uint8_t rogue_bssid[6]
int8_t rssi
char ssid[33]
uint8_t ssid_len

◆ politician::Stats

struct politician::Stats

Cumulative frame and capture counters for the engine session.

Accessible via getStats(), reset with resetStats().

Definition at line 136 of file PoliticianTypes.h.

Class Members
uint32_t beacons
uint32_t captures
uint16_t channel_frames[14]
uint32_t ctrl
uint32_t data
volatile uint32_t dropped
uint32_t eapol
uint32_t failed_csa
uint32_t failed_pmkid
uint32_t mgmt
uint32_t pmkid_found
uint32_t rb_max
uint32_t sae_found
uint32_t total

Typedef Documentation

◆ ApFoundCb

typedef void(* politician::ApFoundCb) (const ApRecord &ap)

Definition at line 52 of file PoliticianTypes.h.

◆ AttackResultCb

typedef void(* politician::AttackResultCb) (const AttackResultRecord &rec)

Definition at line 211 of file PoliticianTypes.h.

◆ ClientFoundCb

typedef void(* politician::ClientFoundCb) (const uint8_t *bssid, const uint8_t *sta, int8_t rssi)

Definition at line 212 of file PoliticianTypes.h.

◆ DisruptCb

typedef void(* politician::DisruptCb) (const DisruptRecord &rec)

Definition at line 58 of file PoliticianTypes.h.

◆ EapolCb

typedef void(* politician::EapolCb) (const HandshakeRecord &rec)

Definition at line 55 of file PoliticianTypes.h.

◆ IdentityCb

typedef void(* politician::IdentityCb) (const EapIdentityRecord &rec)

Definition at line 56 of file PoliticianTypes.h.

◆ LogCb

typedef void(* politician::LogCb) (const char *msg)

Definition at line 43 of file PoliticianTypes.h.

◆ PacketCb

typedef void(* politician::PacketCb) (const uint8_t *payload, uint16_t len, int8_t rssi, uint8_t channel, uint32_t ts_usec)

Definition at line 54 of file PoliticianTypes.h.

◆ ProbeRequestCb

typedef void(* politician::ProbeRequestCb) (const ProbeRequestRecord &rec)

Definition at line 57 of file PoliticianTypes.h.

◆ RogueApCb

typedef void(* politician::RogueApCb) (const RogueApRecord &rec)

Definition at line 227 of file PoliticianTypes.h.

◆ TargetScoreCb

typedef int(* politician::TargetScoreCb) (const ApRecord &ap, const char *vendor)

Definition at line 53 of file PoliticianTypes.h.

Enumeration Type Documentation

◆ AttackResult

enum politician::AttackResult : uint8_t
Enumerator
RESULT_PMKID_EXHAUSTED 
RESULT_CSA_EXPIRED 

Definition at line 198 of file PoliticianTypes.h.

◆ DisconnectStrategy

Enumerator
STRATEGY_AUTO_FALLBACK 
STRATEGY_SIMULTANEOUS 

Definition at line 192 of file PoliticianTypes.h.

◆ Error

Enumerator
OK 
ERR_WIFI_INIT 
ERR_INVALID_CH 
ERR_NOT_ACTIVE 
ERR_ALREADY_CAPTURED 
ERR_NOT_FOUND 

Definition at line 61 of file PoliticianTypes.h.

Function Documentation

◆ isValidChannel()

static bool politician::isValidChannel ( uint8_t  ch)
static

Variable Documentation

◆ CHANNEL_5GHZ_COMMON

const uint8_t politician::CHANNEL_5GHZ_COMMON[]
static
Initial value:
= {
36, 40, 44, 48,
149, 153, 157, 161, 165
}

Definition at line 19 of file Politician.cpp.

Referenced by isValidChannel(), and politician::Politician::setChannelBands().