Descobrindo as Senhas de Wi-Fi salvas com Python
2 min readJan 29, 2022
No windows para visualizar as informações de uma rede é o comando netsh wlan show profiles
.
O resultado para deste comando é uma listagem das redes gravadas no seu computador:
Perfis da política de grupo (somente leitura)
---------------------------------
<Nenhum>Perfis do usuário
-------------
Todos os Perfis de Usuários: Rede 1
Todos os Perfis de Usuários: Rede 2
Todos os Perfis de Usuários: Rede 3
Para as informações mais detalhadas, é através do comando netsh wlan show profile "Rede 1" key = clear
O resultado deste comando é todas as informações de rede. A senha é apresentado no campo Conteúdo da Chave.
Perfil Rede 1 na interface Wi-Fi:
=======================================================================Aplicado: Todos os Perfis de UsuáriosInformações do perfil
-------------------
Versão : 1
Tipo : LAN sem Fio
Nome : Rede 1
Opções de controle :
Modo de conexão : Conectar automaticamente
Alternância automática : Não alternar para outra rede
Uso de MAC Aleatório: DesabilitadoConfigurações de conectividade
---------------------
Número de SSIDs : 1
Nome SSID : "Rede 1"
Tipo de rede : Infraestrutura
Tipo de Rádio : [ Qualquer Tipo de Rádio ]
Extensão do fornecedor : Não presenteConfigurações de segurança
-----------------
Autenticação : WPA2-Personal
Codificação : CCMP
Autenticação : WPA2-Personal
Codificação : GCMP
Chave de segurança : Presente
Conteúdo da Chave : 123456Configurações de custo
-------------
Custo : Irrestrito
Congestionado : Não
Limite de Dados Aproximado: Não
Limite de Dados Excedido : Não
Roaming : Não
Origem de Custo : Padrão
Execução
py main.py
Resultados do Script
[‘Rede 1–123456’,’Rede 2–12345678']
Execução Testes
Entrar na pasta tests
e executar o script pytest TestMain.py
Script
- get_networks: Lista todas as redes configuradas, com as senhas
- information_network: Buscas as informações detalhadas e retorna a senha armazenada
import subprocessdef get_networks():
information_command = subprocess.check_output("netsh wlan show profiles", encoding="cp858", shell=True)
networks = []
for line in information_command.split('\\n'):
if "Todos os Perfis de Usuários" in line:
position = line.find(":")
network = line[position + 2:]
password = information_network(network)
networks.append(network + " - " + password)
return networksdef information_network(wifi):
information_command = subprocess.check_output(["netsh", "wlan", "show", "profile", wifi, "key", "=", "clear"],
encoding="cp858", shell=True)
network = ''
for line in information_command.split('\\n'):
if "Conteúdo da Chave" in line:
position = line.find(":")
network = line[position + 2:]
break
return networkif __name__ == "__main__":
print(get_networks())
GitHub