DNS Spoofing con el WiFi Pineapple

¿Qué es el DNS?

Por sus siglas en inglés DNS, Domain Name System, es un sistema en internet que funciona como directorio. Cuando intentas acceder a alguna página, digamos google.com, lo que sucede por abajo del agua es que la computadora va y pregunta la dirección IP en la que se encuentra el servicio de google.com, ir a consultar dicha dirección. La cual en mi caso es 172.217.9.14.

Screen Shot 2018-05-08 at 3.19.34 AM

¿Qué es el DNS Spoofing?

Tambien conocido como DNS Poisoning. Es un tipo de ataque que se aprovecha de las vulnerabilidades de DNS. Con la configuración correcta, quizá un ataque de man-in-the-middle de por medio, es posible personificar servicios conocidos. Puedes direccionar a tu víctima a un servidor de DNS del que tu tengas control, y podrías modificar las direcciones IP de los dominios que consulte.

WiFi Pineapple: DNS Spoofing

Antes que nada es necesario terminar la configuración del WiFi Pineapple. En éste blog doy una breve introducción al WiFi Pineapple y explico cómo setearlo.

Lo siguiente es tener un sitio de pruebas fake. Como demostración, voy a utilizar el paquete de http.server de python 3 para levantar una paqueña página.

Creamos un archivo llamdo index.html en un directorio nuevo con el contenido:

<head>
<\head>
<body>
 <h1>Fake Page</h1>
 <p>WiFi Pineapple rocks!</p>
<\body>

Con la terminal en dicho directorio. Ejecutamos el servidor con python3:

python3 -m http.server 8080

Con ésto deberíamos poder ver nuestra página si utilizamos nuestro navegador para ir a la dirección http://localhost:8080/

Screen Shot 2018-05-08 at 3.51.12 AM

Consultamos nuestra IP y le guardamos para utilizarla en los siguientes pasos. Tambien podemos acceder a nuestra página a tráves de ella.

Screen Shot 2018-05-08 at 3.54.19 AM.png

Ingresamos a la interface web del WiFi Pineapple. Por suerte para nosotros, ya hay software desarrollado para el Pineapple para todo tipo de ataques. El DNS Spoofing no es una excepción, hay un módulo en específico con bastante poder con el nombre de DNSMasq Spoof. 

Lo primer es instalarlo. Bajo la pestaña Modules, podemos ver los módulos que hay disponibles. Por el momento nos interesa DNSMasq Spoof, lo seleccionamos.

Screen Shot 2018-05-08 at 3.56.36 AMScreen Shot 2018-05-08 at 3.56.45 AM

Y lo instalamos dando clic a Install to internal storage.

Screen Shot 2018-05-08 at 3.56.56 AM

Podemos confirmar que ya esta disponible para uso en la lista de nuestros modulos:

Screen Shot 2018-05-08 at 4.18.58 AM

Una ves tenemos DNSspoof instalado. Solo queda instalar sus dependencias. Es un proceso muy sencillo que require un par de clics.

Podría tardar un par de segundos. Esperamos a que termine y que esté listo para usarse.

Screen Shot 2018-05-08 at 4.22.20 AM

En la sección de Hosts dentro de la configuración del modulo. Podemos configurar los sitios a las que queremos personificar. Poniendo la dirección IP fake, seguida de los distintos dominios a personificar. El módulo ejecuta por abajo su propio servidor DNS y lo utiliza para los clientes conectados al Pineapple.

Recordemos la dirección IP de nuestra computadora que tiene el servidor fake corriendo. La utilizaremos para redireccionar el tráfica de la página que queremos personificar hacia nosotros. En éste caso http://www.bank.comScreen Shot 2018-05-08 at 4.29.22 AM

Iniciamos el programa dando clic a Start.

Podemos ver el DNS spoofer funcionando. En primera instancia podemos probar con el comando nslookup. En pocas palabras hace una busqueda del dominio que reciba como input.

Y podemos ver que para el dominio http://www.bank.com nos manda a la dirección 172.16.42.122 que si no mal recuerdan es la dirección de mi servidor corriendo.

Screen Shot 2018-05-08 at 4.27.37 AM

El navegador también piensa que estamos accediendo a http://www.bank.com cuando en realidad se ve página fake que levantamos.

Screen Shot 2018-05-08 at 4.27.24 AMScreen Shot 2018-05-08 at 4.27.16 AM

Es claro darse cuenta que no los certificados de seguridad no se muestran. Un usuario con las precauciones adecuadas, podría darse cuenta que algo anda mal.

 

Advertisement

Configurando el WiFi Pineapple

