El ladrón en casa. ¿Me están robando mi conexión Wi-Fi?


El otro día me pasó que viendo en perspectiva, es bastante absurdo.hacker

En casa tengo una conexión mala de internet, no es muy rápida y hay más de 3 ordenadores, cuando hay varios encendidos no hay quien navegue.

El caso es que estaba yo por Internet cuando me empieza a ir muy lento, muy pero que muy lento. Voy a ver quién está navegando pero todos los ordenadores están apagados, las consolas (que suelen comerse más ancho de banda) también apagadas, todo apagado. Me acuerdo de que a veces usan el móvil para conectarse a Internet por WiFi, a si que voy a mirar pero nada, todo apagado o desconectado.

Me mosqueo un poco y cojo mi ordenador, abro el ettercap (busca hosts mucho más rápido que nmap, este último hace algo raro cuando llega al 192.168.1.255, no se porqué) y lo pongo a buscar máquinas conectadas a mi red. El caso es que solo con mi ordenador encendido me encuentra dos máquinas. Una como siempre es la puerta de enlace, en mi caso 192.168.1.1, y otra ip que nunca había visto. Es cierto que al reiniciar el router se suelen cambiar las ips pero todas oscilan en torno a 5 ó 6 valores.

Todavía más mosqueado le hago un envenenamiento de ARP y me pongo a esnifar paquetes a ver que está haciendo. Veo que está mandando multitud de paquetes, pero al mirar el nombre del equipo: tiene uno muy parecido, casi igual, que uno de los ordenadores de casa, que es el nombre de la persona. WTF?! Esa persona no está y su ordenador está apagado.

¿Qué estaba pasando? La cosa más tonta que podía pasar: esa persona se había comprado un portátil nuevo y estaba descargando algo por ahí escondido en la casa. No pude hacer otra cosa que desear tirar el ordenador por la ventana, que no hice bajo peligro de salir yo detrás cuando se diera cuenta de lo que había hecho.

El caso es que a veces esto nos pasa y puede ser alguien que haya crackeado nuestra conexión WiFi y esté utilizándola. Esto es bastante fácil de hacer, especialmente si dejas la coniguración por defecto del router, que suele ser una clave WEP (fácil de crackear). Además han descubierto que ciertos fabricantes usan un algortimo bastante simple para ponerle un ESSID y una clave WEP al router, de modo que conociendo el ESSID podemos saber la contraseña. Por eso recomiendo cambiar la contraseña por una WPA2-PSK, y poner un filtrado MAC para hacer vuestra red más segura.
Pues aquí voy a enseñar a hacer lo que hice yo, que podéis aplicar maliciosamente a robar todo tipo de tráfico en vuestra red, o a saber si alguien os está robando a vosotros.

Herramientas:

Voy a explicar todo esto desde Linux, yo uso el Ubuntu 10.04 y recomiendo a todo el mundo que se lo instale en una partición junto a Windows para tener un equipo completito: seguridad y compatibilidad.

Vamos a necesitar también las herramientas que yo he usado, una es dsniff, y la otra, la que uso para escanear la red, es el ettercap, que también hace lo mismo que el dsniff pero este último tiene las herramientas separadas y me gusta más así, para escanear puedes usar el nmap, que es más sencillo.

Vamos a instalarlas, ettercap y nmap se pueden instalar desde repositorios, así que corre a una terminal y escribe:

sudo apt-get install nmap
sudo apt-get install ettercap

El dsniff me parece que también está en repositorios así que lo puedes instalar igual. Si no, descargamos el código de aquí, va en un paquete .tar.gz vamos a donde lo hemos descargado, y hacemos make, make install.

piou@laptop:~$ cd Descargas
piou@laptop:~/Descargas$ tar xzvf dsniff-2.3.tar.gz
piou@laptop:~/Descargas$ cd dsniff-2.3/
piou@laptop:~/Descargas/dsniff-2.3$ sudo ./configure
piou@laptop:~/Descargas/dsniff-2.3$ sudo make
piou@laptop:~/Descargas/dsniff-2.3$ sudo make install

Ya tenemos instaladas todas las herramientas.

Vamos a organizar una situación, si tienes en casa dos ordenadores conectados a la misma red mejor que mejor, también se puede hacer con máquinas virtuales.

Supongamos que el router será 192.168.1.1, la ip de la máquina atacante será 192.168.1.30 y la víctima 192.168.1.60

Lo primero que haremos será engañar a la máquina víctima para que piense que nosotros somos el router y nos mande los paquetes a nosotros en vez de al router. ¿Y eso cómo lo hacemos?

