11 noviembre 2013

Montando un Rogue AP con Kali

Hace unos días me tocó montar un Rogue AP y hacer una demostración de cómo este tipo de ataque era muy eficaz en sitios con mucha afluencia de gente.

Recordé el fabuloso reportaje que hizo MundoHackerTV sobre seguridad Wireless y decidí tomarme prestado el concepto para repetirlo.

Un Rogue AP (también conocidos como Fake AP) es un punto de acceso que tiene por objetivo que los usuarios se conecten a él para, una vez dentro, capturar su tráfico y con ello, sus credenciales. También se denominan de esta forma a los puntos de acceso ilegales que se instalan en compañías sin autorización de los departamentos y responsables de sistemas. De esta forma, sirven como punto de entrada y se puedan conectar dispositivos wifi a la red o hacer intrusiones desde otra ubicación.

Rogue AP en entorno coorporativo (imagen de Infosecurity-Magazine)

Para configurar un Rogue AP hace falta un sistema que tenga dos interfaces de red. Uno de ellos será el que facilite la conexión a Internet, y el otro debe ser el interfaz wireless que ofrece el servicio. 

En este caso, usaremos un portátil con dos tarjetas wireless, la propia del sistema y un interfaz usb. Además, se ejecutará la distribución Kali (virtualizada) con la que se hará toda la configuración.

El proceso consta de varias partes:
  1. Configurar el interfaz en modo AP: para ello se usan las herramientas de aircrack-ng. Existen dos opciones, configurarla con un nombre estático o responder a todas las peticiones que se produzcan.
  2. Enrutar el tráfico del AP al interfaz de Internet: con iptables se redirige el tráfico para que el AP funcione como puerta de enlace.
  3. Configurar un servidor DHCP: para que cuando un cliente se conecte se le asigne una dirección IP bajo nuestro control.
  4. Configurar un servicio DNS: para que pueda navegar debe tener DNS, en este caso, se puede configurar un servicio DNS en el propio sistema o asignarle un DNS de Internet.
  5. Arrancar las herramientas de monitorización: con las que se harán las capturas de tráfico y credenciales.
1.- Configurar el interfaz en modo AP 
Como comentábamos anteriormente, se usa el conjunto de herramientas de aircrack-ng, en concreto, la utilidad airbase-ng. Es necesario que previamente la interfaz wireless esté configurada en modo monitor.

En la siguiente captura se ve como se paran los servicios conflictivos (como network-manager) y el wpa_supplicant y dhclient del interfaz de red. Además se cambia la dirección MAC por una al azar con la herramienta macchanger. Posteriormente se cambia la región del adaptador por Bolivia, donde la regulación del CRDA es más permisiva y permite configurar la tarjeta hasta 30 dBm y finalmente se pone el modo monitor con airmon-ng para acabar arrancando el Rogue AP con airbase-ng.

Hay que tener presente que airbase-ng ofrece un resultado muy lento como punto de acceso, por lo que los usuarios navegarán con problemas.


La utilidad airbase-ng en el ejemplo anterior solo responderá a las peticiones para un ESSID concreto llamado "SBD FREE WIFI", pero esto se puede modificar de tal forma que todas las consultas que hagan los dispositivos sean respondidas por el punto de acceso. Para esta otra configuración airbase se debe ejecutar como en esta otra captura:


2.-Enrutar el tráfico del AP al interfaz de Internet
Una vez arrancado airbase, se procede a redirigir y configurar la red con iptables. Todo el tráfico debe ser pasado al interfaz de red local (eth0 en este caso) para que los usuarios puedan navegar. 

Los cuatro primeros comandos eliminan configuraciones previas de iptables, para luego activar el ip_forwarding y configurar la red (ifconfig/route). Finalmente se redirige el tráfico y se añade una redirección para que todo el tráfico que tenga como destino el puerto 80 se mande al puerto 10000, donde más adelante se arrancará la utilidad ssltrip que intercepte este tráfico.


3.-Configurar un servidor DHCP
Crear un servidor DHCP es muy sencillo, tan solo hay que instalar el paquete correspondiente (apt-get install isc-dhcp-server) y arrancarlo con un fichero de configuración, tal y como se muestra en esta captura.



