viernes, 2 de noviembre de 2012

¿Cómo saber quien está en mi red? PARTE 2

Buenassssss.... esta entrada es una continuación de una que publiqué hace unas semanas, os la dejo AQUI.

Bien, como mencioné en la otra entrada, a veces los paquetes ICMP pueden ser bloqueados, de manera que no podemos confirmar realmente si hay o no un dispositivo en una dirección concreta, ya que si bloquea lo paquetes ICMP no recibimos ninguna respuesta a pesar de que SI hay alguien en la dirección ip a la cual enviamos la solicitud ICMP.

Ok, aquí es donde entra en juego el protocolo ARP. Resumiendo mucho el tema: en una red de área local los ordenadores se comunican con direcciones físicas (MAC), y el protocolo ARP se encarga de hacer una asociación entre las direcciones IP y las direcciones MAC. Resumiendo del todo, si un ordenador quiere estar conectado a una red tendrá que responder a las solicitudes ARP que se le manden, así que nosotros usaremos esto para descubrir que dispositivos están conectados realmente a nuestra red.

Nota: si un ordenador bloquease los paquetes ARP no se podría conectar a la red, ya que no podría ni enviar ni recibir paquetes al no poder recibir información del protocolo ARP, lo cual nos asegura que al realizar solicitudes ARP nos responderán todos los dispositivos que están realmente en nuestra red.

perfecto, ahora ya sabemos el truco definitivo para saber quien están en nuestra red, pero.... ¿cómo lo ponemos en práctica? pues bien, podemos hacerlo de varias maneras:

La primera manera de hacerlo es haciendo un ping con nmap tal y como hacíamos en la parte 1 y a continuación mirar la tabla ARP de nuestro equipo, para mirar la tabla ARP se necesitan privilegios de root, asi que la secuencia de comandos sería así:

Nota: yo uso la red 192.168.120.0 porque es la dirección de mi red, pero cada uno deberá de usar la dirección de su propia red, si tienes configurado el router por defecto probablemente la dirección de tu red sea 192.168.1.0


nmap -sP 192.168.120.0-255




su

arp -v




Como podemos ver se muestran un montonazo de entradas en la tabla ARP, pero casi todas nos marcan que están incompletas, las que nos interesan son las que están completas, osea, las que se nos muestran con una dirección MAC, si queremos podemos ejecutar el comando de la siguiente manera para que se nos muestren solo las entradas completas:


arp -v | grep C




estas entradas son los ordenadores que están conectados a nuestra red, en mi caso se muestran dos entradas, que corresponden a la dirección 192.168.120.30 (mi router) y 192.168.120.29 (otro ordenador de mi red), como podéis observar cuando se realiza el sondeo ICMP no se muestra esta ultima dirección (192.168.120.29) ya que en este ordenador hay un firewall que bloquea los paquetes ICMP, pero en cambio cuando consultamos la tabla arp vemos que esta ahí porque SI que responde a la solicitud ARP que hace el sistema.

Nota: en el sondeo icmp sale la dirección 192.168.120.21 que es la dirección de mi propio ordenador, por eso no sale después en la tabla ARP.

La segunda manera es la mas factible, ya que solo usamos nmap, de hecho usamos nmap exactamente de la misma manera que antes, lo único que cambia es que lo haremos con permisos de root:


su

nmap -sP 192.168.120.0-255




Como podemos ver en esta ocasión también se nos muestra la dirección 192.168.120.29 que antes no se mostraba.

El tema es que nmap siempre hace un sondeo ARP, lo que pasa es que, por decirlo de alguna manera, nmap necesita permisos de root para poder acceder a la información del protocolo ARP, así que cuando lo ejecutamos sin permisos de root solo nos muestra el resultado del sondeo ICMP, pero cuando lo ejecutamos con permisos de root nos muestra también el sondeo ARP (que es mas fiable).

De todas maneras también podemos indicarle a nmap que haga un sondeo exclusivamente ARP de la siguiente manera:


nmap -PR 192.168.120.0-255


Esta opción ademas del sondeo ARP también hará un escaner de los puertos mas habituales, si queremos evadir un poco el escaner de puertos, podemos ejecutar el programa de la siguiente manera:


nmap -p 0 -PR 192.168.120.0-255


Conclusión final:

Para saber quien esta en tu red lo único que tienes que hacer es ponerte como root en un shell (usando el comando su) y después simplemente usar nmap con la opción -sP y el rango de direcciones de tu red.

Cualquier duda que tengáis dejádmela en los comentarios

Saludos =)


1 comentario: