CREANDO UN PUNTO DE ACCESO FALSO, COMPARTIENDO LA CONEXION WIFI.
Un punto de acceso a Internet utilizando algún software o también conocido como SoftAP, permite a otros usuarios usar nuestra conexión a Internet pasando por medio de nuestras interfaces de red, de esta forma, todos los paquetes que se envíen al punto de acceso pasarán por medio de nosotros, dado que no establecemos una clave a nuestra WIFI todos los usuarios podrán conectarse a ella sin ningún tipo de restricción (aunque se podría establecer claves WEP/WPA si así lo deseamos) sin embargo, el atractivo de tener la conexión sin ningún tipo de protección es que el número de clientes que accederán a ella será mayor, lo que nos permitirá ejecutar ataques MITM con una mayor cantidad de objetivos potenciales.
Por otro lado también es posible utilizar la técnica conocida como “Evil Twin” partiendo de los pasos detallados aquí, esta técnica consiste en la obtención de la clave WEP/WPA de un objetivo determinado partiendo de un ataque de denegación de servicio contra el AP objetivo y posteriormente estableciendo el mismo BSSID/ESSID del objetivo a nuestro softAP, de esta forma, parecería que son exactamente el mismo AP (en ocasiones este ataque normalmente viene acmpañado con el «Caffe Late Attack»), dado que se ha lanzado un ataque de denegación de servicio, el AP objetivo se encontrará fuera de servicio y los clientes que tengan activada la opción de conexión automática con el AP de la red Wifi, verán que se solicita nuevamente la clave WEP/WPA para establecer la conexión, realmente estarán enviando la contraseña al AP falso.
Los supuestos son:
La interface de red cableada: eth0
La interface de red inhalambrica: wlan0
La interface en modo monitor es: mon0
La Interface resultante del comando airbase (el softAP) es: at0
Los pasos a seguir son:
-
Utilizar Aircrack-NG para poner la interface en modo monitor.
>airmon-ng start wlan0 -
Instalar el servidor DHCP y el servidor DNS (En el caso que no se encuentren instalados)
>apt-get install dhcp3-server bind9 -
Detener los servicios.
>/etc/init.d/dhcp3-server stop
>/etc/init.d/bind9 stop -
Configurar adecuadamente el servidor DHCP:
Abrir el fichero /etc/dhcp3/dhcpd.conf y establecer los parámetros de la red que se va a crear y el mecanismo de asignación de direcciones IP a los clientes que se intenten conectar al AP, el fichero deberá contener algo similar a esto:ddns-update-style ad-hoc;
default-lease-time 600;
default-lease-time 7200;
authoritative;
subnet 192.168.2.128 netmask 255.255.255.128 {
option subnet-mask 255.255.255.128;
option broadcast-address 192.168.2.255;
option routers 192.168.2.129;
option domain-name-servers 192.168.1.1;
range 192.168.2.130 192.168.2.140;
}
Con esto definimos, los tiempos de respuesta máximos para la conexión
(default-lease-time, default-lease-time) también definimos los parámetros de la subred, indicando el rango ip inicial para la red y la mascara de red, posteriormente hay que definir opciones adicionales de la subred, tales como la mascara (que es la misma que la mascara de red definida), la dirección de broadcast, el router de la subred, el rango de ip disponibles para los clientes, (entre las direcciones 192.168.2.130 y 192.168.2.140) el atributo que resulta más interesante es el domain-name-server ya que se trata de la dirección IP del gateway que nos proporciona salida a internet, en una red domestica, el valor mas común es la dirección del router, ya que sin esto los clientes que se conecten a nuestro servidor no tendrán salida a Internet.
Finalmente es necesario establecer las interfaces que usará el servidor DHCP, para esto es necesario especificarlas en el fichero: /etc/default/dhcp3-server en la linea INTERFACES donde es necesario indicar la(s) interfaces, por ejemplo:
INTERFACES=”eth0 wlan0”
-
Iniciar el softAP en nuestra máquina con:
airbase-ng -I 100 -P -C 2 -c 3 –essid WIFI_COMPARTIDA mon0
Opciones:
-I : Indica el intervalo en mili segundos entre cada beacon.
-P : Indica que el softAP responderá a todas las pruebas de broadcast sin importar el ESSID especificado.
-C : El numero de segundos en los que el ESSID especificado también es beaconed
-c : Indica el canal en donde estará el AP.
–essid : Se trata del ESSID.
NOTA: En algunas tarjetas inhalambricas, una vez el access point inicia, el canal que se establece es el 255, lo cual se puede comprobar con el uso de airodump-ng donde aparecerá el punto de acceso y su canal asociado, se se trata de un bug reportado, cuya solución se encuentra en el siguiente enlace: http://forum.aircrack-ng.org/index.php?topic=5755.0 -
Una vez iniciado el airbase-ng, se crea automáticamente la interface at0, es necesario configurarla de la siguiente forma:
>ifconfig at0 up
>ifconfig at0 192.168.2.129 netmask 255.255.255.128
>route add -net 192.168.2.128 netmask 255.255.255.128 gw 192.168.2.129De esta forma indicamos que la interface del softAP usará de los parámetros de red indicados en el fichero de configuración para el servidor DHCP, se ha levantado la interface en el primer comando, en el segundo se ha definido la dirección IP del gateway y la mascara de red, finalmente adicionamos el enrutamiento para la red 192.168.2.128 (128 se trata del ultimo segmento de la dirección de broadcast), la mascara de red y el gateway de la subred.
-
Ahora podemos iniciar el servidor DHCP con los siguientes parámetros:
>dhcp3 -d -f at0
En el caso de que se produzca el siguiente error
Can’t create PID file /var/run/dhcpd.pid: Permission denied.Es necesario crear un enlace simbolico apuntando al pid:
>ln -s /var/run/dhcp3-server/dhcpd.pid /var/run/dhcpd.pid
Posteriormente iniciar el servidor DNS:
>/etc/init.d/bind9 start -
Con esto ya esta preparado, tenemos el servidor configurado en nuestra máquina esperando a que se conecten clientes, sin embargo, aun falta establecer determinados parámetros en las políticas de redirección y tratamiento de paquetes que pasan por nuestra maquina, para esto es necesario establecer las siguientes reglas en nuestro firewall iptables en local.
iptables –flush
iptables –table nat –flush
iptables –delete-chain
iptables –table nat –delete-chain
iptables –table nat –append POSTROUTING –out-interface eth0 -j MASQUERADE
iptables –append FORWARD –in-interface at0 -j ACCEPT
iptables -t nat -A PREROUTING -p udp -j DNAT –to 192.168.1.1
echo 1 > /proc/sys/net/ipv4/ip_forwardnano /etc/sysctl.conf
net.ipv4.conf.default.forwarding=1 net.ipv4.conf.all.forwarding=1Las opciones anteriormente indicadas contienen:
Los 4 primeros comandos limpian las reglas del firewall para establecerlas.
El 5 comando indica que el enrutamiento debe ser tratado por la interface de salida eth0 (Red Cableada) evidentemente debe de estar conectado el cable de red, sin embargo, si se desea se puede utilizar la red inhalambrica.
El 6 comando indica que que se va a realizar el enrutamiento de los paquetes que llegan a la interfaz de entrada at0 (La interfaz correspondiente a nuestro SoftAP, por lo tanto las peticiones de todos los clientes que se conecten a él) se especifica que todos los paquetes van a ser aceptados.
Finalmente las ultimas lineas corresponden al enrutamiento como tal, es necesario especificar la ruta del gateway para peticiones udp, los últimos parámetros son necesarios para permitir el enrutamiento de las peticiones.Eso es todo, ahora tenemos nuestro Fake AP funcionando, ahora es posible utilizar diferentes tipos de ataques a los clientes conectados. Como por ejemplo ataques MITM y el uso de KarmetaSploit que se verá con un buen nivel de detalle en una próxima entrada, donde podremos ver como utilizar MetaSploit Framework y los conceptos teóricos y prácticos aquí expuestos.
MUY BUEN TUTORIAL! GRACIAS POR CONTRIBUIR A ESTE «MÁGICO» MUNDO!
Me gustaMe gusta
buenisimo tutorial
me funciona perfectamente.
ahora, podrias hacer un tutorial que explicase lo que se puede hacer en nuestra Fake AP con clientes conectados?
Un saludo y muchisimas gracias
Me gustaMe gusta
Si, estoy escribiendo una serie de «wireless hacking» que estará disponible en las próximas semanas, justo después de terminar de publicar la serie actual sobre anonimato en internet.
Me alegra que te haya funcionado.
Saludos.
Me gustaMe gusta
Ok, perfecto 🙂
Y una pregunta me podrias responder, es que estoy probando y no se porque no me sale.
He hecho un Fake AP con encriptacion WPA.
Entonces lo que quiero hacer es que al conectarme, desde otro ordenador al falso AP y al poner la contraseña WPA, quiero que me aparezca la contraseña en el ordenador donde tengo el fake ap. 🙂
Es que he probado con wireshark, pero wireshark no me deja arrancarlo en backtrack 5 y en backtrack 4 a la hora de instalar cosas me da errores 😦
Un saludo y muchisimas gracias por todos los tutoriales
Me gustaMe gusta
En principio no te sale, porque airbase-ng esta diseñado para simular el cifrado WPA, esto quiere decir que los beacon frames generados por el Facke AP indican que utiliza WPA (pero en realidad no es así, simula el proceso, pero no lo reproduce) solamente es útil para capturar el Handshake generado cuando un cliente se «conecta». Fíjate en este enlace, en el apartado sobre WPA:
http://www.aircrack-ng.org/doku.php?id=airbase-ng
Saludos.
Me gustaMe gusta
Ok, ya he entendido. Lo unico que se podria capturar seria el handshake con el airodump, pero para conseguir la clave WPA no hay ninguna forma de hacerlo.
Seguire pasandome por aqui para ver los siguientes tutoriales sobre esto y muchos mas tutoriales que hay por aqui.
Muchisimas gracias 🙂
Un saludo
Me gustaMe gusta
Eso es, lo único que capturaras será el handshake… me alegra que te guste el blog.
Saludos.
Me gustaMe gusta
Tengo una duda, que pasaria si creo un fake AP y obtengo el handshake, como ya vimos si es posible obtenerlo pero veo que el airbase-ng solo simula el cifrado wpa, entonces si obtengo el handshake de un Fake AP podria obtener alguna clave usando aircrack-ng, cowpatty o crunch?
Me gustaMe gusta
Al realizar el enrutamiento obtengo un fallo, esta es la secuencia de eventos:
# route add -net 192.168.2.128 netmask 255.255.255.128 gw 192.168.2.129
SIOCADDRT: No such process
# ip route list
default via 192.168.200.1 dev wlan0
192.168.200.0/24 dev wlan0 proto kernel scope link src 192.168.200.118
wlan0 es la interfaz que tengo conectada al AP real que a su vez está conectado a internet. La interfaz que tengo en modo monitor el wlan1 (monitor en mon0).
En el momento en el que conguro esto, la interfaz at0 ya existe, está activa y tiene la siguiente configuración:
at0 Link encap:Ethernet HWaddr 00:21:6a:a7:f2:1c
inet addr:192.168.2.129 Bcast:192.168.2.255 Mask:255.255.255.128
inet6 addr: fe80::221:6aff:fea7:f21c/64 Scope:Link
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:159 errors:0 dropped:0 overruns:0 frame:0
TX packets:6 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:500
RX bytes:23907 (23.9 KB) TX bytes:468 (468.0 B)
Me gustaMe gusta
Eso ocurre en sistemas basados en Debian cuando las direcciones IP son invalidas (direcciones IP estáticas). Revisa tu configuración
http://digitalsanctum.com/2009/03/22/solution-to-siocaddrt-no-such-process-on-ubuntu/
Me gustaMe gusta
Tengo un par de preguntas bro, bueno hay voy 😀
1.- segun tengo entendido tengo que tener internet, pero si estoy conectado por wifi a un modem igual serviria no?
2.- en las configuraciones de dhcp los datos son todos falsos, o tienen que ser datos de nuestro modem?
3.-donde dijistes que los dns era lo mas dificil,entonces pusistes los del router, era el router original, en todo caso podria usar dns como por ejemplo de google(8.8.8.8)?
bueno en este caso yo haria un ataque mitm redirigiendo los dns a un phishing y asi obtener la clave wpa2 o wpa
Saludos bro buen post espero tu respuesta 🙂
Me gustaMe gusta
1. Si, a menos que quieras generar una condición DoS en las víctimas.
2. Tiene que ser un servidor DNS funcional, a menos que quieras generar una condición DoS en las víctimas
3. Ver 2
Leer detenidamente la publicación, no se ha mencionado nada sobre capturar la clave wpa/wpa2, para eso se puede hacer uso del Hirte Attack o Caffe Late Attack.
Me gustaMe gusta
no comprendo una cosa: para que sirve bind en este caso? y como lo has configurado?
Me gustaMe gusta
En general, en este caso y en cualquier otro, Bind es un servidor DNS y sirve para traducir peticiones a dominios en direcciones IP (y viceversa) esta es una funcionalidad vital para cualquier router, por eso es importante implementarlo aquí. La configuración está explicada en este post. Lee con detenimiento.
Me gustaMe gusta
Gracias por la respuesta tan rápida! Igual no me expliqué bien 🙂 Mi duda tiene que ver que has definido el servidor DNS en el dhcpd.conf como el IP del router, y como tal, los clientes recibirán esta configuración, por lo que la tracucción de domínios la haz un servidor DNS externo y real. Por eso no entiendo que utilidad tiene el servidor DNS interno (bind9) en este caso, y por lo que veo sin ninguna configuración adicional (/etc/bind/named.conf, /etc/bind/named.conf.options, /etc/bind/named.conf.local??). Esta pregunta viene pq estoy intentando configurar bind para que me traduzca cualquier dominio a mi servidor apache, sin exito hasta ahora…
un saludo!!!
Me gustaMe gusta
Si, porque el router (la máquina del atacante) va a actuar como un servidor DNS para resolver los dominios y un servidor DHCP para resolver las direcciones IP. La dirección del DNS tambien tiene que ir en la configuración del servidor DHCP, de lo contrario la resolución de dominios fallará. En cualquier caso, también es posible indicar que el servidor DNS o DHCP se encuentran en otra máquina en el segmento de red, es solamente cuestión de gustos 🙂
Por lo que entiendo de tu comentario, lo que necesitas es comprender como instalar y configurar tu servidor DNS, no? Si es así, fíjate en los siguientes posts, ahí indico más detalles (más ficheros de configuración, opciones, etc.)
https://thehackerway.com/2011/06/27/conceptos-basicos-e-introduccion-a-bind9-dns-service/
https://thehackerway.com/2011/06/28/instalacion-y-configuracion-de-un-servidor-dns-bind/
Me gustaMe gusta
Hola que tal, muy bueno el aporte que hiciste, pero si podias agregarle un plus a eso como MITM, o redireccionamiento, o otras cosillas se te agradeceria…saludos Javier F.
Me gustaMe gusta
Continua leyendo, ya he escrito justo sobre eso, puedes ver está publicación por ejemplo:
https://thehackerway.com/2012/04/04/wireless-hacking-evil-twin-y-ataques-mitm-sobre-ssl-parte-vi/
Un saludo.
Me gustaMe gusta
Genial!, solo lamento haber llegado aquí después de re configurar el router y haberme enfriado. Aun así, el primer rato libre que tenga esto queda lo primero en la lista de cosas para probar, si bien parece complejo y algunas cosas se me escapan, definitivamente es algo que vale la pena aprender, al menos para dar un susto a el/los vecinos que deciden que robar mola mas que pagar. De momento seguiré un rato mas explorando el blog que realmente tiene buena pinta.
Un saludo 🙂
Me gustaMe gusta
..y enhorabuena por poner estas cosas al alcance de todos, ole tu!
Me gustaMe gusta
hola que tal, tengo un par de preguntas:
1¿debo de estar conectado a internet ?
2¿si debo de estar conectado a internet puedo usar 2 tarjetas wi-fi?
3¿las direcciones iP que utilizas se deben basar a mi ordenador o deben de ser las que tu has puesto?
gracias por tu atención..!!
Me gustaMe gusta
1. La máquina donde se ejecuta el AP, tiene que tener acceso a internet para que las «víctimas» puedan navegar.
2. Claro, pero el AP solamente funcionará sobre una de ellas.
3. Son de ejemplo, puedes poner cualquier dirección IPv4 valida, pero los rangos de dichas direcciones tienen que estar especificados en la configuración del dhcp.
Un saludo.
Me gustaMe gusta