Skip to main content

Command Palette

Search for a command to run...

Extracting wifi password with python

Published
3 min read
Extracting wifi password with python

Hello Coders !!!

In this article blog, I'll show how you can extract all the wifi passwords from the windows machine.

DISCLAIMER

This article/blog is for educational purposes, any use of this code for unwanted practice is not advised if done so the writer of this article/blog doesn't take any responsibility.

Let's get started

import subprocess
import re

First, we will import subprocess to execute the windows commands through python and re for regex.

def main():
    command_output= subprocess.run(["netsh", "wlan", "show", "profiles"], capture_output= True).stdout.decode()
    profile_names = (re.findall("All User Profile     : (.*)\r", str(command_output)))

After importing the necessary packages we list all the user profiles in the Pc with the following commands.

netsh wlan show profiles display all the wifi profile.

    if len(profile_names) != 0 :
            for names in profile_names:
               check = subprocess.run(["netsh", "wlan", "show", "profiles", names], capture_output= True).stdout.decode()

Now first we have checked if we have profile_names to extract the passwords from, After getting all the profile names we will loop into every profile_names that we have fetched by executing the above commands.

netsh wlan show profiles names ( here in the names variable we have the name of the wifi or ssid name )

re.findall() is used to find all the occurrences that match the given pattern.

     if re.search(" Security key           : Absent", str(check)):
                    continue
            else:
                paswd = subprocess.run(["netsh", "wlan", "show", "profiles", names ,"key=clear"], capture_output= True).stdout.decode()
                get = re.search("Key Content            :(.*)\r", paswd)           
                if get == None:
                    print (f"profile {names} password None")
                else:    
                    profile = {
                        'ssid' : names,
                        'Password' : get[1],
                    }
                    print (profile)


if __name__ == "__main__":
    main()

Then we searched for the Security Key if it is absent we leave that profile and continue for the next one.

netsh wlan show profiles names key=clear shows the password for that ssid name as a Key content

re.search() only return the first occurrence that matches the specified pattern.

Snippet

wifi.PNG

Follow me on Instagram techworld_security

Github repository for code wifi

If you find it useful then please give it a star.

Happy coding !!!

R

Nice bro can we do it from java?

A

Thanks, I don't code mainly in java but I searched for that java code, there are some codes available on google that you can take reference from.

1