Sistema Operacional: Windows.
Linguagem de programação: A API nativa Wifi é projetado para desenvolvedores de C / C + +. Os programadores devem estar familiarizados com os conceitos de rede sem fio e terminologia.
Objetivo: Criar um pequeno executável que lê o arquivo xml do perfil de rede do Windows e descriptografar as chaves encontradas, capturar e salvar as senhas de rede em arquivo externo formato texto,html, ou xml.
Material Extra: Microsoft Native Wifi API http://msdn.microsoft.com/en-us/library/windows/desktop/ms706556(v=vs.85).aspx
Mais informações sobre redes Wi-Fi: https://www.wi-fi.org/
Download : Ferramenta de Captura versão Betha V1.2
Como Capturar a Senha de Rede Sem Fio
Algo que você precisa saber sobre chaves de rede sem fio:
As chaves de rede sem fio ( WEP / WPA ) são armazenadas em seu computador pelo serviço ” Configuração Automática de WLAN ” do Windows Vista, Windows 7, Windows 8 e Windows Server 2008. Você pode facilmente ler, descriptografar e salvar todas as chaves da rede sem fio para um arquivo de texto / html / xml.
O Windows Vista ou versão superior não converte o WPA- PSK em uma nova chave de valor binário como Windows XP , mas simplesmente mantem a chave original que você digita. Assim, sob o Windows Vista ou superior , a chave WPA- PSK original que você digitou é exibida no formato de chave ASCII.
Onde encontrar as chaves?
Os Registro e Arquivos são a localização das chaves armazenadas
Windows XP e Windows Vista armazena as chaves sem fio em locais completamente diferentes :
Windows XP:
As chaves sem fio são armazenadas no Registro em HKEY_LOCAL_MACHINE \ SOFTWARE \ Microsoft \ WZCSVC \ Parameters \ Interfaces \ [Interface Guid ] .
Windows Vista ou versão superior: As chaves sem fio são armazenados no sistema de arquivos, em C: \ ProgramData \ Microsoft \ Wlansvc \ Profiles \ Interfaces \ . As chaves criptografadas são armazenadas em um arquivo xml. A pasta ProgramData é oculta para visualizar é preciso modificar as configurações de pasta no painel de controle, opções de pasta.
Exemplo do diretório:
pasta: {AB4A8A4C-A902-4389-8D03-F2514287C271}
Arquivo: {DB0CB129-465D-410A-8103-EF5E42E63577}.xml
Exemplo XML:
<?xml version="1.0"?> <WLANProfile xmlns="http://www.microsoft.com/networking/WLAN/profile/v1"> <name>rrsrv1</name> <SSIDConfig> <SSID> <hex>727273727631</hex> <name>rrsrv1</name> </SSID> </SSIDConfig> <connectionType>ESS</connectionType> <connectionMode>auto</connectionMode> <MSM> <security> <authEncryption> <authentication>WPAPSK</authentication> <encryption>AES</encryption> <useOneX>false</useOneX> </authEncryption> <sharedKey> <keyType>passPhrase</keyType> <protected>true</protected> <keyMaterial>01000000D08C9DDF0115D1118C7A00C04FC297EB0100000013D7D27AF209BB4F8CDA744D06A1F66900000000020000000000106600000001000020000000E1426D68BC8A7F4575111CA1821597ABC7F96094EC5CAF41A892B27DF17DC4A2000000000E8000000002000020000000A3E06EFFB9A0209351B4A55E09D0AAF34487745A8F3D0324B8403AC4FAEA30A710000000DD2283BD47C08228C62F9774D786044E40000000E9E8929F02886A224D9CBE98D9C14A80BD5BB77D878F51831D6A5694ABF4CB4B44C05197923A36B462A87EC85923F7CD438397E068F78AACF83D3AD0DE60D5BB</keyMaterial> </sharedKey> </security> </MSM> </WLANProfile>
Onde Está a Senha da Rede Sem fio?
Localizados na tag KeyMaterial
WEP Este elemento contém uma chave de 5 ou 13 caracteres ANSI , ou de 10 ou 26 caracteres hexadecimais.
WPAPSK ,WPA2PSK TKIP ou AES PASSPHRASE este elemento contém uma senha de 8 a 63 caracteres ASCII , ou seja, 8 a 63 caracteres ANSI no intervalo de 32-126 . Valores de chave devem estar de acordo com os requisitos especificados pelo 802.11i.
WPAPSK , WPA2PSK TKIP ou AES Network Key este elemento contém uma chave de 64 caracteres hexadecimais.
Caracteres Unicode podem ser inscritos em ANSI ou ASCII são especificados acima. No entanto, se os caracteres Unicode fornecidos não puderem ser mapeados para caracteres ANSI ou ASCII , então o material de chave fornecida é rejeitada.
KeyMaterial é retornado por WlanGetProfile é sempre criptografado . Além disso, se o material da chave não criptografada é passado para WlanSetProfile , o material de chave é automaticamente criptografada antes de ser guardado no armazenamento de perfil.
Windows XP com SP3 e Wireless LAN API para Windows XP com SP2: O material chave nunca é criptografado .
Com o Retornar o Perfil de Rede Sem Fio?
A função WlanGetProfile recupera todas as informações sobre um perfil da rede sem fio especificada.
Por padrão, o elemento KeyMaterial retornado no perfil apontado pelo pstrProfileXml é criptografada. Se o processo é executado no contexto da conta LocalSystem no mesmo computador, então você pode desencriptar material de chave chamando a função CryptUnprotectData.
Windows XP com SP3 e Wireless LAN API para Windows XP com SP2: O material chave nunca é criptografado.
Como Descriptografar?
A função CryptUnprotectData decifra e faz uma verificação de integridade dos dados em uma estrutura DATA_BLOB. Normalmente, o único usuário que pode descriptografar os dados é um usuário com as mesmas credenciais de logon como o usuário que criptografou os dados. Além disso, a criptografia e descriptografia deve ser feito no mesmo computador
Como usar as Funções
WlanGetProfile: C/C++
Header Wlanapi.h (include Wlanapi.h)
Library Wlanapi.lib
DLL Wlanapi.dll
CryptUnprotectData:C/C++
Header Dpapi.h; Wincrypt.h no Windows Server 2008 R2, Windows 7, Windows Server 2008, Windows Vista, Windows Server 2003, e Windows XP
Library Crypt32.lib
DLL Crypt32.dll
Mais informações sobre as funções:
Você pode encontrar exemplos de códigos fontes(C++) de como utilizar estas funções abaixo:
WlanGetProfile: http://msdn.microsoft.com/en-us/library/windows/desktop/ms706738(v=vs.85).aspx
CryptUnprotectData: http://msdn.microsoft.com/en-us/library/windows/desktop/aa380882(v=vs.85).aspx