Antes de explicarlo, hay que decir un poco con qué criterio se mandan los paquetes en una red, aunque parto de que algo sobre redes sabes.

Como sabes la IP es una dirección de direccionamiento lógico, es decir, del nivel de red del Protocolo TCP/IP, el que usa internet y la mayoría de redes. Con la IP se haya el camino hacia la máquina destino, por medio de encaminadores (routers). La dirección MAC es una dirección única para cada máquina del mundo (se supone, luego se pueden cambiar de manera virtual), y la pone el fabricante, esta dirección se encarga del direccionamiento físico, que los datos lleguen al destino, que no haya errores, etc. Se usa en una capa inferior, la capa de enlace. Básicamente el ordenador crea un paquete con una cabecera IP que permite saber la IP de destino, el nivel inferior (nivel de enlace), le mete una cabecera MAC para poder direccionarlo al destino.

Cuando mandamos un paquete necesitamos ambas direcciones IP y MAC, de forma que cada vez que enviamos un paquete el router, cuando es un switch (ahora todos los son), determina a quién está dirigido y lo manda. Los antiguos HUBs enviaban los paquetes a todas las máquinas y eran estas quien debían mirar la cabecera para ver si les pertenecía. Con poner la tarjeta en modo promiscuo (coge todos los paquetes) podíamos ver el tráfico dentro de la red.

Pero ¿cómo sabe un ordenador que dirección MAC poner? Cada ordenador tiene una tabla ARP (Address Resolution Protocol) en la que guarda las direcciones IP-MAC de todas las máquinas de la red. Esta tabla se rellena enviando mensajes ARP request, a los que se contesta con un ARP reply en el que envía la dirección MAC de modo que la otra máquina la conozca.

El envenenamiento de ARP (ARP poisoning o ARP spoofing) consiste en enviar mensajes ARP reply a una máquina diciendo que el la dirección MAC del router es la nuestra, de ese modo cuando el paquete llegue del nivel de red con la IP del router en la cabecera, el nivel de enlace mirará en la tabla y verá que la MAC de esa IP es la nuestra, de modo que le pondrá nuestra MAC y el paquete nos llegará, así conseguiremos capturar el tráfico que va a nuestra máquina. Esto plantea un problema: es muy probable que la víctima sospeche si ve que envía paquetes y no le llega nada, si pone http://www.google.com en la barra de direcciones no se le abrirá nada. Esto lo arreglamos activando el IP_forwarding. Nuestro ordenador abrirá el paquete y lo reenviará a la IP especificada en la cabecera IP, que es la del router, esta vez con la MAC verdadera.

Empecemos:

Antes de empezar: todo lo que hagamos lo tendremos que hacer como usuario root.
Lo primero que haremos será buscar hosts (máquinas) en nuestra red, que es la razón de este artículo, ya tenemos descargado el ettercap, que es el que usaré, lo ejecutamos en modo semi-gráfico, sigue siendo modo texto, pero más pijín.

piou@laptop:~$ sudo ettercap -C

Cuando se abra vemos arriba el menú con cuatro opciones, yo solo voy a usar una para buscar hosts, pero es un programa bastante completo y te recomiendo que busques sobre él para saber usarlo. Podemos navegar por los menús con las teclas de dirección (lo recomiendo), o con el ratón (no lo recomiendo).
Vamos a “Sniff” y entramos en “Unified sniffing”. Ahora nos pedirá la interfaz de red.

NOTA: Cada tarjeta de red tiene una interfaz, la interfaz de mi tarjeta WiFi es wlan0, para saber las interfaces de nuestras tarjetas abrimos una terminal y ejecutamos:

ifconfig
NOTA 2: Por alguna razón, cuando empecé a usar el programa a veces no me pedía la interfaz y cogía una por defecto, en mi caso cogía eth0, pero esta no era la que yo quería. Si te pasa eso, en vez de empezar el programa como antes empiézalo así:

sudo ettercap -C -i interfaz

Y funcionará con la interfaz que le pongas ahí

Una vez hayamos pulsado Unified sniffing y hayamos puesto la interfaz, nos pondrá en otro menú con más opciones arriba. Aquí podemos buscar hosts, mandar ataques ARP, esnifar paquetes aplicando filtros, y un montón de cosas más, pero a lo que nos interesa, buscar hosts.

En el menú superior vamos a “Hosts” y pulsamos “Scan for hosts” o pulsamos directamente Ctrl+S
Una vez haya terminado de buscar máquinas en la caja de texto inferior podremos ver algo como lo siguiente:

