Obtener contraseñas Wifi guardadas usando Python

Por lo general, mientras nos conectamos con el wifi, tenemos que ingresar alguna contraseña para acceder a la red, pero no podemos ver directamente la contraseña que ingresamos anteriormente, es decir, la contraseña de la red guardada. En este artículo, veremos cómo podemos obtener todos los nombres y contraseñas WiFi guardados usando Python, para hacer esto usaremos el módulo de subproceso de Python.
Wi-Fi es una tecnología de red inalámbrica que permite que dispositivos tales como computadoras (portátiles y de escritorio), dispositivos móviles (teléfonos inteligentes y dispositivos portátiles) y otros equipos (impresoras y cámaras de video) interactúen con Internet.
el subprocesoEl módulo presente en Python (tanto 2.x como 3.x) se usa para ejecutar nuevas aplicaciones o programas a través del código de Python mediante la creación de nuevos procesos. También ayuda a obtener las tuberías de entrada/salida/error, así como los códigos de salida de varios comandos.
 

Pasos para la implementación:
1. Importe el módulo de subproceso 
2. Obtenga los metadatos de la wlan (wifi) con la ayuda del método check_output 
3. Decodifique los metadatos y divídalos de acuerdo con la línea 
4. De los metadatos decodificados obtenga los nombres de las redes wlan guardadas 
5. Ahora, para cada nombre, obtenga nuevamente los metadatos de wlan de acuerdo con el nombre 
6. Inicie el bloque try and catch y dentro del bloque try, decodifique y divida estos metadatos y obtenga la contraseña del nombre wifi dado 
7. Imprima la contraseña y el nombre wifi e imprima en blanco si no hay contraseña 
8. En el bloque excepto si ocurrió un error de proceso ocurrió un error de codificación de impresión 
 

A continuación se muestra la implementación. 
 

Python3

# importing subprocess
import subprocess
 
# getting meta data
meta_data = subprocess.check_output(['netsh', 'wlan', 'show', 'profiles'])
 
# decoding meta data
data = meta_data.decode('utf-8', errors ="backslashreplace")
 
# splitting data by line by line
data = data.split('\n')
 
# creating a list of profiles
profiles = []
 
# traverse the data
for i in data:
     
    # find "All User Profile" in each item
    if "All User Profile" in i :
         
        # if found
        # split the item
        i = i.split(":")
         
        # item at index 1 will be the wifi name
        i = i[1]
         
        # formatting the name
        # first and last character is use less
        i = i[1:-1]
         
        # appending the wifi name in the list
        profiles.append(i)
         
 
# printing heading       
print("{:<30}| {:<}".format("Wi-Fi Name", "Password"))
print("----------------------------------------------")
 
# traversing the profiles       
for i in profiles:
     
    # try catch block begins
    # try block
    try:
        # getting meta data with password using wifi name
        results = subprocess.check_output(['netsh', 'wlan', 'show', 'profile', i, 'key = clear'])
         
        # decoding and splitting data line by line
        results = results.decode('utf-8', errors ="backslashreplace")
        results = results.split('\n')
         
        # finding password from the result list
        results = [b.split(":")[1][1:-1] for b in results if "Key Content" in b]
         
        # if there is password it will print the pass word
        try:
            print("{:<30}| {:<}".format(i, results[0]))
         
        # else it will print blank in front of pass word
        except IndexError:
            print("{:<30}| {:<}".format(i, ""))
             
     
             
    # called when this process get failed
    except subprocess.CalledProcessError:
        print("Encoding Error Occurred")

Producción : 
 

Wi-Fi Name                    | Password
-----------------------------------------------
Engineer                      | ayush123
honor                         | 1234567890
Engineer_5GHz                 | ayush123
Redmi                         | 12345677
Ayush                         | 123123123
BiGX-cmtqaGFtYjc              | rakshit123
UERJTTBV8e0GUmVkbWkg 2        | 987654321
DESKTOP-F32H70N 5009          | SUSHANT@123
UERJTTBV8e0GUmVkbWkg          | 
Bunns                         | heyhotspot
Hogwarts                      | sushant@123
Cgc wireless                  | database1234
Moto G (5) Plus 8691          | rakshit123
AndroidAP                     | udrw7859
AndroidAPab7e                 | 123000123
roshan                        | 12345678
Svj?                          | salonivij
Hey                           | heythere
AndroidAP202                  | bhuvanbroo
JARVIS                        | abhishek09
B6NO-wq5hamF0IGt1bWHCrg       | 12345678
CDAC                          | 

Publicación traducida automáticamente

Artículo escrito por rakshitarora y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *