Detección de intrusos en nuestra WI-FI – con nmap

Hace un tiempo bajo el titulo de “Detección de intrusos en nuestra WI-FI”  publique un una técnica que se me ocurrió para realizar esta acción, en donde básicamente detectaba a los intrusos a partir del hecho que los routers típicos de telmex como los 2wire tienen una interfaz web(como se puede ver en la siguiente imagen) a la cual me conectaba y mediante un script en python para extraer los nombres de los equipos conectados.

red domestica

aqui se puede observar solo mi maquina fitorec conectada

Sin embargo esta técnica  tiene un par de inconvenientes, la primera es que no funciona para todos los routers, de hecho solo funciona para los que muestren la red de esta forma(a nivel código HTML) y la segunda(quizás la mas importante) es que descubrí que un intruso se puede conectar y borrar la cache de nuestro router ( Hackeando modems routers 2wire de telmex – técnica borrado de caché ), por tal motivo no podemos confiarnos del todo de la información que nos proporciona estos dispositivos, después de re-pensarle un poco encontré una solución mas eficiente basada en la inserción de sondas en la red con la herramienta nmap y de esta forma detectar a los intrusos.

Instalando nmap.

Esta técnica se basa del hecho que se tenga instalado previamente el nmap, recomiendo descargar e instalar la versión mas reciente (más info: http://nmap.org/book/install.html ),  ya que es una herramienta que evoluciona rápidamente (gracias a desarrolladores como Fyodor), sin embargo quizás es mas fácil la instalación por medio de una sola instrucción  la cual dejo a continuación.

#Lo primero que tenemos que hacer el loguearnos como super usuario(root user)
#instalación en sistemas basados en debian:(ubuntu, flujos-vivos, etc..)
apt-get install nmap
#instalación en sistemas basados en redhat:(fedora, centOS, etc..)
yum install nmap

Script para detección de intrusos hosts en una red.

Una vez que tenemos el nmap podemos correr el siguiente script el cual ahora solo muestra las IPs de los equipos conectados pues me parece mejor opción que los nombres de los hosts(revisar archivo de configuración del dhclient  /etc/dhcp3/dhclient.conf ).

Nota: en este script lo único que tienes que configurar es la interfaz por donde quieres detectar a los intrusos hosts(cambiar el valor de INTERFAZ=’valor’, p.e. si quiero explorar mi red Ethernet 0 seria INTERFAZ=’eth0′).

Fyodor
#!/bin/bash
#Autor: fitorec 
#Descripción: Detecta a los hosts conectados en nuestra red
#Requiere: nmap
#
#Atención: Lo único q requiere configurar es la interfaz en donde se desea escuchar
INTERFAZ='wlan0'

#Extraemos la configuración de la IP y mascara de red para usar con el nmap
CONFIG=`ip addr sh $INTERFAZ | grep -E -o "([0-9]+.){3}[0-9]+/[0-9]+" `

#Ejecutamos el nmap para detectar a los hosts conectados en nuestra red(posibles intrusos)
#Cachando sólo las IPs de los hosts conectados(para mostrarlos en el conky)
nmap -sP $CONFIG  | grep -o -E '([0-9]{1,3}\.){3}[0-9]+'

Explicación del código fuente.

Lo primero que cabe mencionar es que la variable INTERFAZ tiene el valor de wlan0 así al ejecutar el comando ip addr sh $INTERFAZ esto tomaría la forma de.

ip addr sh wlan0

Esto nos devuelve una serie de datos de lo cual para el nmap(que posteriormente utilizaremos) necesitamos la red y la mascara de red p.e. si nuestra red es 192.168.1.0 con mascara de red 255.255.255.0 (es 8+8+8+0=24bits) y somos el hosts 80, lo único que necesitamos es:  192.168.1.80/24, por tal motivo conducimos la salida de este comando por medio de una tubería (|)  para que sea filtrado con el grep por medio de la opción de expresión regular extendida -E y le pedimos que nos muestre lo único que nos interesa -o (revisar doc. grep). la expresión regular que hace esta tarea es la de ([0-9]+.){3}[0-9]+/[0-9]+ por lo tanto el comando:

ip addr sh wlan0  | grep -E -o "([0-9]+.){3}[0-9]+/[0-9]+"

Extra la información de la interfaz(wlan0) que necesitamos para el nmap, el cual es ejecutado (“)  y en la variable CONFIG almacenamos el resultado en este caso  192.168.1.80/24, al ejecutar el comando:

nmap -sP 192.168.1.80/24

Le pedimos al nmap que nos muestre solo (-sP)  las IPs de los hosts conectados en la red, cabe mencionar que el .80 no importa ya que al mandarle la mascara de red /24 explorara 255-2=253 hosts posibles,  de tal manera podemos limitar nuestra exploración e incluso explorar la misma Internet (Fyodoy lo hizo, hay un bonito vídeo por Internet), sin mas repetimos el mismo filtrado con el grep pero ahora con la expresión regular ( ([0-9]{1,3}\.){3}[0-9]+ ) para mostrar solo las IPs de los hosts conectados.

Finalmente quisiera agradecer a @mishudark ya que con el sostuve una entretenida conversación e intercambio de ideas respecto a las expresiones regulares utilizadas(se siguen aceptando ideas) , creo que coincidimos en el hecho de pensar que las regExs SON LA ONDA! :¬)

Anuncios

One thought on “Detección de intrusos en nuestra WI-FI – con nmap

  1. vendo panes 😀
    hola es interezante lo que he leido acerca de los router …. seria bueno que dieras un tutorial de como borrar la cache le los antiguos ya que (como habras notado) aun estoy muy noob lol
    por cierto el wifi no es la unica manera de entrar a un router… en algunos router feos se les puede configurar para que puedas abrirlos desde el navegador desde cualqueir lado (no hablo de la ip porque suele cambiar mucho XD)
    de antemano gracias por la info 😀

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