4.-Configurar un servicio DNS
Al igual que en el caso anterior, si deseamos tener nuestro propio servidor de DNS, instalando dnsmasq y arrancando el servicio sería suficiente. La ventaja de tener un servidor DNS propio es que se pueden apuntar dominios a páginas propias y llevar a cabo un pharming. Si el por el contrario queréis obviar esta parte, tan solo habría que especificar en el fichero de configuración del DHCP los DNS de otro servidor, en la línea de "domain-name-servers", por ejemplo, los de Google.


5.-Arrancar las herramientas de monitorización
La configuración del Rogue AP finaliza levantando ssltrip y las herramientas de sniffing que más os gusten, es habitual usar el paquete dsniff y ettercap.


Bonus: scripts
Si ahora mismo estás pensando que esto se puede automatizar con unas cuantas líneas de scripting, estás en lo cierto, pero ya te adelanto que no serás el primero, ni el segundo en hacerlo.

Todo el proceso explicado aquí está disponible en paquetes, como por ejemplo easy-creds o pwnstar, que además incluyen otras utilidades y opciones muy interesantes, como son:
  • Automatizar todo el proceso y ficheros de configuración.
  • Actualizar y compilar las herramientas necesarias.
  • Montar ambos tipos de puntos de acceso.
  • Arrancar la suite dsniff (urlsnarf) y ettercap.
  • Llevar a cabo ataques de FreeRadius.
  • Ejecutar karmetasploit, esto levantará servicios falsos de correo donde los usuarios introducirán sus contraseñas.
  • Montar un portal cautivo que realmente es un phishing (en Pwnstar).
  • Usar el punto de acceso para llevarle a un browser_autopwn (Pwnstar).
El resultado final de easy-creds es el que se muestra en la siguiente pantalla:




19 comments :

Rupi dijo...

Muy buen trabajo, es una guía estupenda :)

ak!l3s dijo...

Genial explicado Alex!!
Muchas gracias :D

angelhc dijo...

Me ha encantado, gracias por la explicación.

roberto arce dijo...

facebook permite autenticarse por http?

Alejandro Ramos dijo...

ssltrip

doug dijo...

En cualquier caso, aunque se capturen las credenciales, entiendo que el usuario no logrará autenticarse ya que el POST por http será rechazado en destino..

CarloX dijo...

Si. De hecho muchos usuarios todavia lo tienen sin https.
Pero vamos..facebook es el menor de tus problemas..

CarloX dijo...

Fantastica explicacion alex. Si llegas a robarle las credenciales del banco y le haces una demostracion de como capturar su pin de tarjeta de claves y adueñarte de la sesion.. hubiera sido de grammy

CarloX dijo...

insisto, ese es el menor de tus problemas. Que porcentaje de personas usan la misma clave para todo?. Roba la clave y olvidate de facebook.. vete a paypal, a amazon.. y prueba :-)

Alejandro Ramos dijo...

jajaja, desde mi posición actual, hacer eso a un banco no queda bien =]

lastnewbie dijo...

buena información, por ahi lo hago

doberman dijo...

muy buena tu explicación se agradece

María García dijo...

Más usos del DNI-e: http://www.boe.es/diario_boe/txt.php?id=BOE-A-2013-12320

ojete dijo...

Ese sslstrip petando por lo vagini......... xD

Alejandro Ramos dijo...

Tiene excepciones no controladas, no es que esté "petando" como tal y no tire, yo también lo pensé cuando las ví la primera vez. Al final hasta te parece normal que no catche las cosas. haha

ojete dijo...

'Tienes toda la razón . Funcionar funciona . Con suerte >24h ''aveces''.
No has pensado en usar hostapd? Le da 1000 vueltas a airbase


Saludos 8==3

Alejandro Ramos dijo...

Sipe, pero como sabes, tiene otras limitaciones... ,

gabriel dijo...

Excelente post. Juan Sacco de argentina tiene un script automatizado tambien. Se llama gemelo malvado.

Jesús Eduardo Ramírez Rodrígue dijo...

Buenos días. Bastante interesante la información ¿Hay manera de establecer las diferentes configuraciones a la Rogue AP? Me refiero a Open, WEP, WPA/WPA2 y WPS. Gracias.