Mostrando entradas con la etiqueta NMAP. Mostrar todas las entradas
Mostrando entradas con la etiqueta NMAP. Mostrar todas las entradas

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 =)


sábado, 13 de octubre de 2012

¿Cómo saber quien esta en mi red?

Buenas otra vez, en esta nueva entrada os traigo un mini-tutorial que creo que le puede resultar muuuyy interesante a bastantes personas, os enseñare como saber quien esta conectado en vuestra red. Sobre todo es interesante para las personas que tienen wi-fi (la mayoria vamos) y que quiere comprobar si hay alguien no autorizado que esta utilizando su red.

Bien, empezamos, para saber que ordenadores estan conectados a tu red usaremos el protocolo ICMP, quizá no os resulte familiar, pero si hablo del programa ping seguro que a mas de uno le suena. Resumiendo... lo que hace el ping es enviar una solicitud a una dirección IP en concreto, si hay un pc en esa dirección este respondera a la solicitud y obtendremos una respuesta, en caso de que no haya ningun pc simplemente no obtendremos respuesta.

Vale, ahora queremos poner esto en práctica, si quisiésemos comprobar que dispositivos hay conectados a nuestra red, tendríamos que hacer ping a todas y cada una de las direcciones de nuestra red de la siguiente manera:

- Abrimos una shell y escribimos :

ping 192.168.120.1

ping 192.168.120.2

ping 192.168.120.3

...etc, etc, etc

 NOTA: en el ejemplo puse la red 192.168.120.0 que es la que uso yo personalmente, normalmente por defecto los routers usan la red 192.168.0.1 o 192.168.1.1, si tienes el router configurado por defecto probablemente tengas una de esas dos redes.

Esto es demasiado engorroso, ademas de que nos llevaría mucho tiempo, ya que la máscara de subred que se suele usar es la 255.255.255.0 lo que indica que hay 254 direcciones útiles en la red, osea que tendríamos que usar el comando ping 254 veces para comprobar cuantos dispositivos hay conectados a nuestra red. Una solución posible seria escribir un script que ejecutase el comando ping con todas las diversas direcciones ip, (aunque la salida de datos que nos daría sería demasiado larga y el script tambien tardaría bastante en ejecutarse).

Otra solución posible sería la de hacer un ping a la dirección broadcast para que la solicitud ICMP se envíe a todos los ordenadores de la red, se haría de la siguiente manera:

ping -b 192.168.120.255

la dirección broadcast siempre es la ultima de la red, en este caso 192.168.120.255. El flag -b nos indica que la solicitud se debe de enviar como broadcast. Pero con este metodo a pesar de que parece bastante bueno tenemos otro problema y es que algunos dispositivos tienen desactivado por defecto la posibilidad de responder a una solicitud broadcast, de manera que en algunos casos puede ser que haya diversos dispositivos conectados a nuestra red y no responda a nuestra solicitud ICMP.


NMAP LA SOLUCIÓN DEFINITIVA

Bien, hasta ahora teníamos dos problemas, el primero es que si queríamos enviar solicitudes ping individualmente sería demasiado tedioso y nos llevaría mucho tiempo, y el segundo es que con la solicitud ICMP broadcast algunos dispositivos no nos responderían a pesar de estar en la red. Para poner solucion a estos problemas usaremos NMAP.

NMAP es un escaner de red, que nos permite emplear diferentes tipos de protocolos para realizar diversos tipos de escaneado en una red (es una herramienta realmente útil).

Podeis conseguir NMAP en su web oficial: http://nmap.org

Bien, una vez tengamos NMAP en nuestro pc abrimos una shell y ponemos lo siguiente (NMAP se puede usar con interfaz grafica, pero prefiero usarlo desde una shell):

nmap -sP 192.168.120.0-255

repasemos los flags:

-sP sirve para enviar solicitudes ICMP

192.168.120.0-255 es la direccion IP a la que queremos hacer ping, pero fijaros que en este caso he puesto el rango completo al que quiero hacer ping en el último byte de la direccion, de manera que asi se hará ping a todas las direcciones de mi red desde la 192.168.120.0 hasta la 192.168.120.255

veamos el resultado que da en mi caso:



Como se puede ver en mi caso salen 3 IPs, una es la del ordenador que estoy usando ahora mismo, otra es de mi router y otra es de mi smartphone, de esta manera sé que hay tres dispositivos conectados a mi red y que son tres dispositivos que me pertenecen a mi, ya que yo les he asignado esas IPs, si en este caso me apareciese una nueva IP que yo nunca he asignado querría decir que hay alguien ajeno conectado a mi red.

Esta técnica debería de funcionar en la mayoría de los casos, pero a veces puede ser que no funcione debido a que hay un bloqueo de los paquetes ICMP, en este caso habria que usar otro tipo de técnicas...

CLICK AQUÍ PARA IR A LA 2ª PARTE

Espero os haya gustado este mini-tutorial.

Saludos =D