En éste blog hablaré de cómo configurar y empezar a utilizar el Pineapple. Para éste caso, estaré utilizando la versión Tetra del dispositivo. Y para configurarlo desde cero, estaré utilizando mi celular con Android.

Hack5 tiene documentado en su página los pasos a seguir para configurar el Pineapple. Las instrucciones en éste blog están basadas en dichos videos. Pueden revisar el video en inglés aquí.

Viene con un pequeño manual, con el dispositivo. Éste contiene contenido en inglés de todas las capacidades que tiene el WiFi Pineapple, cubre conceptos básicos relacionado con WiFi y documentación de uso.book_wp

Lo primero para empezar a utilizar el Pineapple es conectarlo y esperar a que la luz acul se quede estable.

20180504_022701

Conectar las antenas es totalmente innecesario, al menos para hacer pruebas locales y jugar con el Pineapple. Pero debemos reconcer que se ve 10 veces más intimidante con ellas puestas.

20180504_022828

Después sigue instalar la applicación de Android para conectarnos al Pineapple utilizando nuestro celular. La applicación se llama WiFi Pineapple Conector. Es necesario que el celular soporte USB Thetering, ésto es una funcionalidad que le permite al celular compartir internet a través de USB.

Conectamos el Pineapple a nuestro celular, y abrimos la aplicación. Vamos a necesitar activar el USB thethering, una ves lo hemos hecho. La app nos va a preguntar si está activado. Simplemente decimos que sí.

El Pineapple de fabrica viene sin los firmwares necesario instalados. En dado caso, va a ser necesario descargarlos desde https://www.wifipineapple.com/downloads/tetra/latest e instalarlos manualmente.

Vamos a ver por primera vez la interface del Pineapple. Simplemente damos clic en Get Started. Nos va a pedir que desactivemos el WiFi desde el Pineapple. Un simple clic al botón que está en la parte trasera del Pineapple hace el truco. Es el único botón que tiene el aparato, entonces no creo que sea tan difícil de encontrar.

Lo siguiente es setear la contraseña de root, el nombre para la red de acceso al Pineapple con su respectiva contraseña. Es recomendable utilizar contraseñas seguras para ambos.

El Pineapple hará su magia por unos instantes, va a reiniciarse y nos pedirá volver a conectarnos. Lo hacemos utilizando la app de nuevo. Va a aparecer la ventana para ingresar al dashboard del Pineapple. Para ésto tendremos que ingresar la contraseña de root que definimos en el paso anterior. Y después de ésto estará el dashboard principal.

Hasta éste punto el Pineapple está configurado y corriendo. Incluso podemos ver que ya levantó una red con protección. Ésta red es solo para administración y se utiliza para acceder al Pineapple de manera remota.

Idealmente, nuestra víctima tendría que conectarse a una red pública que nuestro Pineapple ponga disponible. Para hacerlo, hay que configurarlo. En la opción de Networking en el menú, tenemos la configuración para los access points del Pineapple. Hay que desmarcar la opcíon de Hide Open SSID. Luego elegir un nombre atractivo para nuestra red, algo como Internet Gratis. Y actualizar haciendo clic en Update Access Points.

Una ves realizado ésto, podemos ver que ya hay una red abierta disponible. Pero, hasta éste momento es inaccesible. Nadie podrá conectarse. Ésto se debe a que la configuración por default bloquea todas las conexiones.

Screen Shot 2018-05-04 at 2.46.09 AMScreen Shot 2018-05-04 at 2.46.25 AM

Para permitir clientes a nuestro Pineapple, hay que configurarlo en la opción de Filters. Para permitir que cualquiera pueda conectarse, basta con agregar un nuevo filtro en Deny Mode con elMAC address FF:FF:FF:FF:FF:FF. Para fines educativos, no dejes que nadie más que los dispositivos con los que quieres hacer pruebas se conecten. Así que solo agrega la dirección MAC de tus propios dispositivos en Allow Mode.

Dejamos que el Pineapple aplique los cambios. Y a partir de ahora debería permitir la conexión de nuestras víctimas, digo clientes del Pineapple.

Screen Shot 2018-05-04 at 3.07.25 AMScreenshot_20180504-030811

¿Qué es el WiFi Pineapple?

El WiFi Pineapple es un dispositivo desarrollado por Hack5, que actúa como un Access Point, o modem Le permite a quien lo controla monitorear, scannear  o interceptar la comunicación de quienes utilizan la red abierta que el dispositivo genera.

No con la intención de causar daño. La inspiración de su creación es para servir como herramienta de auditoría de seguridad para expertos en el área. Tiene en el mercado alrededor de 10 años, y al momento la empresa ha sacado seis generaciones.

