Menú

Mostrar Mensajes

Esta sección te permite ver todos los mensajes escritos por este usuario. Ten en cuenta que sólo puedes ver los mensajes escritos en zonas a las que tienes acceso en este momento.

Mostrar Mensajes Menú

Mensajes - xustyx

#11
Cita de: warcry. en  8 Diciembre 2016, 10:07 AM
jajajjajaja, puede funcionar dice...

a ver crack, explicame por que no puede funcionar, iluminame con tu sabiduría, y si ya nos cuentas porque dices que es una cortina de humo ya lo clavas  ;)

Que pasa si el atacante te mete un deauth en las dos redes.

Al igual que tu creas dos AP's el puede tener dos interfaces y monitorizar tu movimiento por ellas así que GL.

La manera más sencilla de evitar el Evil twins es quitando el reconnect.
#12
Cita de: okik en  6 Diciembre 2016, 04:29 AM

¿Y? Qué hacemos ¿nos lo comemos?
Este punto no está muy claro.

No se trata de ser feliz se trata de hacerlas feliz, creo que esta bastante claro.

Todos sabemos para que sirve esta frase  :xD
"Según aseguran algunos investigadores, este líquido viscoso tiene propiedades antidepresivas."


#13
Cita de: warcry. en  8 Diciembre 2016, 07:34 AM
Si es que no me lees  ;D







Esa solución puede funcionar pero no deja de ser una cortina de humo.
#14
Redes / UDP Hole Punching
8 Diciembre 2016, 07:32 AM
Buenas,

En esta larga noche sin dormir, dando vueltas por Internet y leyendo cosas interesantes me topado con esto:

https://en.wikipedia.org/wiki/UDP_hole_punching


¿Sabéis de alguna implementación sencilla para echarle un ojo?
#15
Utiliza otro medio inalámbrico de conexión XD
#16
Entonces genera una matriz ordenada y luego desordenala. Será mas fácil.

Edito:
Crea un vector de tamaño 36 con valores de 0 a 35, desordenalo y luego lo transformas a la matriz.
#17
No se exactamente que es lo que quieres, pero ... ¿Por que no inicias la matriz con los números ordenados y luego la desordenas?
#18
Se puede.
#19
Podrías haber solucionado el juego con una Lista circular.

Si la opción elegida esta 7 posiciones por delante de la seleccionada por el contrincante ganas tú, sino gana el otro.
#20
He encontrado la solución y dentro de la suite... makeivs-ng xD.

De paso, intento comentar el código de como aircrack intenta descifrar el IV.
No estoy totalmente seguro de si es correcto, así que si me equivoco corregidme.


int check_wep_key( unsigned char *wepkey, int B, int keylen ){
//Declaracion de variables de la funcion.
unsigned char x1, x2;
unsigned long xv;
int i, j, n, bad, tests;

//Array donde se guardara el IV + KEY.
unsigned char K[64];

//Array donde se copiara un vector de 0 a 255 inicializado y se aplicara RC4...
unsigned char S[256];

if (keylen<=0)
keylen = opt.keylen;

pthread_mutex_lock(&mx_nb);
nb_tried++;
pthread_mutex_unlock(&mx_nb);

//Numero de intentos fallidos.
bad = 0;

//Copiamos la clave wep a probar a partir del 3 byte. Dejamos 3 bytes iniciales para el IV.
memcpy( K + 3, wepkey, keylen );

tests = 32;

//printf("keylen: %d\n", keylen);
//if(keylen==13)
//printf("%02X:%02X:%02X:%02X:%02X\n", wepkey[8],wepkey[9],wepkey[10],wepkey[11],wepkey[12]);

if(opt.dict) tests = wep.nb_ivs;

if(tests < TEST_MIN_IVS) tests=TEST_MIN_IVS;
if(tests > TEST_MAX_IVS) tests=TEST_MAX_IVS;

//Empiezan las pruebas.
for( n = 0; n < tests; n++ )
{
/* xv = 5 * ( rand() % wep.nb_ivs ); */
//Posicion a coger del buffer de IVS. 3 bytes del IV + 2 bytes iniciales del paquete.
xv = 5 * n;

pthread_mutex_lock( &mx_ivb );

//Copiamos el IV en los 3 bytes iniciales.
memcpy( K, &wep.ivbuf[xv], 3 );

//Copiamos el array inicializado de 0 a 255.
memcpy( S, R, 256 );

//Aplicamos RC4 (Key setup)
for( i = j = 0; i < 256; i++ )
{
j = ( j + S[i] + K[i % (3 + keylen)]) & 0xFF;
SWAP( S[i], S[j] );
}

//Aplicamos RC4(Keystream generation) para el primer byte.
i = 1;
j = ( 0 + S[i] ) & 0xFF;
SWAP(S[i], S[j]);

//Desciframos el primer byte de datos aplicando XOR al primer byte del keystream.
x1 = wep.ivbuf[xv + 3] ^ S[(S[i] + S[j]) & 0xFF];

//Aplicamos RC4(Keystream generation) para el segundo byte.
i = 2;
j = ( j + S[i] ) & 0xFF;
SWAP(S[i], S[j]);

//Desciframos el segundo byte de datos aplicando XOR al segundo byte del keystream.
x2 = wep.ivbuf[xv + 4] ^ S[(S[i] + S[j]) & 0xFF];

pthread_mutex_unlock( &mx_ivb );

//printf("xv: %li x1: %02X  x2: %02X\n", (xv/5), x1, x2);

//Comparamos si los dos bytes descifrados concuerdan con valores del (LLC header)
//Url https://en.wikipedia.org/wiki/IEEE_802.2#LLC_header
if( ( x1 != 0xAA || x2 != 0xAA ) &&
( x1 != 0xE0 || x2 != 0xE0 ) &&
( x1 != 0x42 || x2 != 0x42 ) &&
( x1 != 0x02 || x2 != 0xAA ) ) //llc sub layer management
bad++;

//Si la probabilidad es superada por los fallos no es la key.
if( bad > ((tests*opt.probability)/100) )
return( FAILURE );
}

//Tenemos una probable key :)
opt.probability = (((tests-bad)*100)/tests);
key_found(wepkey, keylen, B);

return( SUCCESS );
}