Deteccion de intrusos en nuestra WI-FI

Introducción:

Como bien sabemos las redes inalámbricas tienen un problema de seguridad nativo del medio(capa 1 modelo OSI) y en este caso  es el espectro electromagnético dispersado por la atmósfera el cual es compartido por todos, por esta razón por las redes inalámbricas son(y serán inseguras) dadas la naturaleza del medio.

Hace unos días por parte del equipo de SICÁ tuvimos la oportunidad de participar en el evento Ingenia que tuvo lugar en la cuidad de Oaxaca, entre las conferencias y talleres que tuvieron lugar hubo una que me llamo mucha la atención y fue la que dieron los amigos Diego(bugcillo) y el Nierox en este taller explicaron el uso de la suite aircrack-ng del como detectar redes inalámbricas, inyectar paquetes a dicha red y del como por medio de eucarísticas encuentra la key deseada.

Todo esto me dejo pensando en una solución a la detección de intrusos en nuestra red, y se me ocurrió una idea!.

Análisis

En este caso suponemos que somos nosotros los propietarios del servicio y que hemos sido atacados por algún intruso (p.e. mi vecino).

También suponemos que el servicio es Prodigy Infinitum de Telmex y que el modem routeador es un 2wire (que es lo + común).

Modem 2 WIRE telmex

Fig-1- Modem 2 WIRE telmex

Ahora si accedemos a la URL http://gateway.2wire.net/xslt o bien  (http://home/) estaremos entrando a la configuración de nuestro modem en donde en el main page nos muestra un resumen del sistema si vemos en la parte inferior nos daremos cuenta que aparecen las maquinas colgadas a nuestro modem en este caso[fig2] solo la mía(fitorec) como activada y las maquinas pc_x y pc_y como parte del cache de las conexiones pero a su vez ambas están inactivas.

red domestica

Fig2 .- Se puede observar solo la maquina fitorec conectada

Solución propuesta:

Como podemos ver el router monitorea constantemente los hosts conectados y es posible visualizar quienes están conectado si accedemos al router traves de un navegador. Para detectar a un intruso o un nuevo hosts en nuestra red a travez de esta técnica puede resultar algo tedioso, pues tendríamos que visitar el sitio del router cada determinado tiempo para ver  a los nuevos hosts conectados.

Pero si nos ponemos a pensar un par de minutos esto mismo pasa con los canales RSS, el correo electrónico, los mismos podcast, todos ellos normalmente tienen un cliente el cual se conecta con el servicio cada determinado tiempo para ver si hay nueva información. Esto ultimo me puso a pensar que se trata de  realizar un script que sea una especie de cliente que sirva para automatizar este proceso cada determinado tiempo y que de alguna manera nos notifique quienes están conectados a nuestra red.

Fue entonces cuando se me ocurrió utilizar el Conky el cual es una programa que se integra al escritorio de Linux y nos sirve para monitorear distintas cosas de nuestro systema como: memoria consumida, procesador en uso, …,  y también se le pueden agregar scripts de red  para generar notificaciones  de gmail, twittter, .. entre otros servicios.

Por otra parte el Conky también nos ayuda a descolar nuestro escritorio a qui dejo una cara del Conky:

un ejemplo del conky

un ejemplo del conky

Sin mas la solución propuesta es hacer un script para detectar los usuarios conectados a nuestro router y mostrarlos en nuestro escritoria a través de conky.

Implementación:

Detección de Hosts: la deteccion de hosts la vamos hacer accediendo a la URL http://gateway.2wire.net/xslt en donde vamos a parsear para buscar la imagen (http://gateway.2wire.net/icons/icon_small_pc.gif) la cual corresponde a una maquina activa y de existir dicha imagen el nombre del host activo en este caso fitorec se encuentra localizada entre las etiquetas:

<span class="textmono">fitorec</span>
De esta idea he generado el siguiente script:



codigo 2wireHosts.py script en python

codigo 2wireHosts.py script en python

Implementación 2:

Via twitter el amigo @gnuget David Valdez me envio una versión mejorada del script, la verdad le quedo muy bien y se ve asta elegante el código(1 saludo man):