Scanning the whole network for 255 hosts…
2 hosts added to the host list…

En mi caso el las ips internas de la red están en el rango 192.168.1.x, que es bastante común, y por eso busca 255. Me ha encontrado 2 hosts. Para ver la lista de hosts podemos pulsar “Hosts” en el menú superior y luego “Hosts list” o pulsar la tecla h.

Veremos cada una de las direcciones IP y MAC de cada máquina de la red, router incluido.
Los hosts que veremos son el 192.168.1.1 (router) y 192.168.1.60 (víctima), usa los tuyos porque yo estoy usando estos para el tutorial.

Vamos a activar el ip_forwarding para que la víctima pueda navegar sin darse cuenta. Escribimos en una consola como root:

echo 1 > /proc/sys/net/ipv4/ip_forward

Si no recibimos nada es que se ha hecho bien, podemos comprobarlo con el comando cat (concatenate)

cat /proc/sys/net/ipv4/ip_forward
1

Ahora en esta misma consola realizaremos el envenamiento de ARP en el sentido de víctima->router.
También podríamos engañar el router para que piense que la víctima es nuetro ordenador e interceptar también los paquetes que el router manda a la víctima. Usaremos la herramienta arpspoof, que está en el paquete dsniff. Escribimos en la misma consola:

arpspoof -i wlan0 -t 192.168.1.60 192.168.1.1

El uso es el siguiente:
-i: con esto especificamos la interfaz.
-t: con esto especificamos el objetivo (target) al que queremos enviar los mensajes “ARP reply”>.
El último parámetro es la IP que queremos falsear, lo mensajes serán del modo:
La máquina con la IP 192.168.1.1 está en la MAC ff:ff:ff:ff:ff:ff esa MAC será la de tu ordenador.

Se envía un mensaje cada pocos segundos de modo que no haya riesgo de que la víctima consiga las direcciones legítimas al pedir ella misma las MACs de la red.
Dejamos al programa trabajar y abrimos otra terminal.
En este momento ya tenemos todos los paquetes que van de la víctima al router pasando por nuestro ordenador. ¿Cómo podemos verlos?
Vamos a hacer uso de las demás herramientas del paquete dsniff.
dsniff
Este es un esnifer normal, intercepta contraseñas en texto plano (ahora no se ven muchas) y otras cosas.
Lo podemos ejecutar (como root):

dsniff -i wlan0 -dd

Ahora veremos todo el tráfico, si ponemos una sola -d nos dará menos información, y si no ponemos ninguna solo nos dará contraseñas en texto plano

webspy
Este programa es bastante chulo, sirve para ver en nuestro navegador y en tiempo real las páginas que visita la víctima. Lo ejecutamos así:

webspy -i interfaz host

host es la IP de la máquina que deseamos espiar (previo envenenamiento de ARP para que funcione).
Ahora abrimos el navegador, dicen que solo funciona con NetScape, pero a mi me va bien con el FireFox, y veremos las páginas que la víctima vaya visitando.

dnsspoof
Con esto podemos hacer que la víctima reciba respuestas de consultas DNS de la manera que queramos.
Las consultas DNS consisten en que cuando escribimos en el navegador una web http://www.google.com, el navegador envía una consulta DNS al servidor DNS que nos diga nuestro ISP, y este nos responde con la IP que corresponde a esa dirección. El dnsspoof nos permite decirle que ciertas webs están en nuestra máquina.

dnsspoof -i interfaz -f hostsfile

En el archivo hostsfile especificamos que direcciones queremos falsificar. Un ejemplo podría ser:

 

192.168.1.30       *.hotmail.com
192.168.1.30       *.live.com

Primero la ip que queramos que “corresponda” a esa dirección y luego la dirección.

Esas son algunas de las herramientas del paquete dsniff. Tiene muchas más, por ejemplo el webmitm, que es básicamente un proxy en nuestro ordenador y que podemos usar para esnifar contraseñas encriptadas en SSL usando un certificado falso. No me voy a alargar más pero recomiendo que busques sobre el tema si te interesa.

¿Cómo defendernos de estos ataques?
Sobre el hecho de colarse en una red WiFi, lo mejor es activar un filtro MAC y poner una contraseña WPA-PSK2, que me parece que a día de hoy no se han podido crackear. Para hacer esto nos vamos a la configuración del router. En una consola ponemos ifconfig si estamos en Linux o ipconfig si estamos en Windows. Vemos la dirección que pone como puerta de enlace. Suele ser 192.168.1.1. Vamos a un navegador y la ponemos, nos pedirá user y pass. Si nunca las has cambiado suelen ser:
user: 1234 pass: 1234
user: admin pass: admin
user: admin pass: 1234
Si no son estas busca en google la marca de tu router y cuál es su contraseña de fábrica.
Una vez dentro nos iremos al menú que diga configuración de seguridad o algo así, cambia según la marca así que no puedo decir uno contreto.