El dispositivo tiene dos modelos principales:

WiFi Pineapple Tetra

tetra

Siendo éste el modelo con la version completa y con todo el poder de un WiFi Pineapple. Según la página web, cuenta con las siguientes especificaciones:

  • PineAP software, con interface web y modulos disponibles
  • (2x) Dual-Band (2.4/5 GHz) 802.11 a/b/g/n radios
  • (4x) Amplificadores Skybridge con 800 mW por radio
  • Puerto USB Ethernet (Realtek RTL8152B chipset)
  • Puerto USB Serial (FTDI D2XX chipset)
  • 533 MHz MIPS 74K Atheros AR9344 SoC
  • 2 GB NAND Flash
  • USB 2.0 Host Port
  • RJ45 Fast Ethernet LAN Port

WiFi Pineapple Nano

nano1_1bb4f835-cdc1-424b-9d4f-3a03863fde71_1024x1024

Es una versión compacta del WiFi Pineapple, su diseño está enfocado en la portabilidad para fácil acceso en cualquier ambiente donde se vaya a utilizar. Con el trade-off de que el poder que tiene disponible es ligeramente menor a la versón Tetra. De acuerdo a Hack5, sus caracteristicas son:

  • PineAP software, con interface web y modulos disponibles
  • 2 antenas 2.4 GHz b/g/n Atheros radios
  • 400 mW por radio
  • Puerto USB Ethernet Plug
  • Capacidad de memoria con Micro SD (hasta 128 GB)
  • EDC Tactical case y bateria opcionales
  • Puerto USB 2.0

Ambos modelos tienen capacidaded para auditoría de seguridad impresionantes. Elegir uno o el otro depende de las necesidades que se tenga en cuanto a portabilidad y poder requerido.

Ataque man-in-the-middle

Un ataque man-in-the-middle, “hombre en el medio” en español, es un tipo de ataque en el mundo de seguridad informatica, en el que el atacante, con intenciones maliciosas, se interpone en la comunicación entre su victima y el servidor al que quiere acceder.

En término cotidianos, un ataque man-in-the-middle es como el juego popular del telefono descompuesto. Las personas en los extremos estan intentando comunicarse, quizá para decir la primera frase o chiste que se les ocurrió, al fin es un juego. La persona en medio, es parte del medio de comunicación, es decir, tiene que escuchar y repetir lo que oye para que el mensaje llegue al otro extremo. Para que ésto funcione, ambas personas en los extremos tienen que confiar que la persona en medio va a jugar su papel de manera correcta, no va a divulgar chismes que probablemente escuche, ni va a modificar lo que alguien dijo para armar un alboroto.

2009-08-19-oseano-telefono-descompuesto

La situación cambia ligera cuando se trata de un ataque man-in-the-middle. Las personas en los extremos ahora son: algún usuario despistado navegando en internet, y el servidor de alguna de sus páginas favoritas. El atacante toma el lugar de la persona de en medio, sin que los otros se enteren.  Y lo que intentan comunicar, ya no son cosas sin sentido, los mensajes podrían contener datos sensibles (tarjetas de crédito, contraseñas, domicilios, etc.). Es aquí la principal razón por la que se invierte tanto tiempo y esfuerzo en llevar a cabo éste tipo de ataques, en el valor de la información que se puede conseguir.

man-in-the-middle-mitm

Un atacante puede utilizar su computadora, celular o dispositivo especializado para planear e configurar el ataque. Dependiendo del caso en específico, y de las precauciones que la víctima tome en cuenta, un atacante podría explotar a su víctima de las siguientes formas.

Ver todos los datos que se estan transmitiendo:

O hacer sniffing. Lo cual significa que de manera pasiva, y sin que el usuario se de cuenta escuchar todos los datos que se estan enviando y recibiendo desde el dispositivo de la víctima.

Modificar la información  enviada y recibida

Esto con el fin de realizar algun tipo de Cross Site Scripting (XSS), o en español, inyección de código. Para potencialmente cambiar el comportamiento de las páginas a las que la víctima visita, con posibilidades casi infinitas.

Personificar servicios

Utilizando técnicas como dns spoofing, el atacante podría personificar alguna página frecuentada por la víctima, haciendo una copia fake del sitio y diciendole al usuario que es real y que puede confiar.

 

Ésta entrada es la primera de una serie de blogs enfocados a hablar de este tipo de hack en especifico. En los siguientes  blogs, hablaremos de las distintas maneras de aprovecharse de un ataque man-in-the-middle, cubriendo conceptos técnicos explicados de manera sencilla, y con ejemplos de cómo hacerlo utilizando el WiFi Pineapple