Páginas

09 julio, 2017

Ataques MITM: ARP Poisoning y DNS Spoof con Ettercap - Parte 1 de 2

Existen múltiples utilidades para realizar técnicas de ataques Man In The Middle (MITM). Es un tema que está más que documentado en Internet. En una anterior entrada ya comentara en que consisten y como realizar estos ataques desde Cain & Abel en entornos Windows.

Con el fin de tener esto como un apunte personal más, comentaré como realizar un "ARP Poisoning" y incorporar el plugin "DNS_Spoof" con Ettercap, una utilidad gráfica que podemos descargar e instalar en cualquier entorno Linux. Por defecto también está disponible está disponible en Kali Linux.

Ettercap es muy sencillo de utilizar, por lo que no me extenderé explicando los detalles. Solamente con las capturas de pantalla se pueden seguir los pasos perfectamente y entender sus funciones.

Establecemos las librerías pcap. Sniff > Set pcap filter...

Figura 1: Set pcap filter Ettercap

Asignamos una interfaz de red para el sniffing. Sniff > Unified sniffing...

Figura 2: Asignar interfaz de red para la captura de paquetes.

Indicamos la interfaz de red, en este caso eth0.

Figura 3: Indicar interfaz de red

Escanemos los hosts disponibles de la red local. Scan for hosts... Una realizado el escaneo listamos los hosts disponibles. Hosts list.

Figura 4: Escaneo de hosts disponibles de la red local.

En este escenario vemos dos hosts disponibles, el equipo que nos interesa atacar es el que corresponde a la dirección IP 192.168.100.10. Lo seleccionamos y realizamos el ARP Poisoning hacia este equipo. Mitm > ARP poisoning...

Figura 5: Selección de la víctima para ARP poisoning.

Nos interesa capturar las conexiones del equipo remoto por lo que seleccionamos Sniff remote connections.

Figura 6: Sniff para conexiones remotas.

En esta punto ya estaremos envenenado la tabla ARP de la víctima. Pero añadiremos el plugin "dns_spoof" que integra Ettercap. Esto nos servirá para suplantar peticiones DNS y así redirigir estas peticiones a la dirección IP que tengamos establecida en el fichero "/etc/ettercap/etter.dns".

Administramos los plugins disponibles en Ettercap. Plugins > Manage the plugins...

Figura 8: Administrar plugins en Ettercap.

Se abrirá una nueva pestaña en la que buscaremos y seleccionaremos el plugin dns_spoof.

Figura 9: Selección del plugin dns_spoof.

Por último solo restará modificar el fichero local /etc/ettercap/etter.dns (en Kali Linux) para redirigir las peticiones de nombres de dominio del equipo víctima hacia las direcciones IP que establezcamos. En este caso las redirigí al propio equipo local (atacante) que tiene la IP 192.168.100.20. En este equipo tengo un servidor Apache el cual podría almacenar una réplica de la website que estamos redirigiendo, de este modo podríamos "engañar" a la víctima haciendo creer que está haciendo a facebook.com cuando realmente está accediendo en mi web idéntica de facebook.com alojada en mi servidor Apache.

Figura 10: Fichero etter.dns. Redirigiendo websites.

Tiempo atrás se podía realizar con éxito este ataque. Hoy en día gracias a las mejoras de seguridad existen mecanismos que dificultan los DNS Spoof como son HPKP y HSTS.
Estos pueden interceptar las comunicaciones, cookies y otros parámetros. Obligando el uso de protocolos seguros como HTTPS, redirigiendo los sitios webs a su lugar legítimo.

De manera informativa y educativa en posteriores entradas comentaré una de las técnicas que podemos utilizar para intentar bypasear este tipo de mecanismos de seguridad.

Saludos!

19 junio, 2017

Generando actividades falsas en Strava

En esta entrada mostraré una sencilla técnica en la que podremos cambiar el tipo de dispositivo con el que se registró una determinada actividad en Strava, de modo que "engañaríamos" a la App haciendo creer que cierta actividad se registró con un dispositivo smartphone cuando en realidad se hizo con otro tipo de dispositivo, por ejemplo un GPS de Garmin, quién sea usuario de esta App sabrá a lo que me estoy refiriendo. Así como también la posibilidad de cambiar la fecha y otros posíbles parámetros.