Sobre el ataque que hemos realizado nosotros, suele ser eficaz crear entradas estáticas en la tabla ARP.
Podemos ver esta tabla si escribimos en consola:

arp a

Tanto Linux como Windows
Para crear la entrada estática, esto es una entrada que no cambiará de modo que ignorará los mensajes ARP reply, aunque en Windows me parece que se pueden pisar las entradas estáticas, haremos esto:

arp -s IP MAC

Para ver si nos están haciendo una falsificación de consultas DNS, podemos usar el comando nslookup, por ejemplo, para hotmail.com

nslookup www.hotmail.com

Deberíamos obtener la IP del servidor de google, si no, es que estamos sufriendo algún tipo de ataque.

Hasta aquí esta entrada, no quería alargarla mucho y no he cubierto todo lo que me habría gustado.
Todo lo he escrito de memoria y sin probarlo, así que es probable que tenga errores, si algo no te funciona o encuentras algún error, por favor comunícamelo para que pueda arreglarlo.
Un saludo.

Anuncios
Esta entrada fue publicada en Manuales, Tutoriales y etiquetada , , , , , , , , , . Guarda el enlace permanente.

15 respuestas a El ladrón en casa. ¿Me están robando mi conexión Wi-Fi?

  1. Lupita dijo:

    Interesante

    deberias de hacer tutoriales sobre redes y eso….

    saludos!

  2. Pingback: Los números de 2010 « White-Hat H4ck1n9

  3. Pingback: El Blog del Hacking Etico » Blog Archive » ¿Me estan Robando mi WI-FI?

  4. dnix dijo:

    piou , mire, hacer con el dsniff-2.3 el ./configure me tira un error al final…

    checking for Berkeley DB with 1.85 compatibility… configure: error: Berkeley DB with 1.85 compatibility not found

    mm ¿que pasa?
    Si me puede responder a mi email mejor .
    Gracias.

  5. theneowriter dijo:

    No puedo responderte por mail porque no lo has dejado. Por ahí dicen que instalándolo desde synaptic en vez de compilando se resuelve, pero parece que no tienes una versión de BerkeleyDB compatible con la que pide el dsniff. Puedes buscar en Google la versión vieja a ver si la encuentras.

  6. Juan D. dijo:

    Gran articulo pero para mi es un poco duro ya que apenas comienzo con esto de la programación.

  7. Ancor_08 dijo:

    si ke puedes hakear una red wpa- psk si fueras mi vesino telo demostraria

    • theneowriter dijo:

      Hombre claro, todo es posible. Se puede tirar de diccionarios y demás, pero la seguridad sigue siendo infinitamente mejor que con una WEP. Desde luego, como hago yo, con WPA2-PSK, más filtrado de MAC, y vigilando de vez en cuando las conexiones, lo veo difícil. Mi contraseña no está en ningún diccionario.

      http://www.rae.es

  8. Pingback: Capturando el tráfico de una red, para Newbies y curiosos. « El chalé de Gaius Baltar

  9. hola oye muy xiido tutorial, no se q pasa en mi ubuntu, no puedo instalar el dsniff, todo va bien asta la parte de descomprimi el archivo y entrar a la carpeta pero cuando llego a la parte que dice ( sudo make ) me aparece un mensaje que dice ( make: *** No Targets specified and no makefile found. Stop )
    Podrias ayudarme. Muchas Gracias …

    • theneowriter dijo:

      Te dice que no encuentra el makefile, pero me he bajado el archivo y sí que está dentro. Tienes que entrar hasta la carpeta con los códigos. La que tiene dentro el configure y el makefile.in. Y acuérdate de hacer ./configure antes, como pongo arriba.

  10. manolo dijo:

    XD si es ubuntu instala desde el terminal

    como hice yo

    ~$ sudo apt-get install dsniff

  11. manolo dijo:

    1º se comprueba en el terminal, antes de descargar en
    web
    1º mirar en sources list

  12. David dijo:

    A mi con el ettercap me salen 4 diferentes direcciones ip y todas con la misma mac addres
    ¿Que quiere decir eso?¿ es que acaso esa mac es la mia y las ip tambien ? ¿ me podrias explicar eso?.
    Gracias por el tutorial.

Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s