Codigo desarrollado por gnuget

Codigo desarrollado por gnuget

Configurando Conky: pues bien ahora que ya tenemos un script para detectar los hosts en nuestra wifi ahora solo nos falta configurar nuestro Linux para que nos muestre esta info.  en su Escritorio.

Instalación

1.- creamos la carpeta donde estaran los archivos del compiz e ingresamos a la carpeta:

mkdir  ~/.config/conky

cd ~/.config/conky

2.- Descargamos el siguiente archivo de configuración para el conky al cual he nombrado rightTop ya que se posiciona en la esquina superior derecha de nuestro desktop.

wget http://gist.github.com/raw/259995/e9c8538cb6c45b7b7f063798262ed1566581680f/rightTop

Nota:

El este archivo de config. del  conky manda a llamar las siguientes fuentes.

Las caules debes de descargar e instalar antes de seguir los siguientes pasos.

3.- Descargamos el código de python que nos detecta los host conectados:

wget http://gist.github.com/raw/259463/7af5d194d0829530cd5bbae6b7463e7f477e1014/2wireHosts.py

4.- Y finalmente Ejecutamos nuestro conky con la siguiente instrucción:

conky -c rightTop

Corrida de ejemplo:

Aqui les dejo una corrida de ejemplo de una maquina que configure con edubuntu para una niña de 9años (a mi como me hubiera gustado conocer linux a esa edad)

Anuncios

9 thoughts on “Deteccion de intrusos en nuestra WI-FI

  1. K hongo we, felicidades x el script, lo ke mas me gusta es la integracion con conky, jejeje, asi ya no tienes ke star haciendo refresh a la pagina, el unico problema es que luego hay gente que cambia sus modems 2wire de telmex x cisco o linksys. Creo que tambien ultimamente telmex da modems Thompson, no recuerdo que modelo. Se me ocurre tambien, ahora que mencionas la suite de aircrack que puedes usar tambien airodump-ng para saber que clientes estan conectados a un cierto AP, y asi no hay problema x el modelo, sin embargo necesitas estar dentro del alcance de los clientes para interceptar sus paquetes y saber a que AP se conectan.
    Saludos man!

    • Si buena observación de hecho el problema también para esto seria hacer un script detecte los hosts de una red a partir del rango de su netmask. tanks por el comentario esperemos mejorar el script en alguna futura versión.

  2. Hola,

    Me encanto el concepto y el script.

    Conky se jecuta bien pero en consola me deja un bucle constante con:

    sh: /home/mi_user/.config/conky/2wireHosts.py: Permission denied

    ¿Alguna idea?

    Saludos

  3. Hola,

    Baje la ultima versión del script y le di los permisos (que efectivamente no tenia) pero ahora cambio el error:

    urllib2.URLError:
    Traceback (most recent call last):
    File “/home/gnumax/.config/conky/2wireHosts.py”, line 9, in
    response = urllib2.urlopen(opener)
    File “/usr/lib/python2.6/urllib2.py”, line 126, in urlopen
    return _opener.open(url, data, timeout)
    File “/usr/lib/python2.6/urllib2.py”, line 391, in open
    response = self._open(req, data)
    File “/usr/lib/python2.6/urllib2.py”, line 409, in _open
    ‘_open’, req)
    File “/usr/lib/python2.6/urllib2.py”, line 369, in _call_chain
    result = func(*args)
    File “/usr/lib/python2.6/urllib2.py”, line 1161, in http_open
    return self.do_open(httplib.HTTPConnection, req)
    File “/usr/lib/python2.6/urllib2.py”, line 1136, in do_open
    raise URLError(err)
    urllib2.URLError:

    Saludos

  4. Pingback: Hackeando modems routers 2wire de telmex – técnica borrado de caché « Fitorec – Pensamientos Libres!

  5. Pingback: Deteccion de intrusos en nuestra WI-FI – con nmap « Fitorec – Pensamientos Libres!

  6. Hola, me parece buena idea para prevenir conexion de intrusos. Pero si detecto a alguien conectado, como lo bloqueo sin tener que cambiar la clave del modem. Gracias

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