Por defecto en Strava cuando realizamos alguna actividad a través de su App Strava este da la opción de poder publicar dicha actividad nada más terminarla. Esta actividad se publica en los tiempos, fecha/hora que se realizaron, así como el tipo de dispositivo en el que fue registrada.

Tiene la opción de poder subir un fichero .gpx de algún dispositivo GPS Garmin estos dispositivos establecen unos metadatos que definen exactamente el tipo de dispositivo, ya sea Garmin un fichero GPX sin ningún metadato establecido, etc.

No sería fácil entonces engañar a Strava subiendo actividades falsas, modificando la fecha/hora, velocidades, etc. Ya que igualmente podremos ver como el tipo de dispositivo sería un fichero .gpx y no un dispositivo como un smartphone que use la App Strava. Por lo tanto sería poco creíble una actividad que sea todo un logro subida directamente desde un fichero .gpx.
¿Pero que pasaría si se pudiese modificar cualquier parámetro y a su vez que las actividades se registren y publiquen a través del dispositivo móvil, pareciendo que dicha actividad fue subida de forma pública a través de la App de Strava?.

Una actividad registrada desde un dispositivo Garmin, abriendo el fichero gpx original en Notepad++ vemos que los datos se establecen en formato XML y la etiquetas de referencias para ficheros GPX son de estándar. la etiqueta "gpx creator=" será la que nos interesa para modificar el tipo de dispositivo con el que se registró la actividad. Así como las fechas de realización de la actividad, cogeré las fechas como ejemplo a modificar, pero se podrían establecer, velocidades, distancias, nuevas coordenadas gps, etc.

Figura 1: Fichero gpx original de Garmin

Si subimos dicha actividad a Strava veremos como tanto la fecha como el dispositivo (GPX) es la original del track gpx.

Figura 2: Actividad del fichero gpx original anterior

Para comprobar que metadatos registra Strava cuando este genera su propio GPX a través de su App desde un dispositivo smartphone, descargamos cualquier actividad previamente ya registrada desde la App en Strava. Exportamos el GPX y a continuación lo exploramos.

Figura 3: Exporar GPX ya registrado por la App de Strava

Abriendo el gpx original que exportamos desde Strava de otra actividad vemos que la etiqueta gpx creator apunta a "strava.com Android" (en el caso de iPhone abría que hacer lo mismo y mirar que valor toma) en cualquier caso para engañar la subida de la actividad como un dispositivo móvil nos servirá con Android.

Figura 4: gpx original exportado de Strava APP

Una vez sabemos el valor a sustituir, abrimos el GPX original, con Notepad++ reemplazamos todos los campos que sea de una fecha por otra (Search > Replace > Replace All o Ctrl+H) y modificaremos unicamente el valor gpx creator="Garmin Desktop App" por gpx creator="strava.com Android". A mayores podemos directamente eliminar/borrar o modificar también las etiquetas xml de <metadata> de los enlaces de referencia <link href> y <text>.

El resto de datos los dejaremos igual, ya que pude comprobar que si establecen exactamente los mismos datos que el gpx original de Strava, este se da de cuenta en el momento de subir el fichero gpx a Strava y nos cancela la subida. 

¿Por qué pasa esto? básicamente los metadatos del gpx contienen los enlaces al tipo de mapa o topo con el que se registrará la actividad y realizará los cálculos. Por lo que Strava se da de cuenta de estas modificaciones si cambiamos todos los valores que tengan que ver con sus metadatos. De modo que dejaremos el resto de datos del gpx original de Garmin en este caso, con su topo con DEM (desniveles del terreno), sus distancias, etc. El mapa y la actividad registrada con los datos del Garmin pero el tipo de dispositivo se establecerá como "Strava App Android".

El resto de valores competentes con tiempos, fechas/horas, velocidades, etc. no se verán influenciadas por los filtros de protección de Strava a la hora de subir las actividades en ficheros gpx.

Figura 5: gpx modificado de Garmin para Strava APP

Guardamos el fichero ya modificado y subimos de nuevo la actividad a Strava desde un fichero GPX, esta vez ya nos aparecerá la fecha modificada y el tipo de dispositivo que registró la actividad será Strava Android App.

Figura 6: gpx anterior modificado y subida la actividad a Strava
 
Saludos!

Entradas Populares