Update wpa-sec.py to include show_pwd when download_results is enabled.

This option can be disabled/enabled by editing config.toml
This commit is contained in:
Jeroen Oudshoorn
2024-12-16 19:31:06 +01:00
parent 7dc0eb4591
commit 11fe8a607c
2 changed files with 38 additions and 1 deletions

View File

@ -106,6 +106,7 @@ main.plugins.wpa-sec.enabled = false
main.plugins.wpa-sec.api_key = "" main.plugins.wpa-sec.api_key = ""
main.plugins.wpa-sec.api_url = "https://wpa-sec.stanev.org" main.plugins.wpa-sec.api_url = "https://wpa-sec.stanev.org"
main.plugins.wpa-sec.download_results = false main.plugins.wpa-sec.download_results = false
main.plugins.wpa-sec.show_pwd = false
main.iface = "wlan0mon" main.iface = "wlan0mon"
main.mon_start_cmd = "/usr/bin/monstart" main.mon_start_cmd = "/usr/bin/monstart"

View File

@ -5,12 +5,16 @@ from datetime import datetime
from threading import Lock from threading import Lock
from pwnagotchi.utils import StatusFile, remove_whitelisted from pwnagotchi.utils import StatusFile, remove_whitelisted
from pwnagotchi import plugins from pwnagotchi import plugins
from pwnagotchi.ui.components import LabeledValue
from pwnagotchi.ui.view import BLACK
import pwnagotchi.ui.fonts as fonts
from json.decoder import JSONDecodeError from json.decoder import JSONDecodeError
class WpaSec(plugins.Plugin): class WpaSec(plugins.Plugin):
__author__ = '33197631+dadav@users.noreply.github.com' __author__ = '33197631+dadav@users.noreply.github.com'
__version__ = '2.1.0' __editor__ = 'jayofelony'
__version__ = '2.1.1'
__license__ = 'GPL3' __license__ = 'GPL3'
__description__ = 'This plugin automatically uploads handshakes to https://wpa-sec.stanev.org' __description__ = 'This plugin automatically uploads handshakes to https://wpa-sec.stanev.org'
@ -135,3 +139,35 @@ class WpaSec(plugins.Plugin):
logging.debug("WPA_SEC: %s", req_e) logging.debug("WPA_SEC: %s", req_e)
except OSError as os_e: except OSError as os_e:
logging.debug("WPA_SEC: %s", os_e) logging.debug("WPA_SEC: %s", os_e)
def on_ui_setup(self, ui):
if 'show_pwd' in self.options and self.options['show_pwd'] and 'download_results' in self.options and self.options['download_results']:
# Setup for horizontal orientation with adjustable positions
x_position = 121 # X position for both SSID and password
ssid_y_position = 62 # Y position for SSID
password_y_offset = 12 # Y offset for password from SSID
ssid_position = (x_position, ssid_y_position)
password_position = (x_position, ssid_y_position + password_y_offset)
ui.add_element('ssid', LabeledValue(color=BLACK, label='', value='', position=ssid_position,
label_font=fonts.Bold, text_font=fonts.Small))
ui.add_element('password', LabeledValue(color=BLACK, label='', value='', position=password_position,
label_font=fonts.Bold, text_font=fonts.Small))
def on_unload(self, ui):
with ui._lock:
ui.remove_element('ssid')
ui.remove_element('password')
def on_ui_update(self, ui):
if 'show_pwd' in self.options and self.options['show_pwd'] and 'download_results' in self.options and self.options['download_results']:
last_line = os.popen('awk -F: \'!seen[$3]++ {print $3 " - " $4}\' /root/handshakes/wpa-sec.cracked.potfile | tail -n 1')
last_line = last_line.read().rstrip()
if " - " in last_line:
ssid, password = last_line.split(" - ", 1)
else:
ssid = last_line
password = ""
ui.set('ssid', ssid)
ui.set('password', password)