mirror of
https://github.com/AlienMajik/pwnagotchi_plugins.git
synced 2025-07-01 18:37:27 -04:00
Update probenpwn.py
Now uses /etc/pwnagotchi/config.toml whitelist no need to use this anymore: main.plugins.probenpwn.whitelist = ["00:11:22:33:44:55", "TrustedNetwork"]
This commit is contained in:
21
probenpwn.py
21
probenpwn.py
@ -4,11 +4,12 @@ import threading
|
|||||||
import os
|
import os
|
||||||
import subprocess
|
import subprocess
|
||||||
import random
|
import random
|
||||||
|
import toml
|
||||||
import pwnagotchi.plugins as plugins
|
import pwnagotchi.plugins as plugins
|
||||||
|
|
||||||
class probenpwn(plugins.Plugin):
|
class probenpwn(plugins.Plugin):
|
||||||
__author__ = 'AlienMajik'
|
__author__ = 'AlienMajik'
|
||||||
__version__ = '1.1.1'
|
__version__ = '1.1.2'
|
||||||
__license__ = 'GPL3'
|
__license__ = 'GPL3'
|
||||||
__description__ = (
|
__description__ = (
|
||||||
'Pwn more aggressively. Launch immediate associate or deauth attack '
|
'Pwn more aggressively. Launch immediate associate or deauth attack '
|
||||||
@ -21,7 +22,6 @@ class probenpwn(plugins.Plugin):
|
|||||||
self._agent = None
|
self._agent = None
|
||||||
self.old_name = None
|
self.old_name = None
|
||||||
self.recents = {}
|
self.recents = {}
|
||||||
self.whitelist = set()
|
|
||||||
self.attack_threads = []
|
self.attack_threads = []
|
||||||
self.epoch_duration = 60 # default epoch duration in seconds
|
self.epoch_duration = 60 # default epoch duration in seconds
|
||||||
self._watchdog_thread = None
|
self._watchdog_thread = None
|
||||||
@ -34,6 +34,22 @@ class probenpwn(plugins.Plugin):
|
|||||||
self.failed_handshakes = 0
|
self.failed_handshakes = 0
|
||||||
# Track the performance of each AP for dynamic adjustments
|
# Track the performance of each AP for dynamic adjustments
|
||||||
self.performance_stats = {}
|
self.performance_stats = {}
|
||||||
|
self.whitelist = set()
|
||||||
|
|
||||||
|
# Load whitelist from the global Pwnagotchi config
|
||||||
|
self.load_whitelist()
|
||||||
|
|
||||||
|
def load_whitelist(self):
|
||||||
|
"""Load the whitelist from Pwnagotchi's global config."""
|
||||||
|
try:
|
||||||
|
with open('/etc/pwnagotchi/config.toml', 'r') as config_file:
|
||||||
|
data = toml.load(config_file)
|
||||||
|
# Load SSIDs from the whitelist in the global config
|
||||||
|
self.whitelist = set(data.get('main', {}).get('whitelist', []))
|
||||||
|
logging.info(f"Whitelist loaded from Pwnagotchi config: {self.whitelist}")
|
||||||
|
except Exception as e:
|
||||||
|
logging.error(f"Failed to load whitelist from config: {e}")
|
||||||
|
self.whitelist = set()
|
||||||
|
|
||||||
def on_unload(self, ui):
|
def on_unload(self, ui):
|
||||||
if self.old_name:
|
if self.old_name:
|
||||||
@ -104,6 +120,7 @@ class probenpwn(plugins.Plugin):
|
|||||||
def ok_to_attack(self, ap):
|
def ok_to_attack(self, ap):
|
||||||
if not self._agent:
|
if not self._agent:
|
||||||
return False
|
return False
|
||||||
|
# Check if the AP is in the whitelist loaded from the global config
|
||||||
if ap.get('hostname', '').lower() in self.whitelist or ap['mac'].lower() in self.whitelist:
|
if ap.get('hostname', '').lower() in self.whitelist or ap['mac'].lower() in self.whitelist:
|
||||||
return False
|
return False
|
||||||
return True
|
return True
|
||||||
|
Reference in New Issue
Block a user