viernes, 15 de enero de 2010

Como escanear nuestra red con Nmap

fuente: http://www.axlinux.es/2009/07/como-escanear-nuestra-red-con-nmap.html


El otro día publiqué un artículo sobre Ntop, herramienta con la cual podíamos hacer un análisis del tráfico de nuestra red. En esta ocasión vamos a realizar otro tipo de análisis a nuestra red con Nmap.

Nmap, según la wikipedia, es un programa de código abierto que sirve para efectuar rastreo de puertos escrito originalmente por Gordon Lyon (más conocido por su alias Fyodor Vaskovich). Se usa para evaluar la seguridad de sistemas informáticos, así como para descubrir servicios o servidores en una red informática.

Es un software multiplataforma pudiendo ser ejecutada tanto en Linux, Unix(Solaris, Mac OS X, BSD) o Windows.

La salida de Nmap es un listado de objetivos analizados, con información adicional para cada uno dependiente de las opciones utilizadas. La información primordial es la “tabla de puertos interesantes”. Dicha tabla lista el número de puerto y protocolo, el nombre más común del servicio, y su estado. El estado puede ser open (abierto), filtered (filtrado), closed (cerrado), o unfiltered (no filtrado). Abierto significa que la aplicación en la máquina destino se encuentra esperando conexiones o paquetes en ese puerto. Filtrado indica que un cortafuegos, filtro, u otro obstáculo en la red está bloqueando el acceso a ese puerto, por lo que Nmap no puede saber si se encuentra abierto o cerrado. Los puertos cerrados no tienen ninguna aplicación escuchando en los mismos, aunque podrían abrirse en cualquier momento. Los clasificados como no filtrados son aquellos que responden a los sondeos de Nmap, pero para los que que Nmap no puede determinar si se encuentran abiertos o cerrados. Nmap informa de las combinaciones de estado open|filtered y closed|filtered cuando no puede determinar en cual de los dos estados está un puerto. La tabla de puertos también puede incluir detalles de la versión de la aplicación cuando se ha solicitado detección de versiones. Nmap ofrece información de los protocolos IP soportados, en vez de puertos abiertos, cuando se solicita un análisis de protocolo IP con la opción (-sO).

Además de la tabla de puertos interesantes, Nmap puede dar información adicional sobre los objetivos, incluyendo el nombre de DNS según la resolución inversa de la IP, un listado de sistemas operativos posibles, los tipos de dispositivo, y direcciones MAC.

Nmap proporciona también características avanzadas como la detección remota del sistema operativo por medio de huellas TCP/IP , escaneo tipo stealth (oculto), retraso dinámico y cálculos de retransmisión, escaneo paralelo, detección de servidores inactivos por medio de pings paralelos, escaneo con señuelos, detección de filtrado de puertos, escaneo por fragmentación y especificación flexible de destino y puerto. Se han hecho grandes esfuerzos encaminados a proporcionar un rendimiento decente para usuarios normales (no root). Por desgracia, muchos de los interfaces críticos del kernel (tales como los raw sockets) requieren privilegios de root. Debería ejecutarse nmap como root siempre que sea posible.


Como instalar Nmap

Como Nmap esta disponible en los repositorios oficiales de Ubuntu solo tenemos que teclear desde terminal:

$ sudo apt-get install nmap

Para el resto de distribuciones al final del post hay un enlace para descargar desde la página web oficial, así como para aquellos que quieran instalar la última versión o para otras plataformas.

Uso de nmap

Se recomienda usar nmap con sudo, tal como ya he mencionado.

$ sudo nmap [Tipo de Scan] [Opciones] victima(s) o red_victima

Opciones de Nmap

-h Muestar la ayuda.

-sP ping "scan". Este es utilizado solo para saber si determinado(s) host(s) están en ese momento vivos o conectados, normalmente esto lo realiza nmap enviado paquetes a el puerto 80 de un host pero si este tiene un filtrado de ese puerto podrás ser detectado de todas formas.

-sU Es un Scan de Puertos abiertos con protocolo UDP, solo root puede ejecutarlo.

-sS Ping oculto, entrega solo la respuesta final para dejar menos registros.

-b ftp "bounce attack" utilizado para ver si se puede utilizar un host para pasar una conexión ftp a través de el y no hacer el ftp a otro host desde tu maquina directamente.

-f Utiliza pequeños paquetes fragmentados para el SYN , Xmas , FIN o barrido nulo.

-P0 No hace "ping" al host en cuestión , necesario para el scan o "barrido" a sistemas de detección de ataques sensibles.

-PT Utiliza el Ping de tcp para determinar si un host esta conectado para el caso de -sT y -sP esta opción aunque no es suministrada va implícita en el método.

-PT21 Utiliza el Ping tcp para hacer prueba de conexión a el puerto 21 o a cualquier otro especificado después del -PT ejm: -PT110 .

-PI Utiliza paquetes icmp para determinar que hosts están conectados y es especial si deseas hacer un scan a través de un firewall.

-PB Hace la misma función que el barrido (scan) TCP y ICMP, se le puede especificar un puerto destino despues de la "B".

-PS Utiliza el TCP SYN sweep en lugar de el valor por defecto que es el ack sweep utilizado en el Ping TCP.

-O Utiliza el TCP/IP "fingerprinting" para determinar que Sistema operativo esta corriendo un host remoto.

-p o puertos: ejm: '-p 23' solo intenta hacer conexión con el(los) host(s) en el puerto especificado para extraer de allí la información necesaria para la operación de scan. Otros
ejemplos '-p 20-100,31330-' hace un barrido entre los puertos 20-30 y entre 31330-65535. por defecto el barrido es entre los puertos 1 y el 1024 mas los que parezcan en el /etc/services.

-F Barrido Rápido a "Fast Scan" solo examina los puertos que están en el /etc/services.

-I Toma información de quien es el dueño del proceso que se esta ejecutando pero solo se puede ejecutar con el -sT por lo cual deja una traza enorme en el log de la víctima por ello debe evitar utilizar esta opción.

-n no hace conversiones DNS para hacer el -sP mas rapido.

-R Intenta Convertir utilizando DNS (o sea del ip te muestra el hostname ejm: le das 127.0.0.1 y te muestra que es localhost.localdomain).

-o guarda el mismo resultado mostrado por pantalla en un archivo en formato entendible para los humanos.

-m lo mismo que lo anterior pero la salida es en un formato de maquina.

-i Lee las IPs de las víctimas desde un archivo.

-g Indica que puerto local se utilizara para enviar los paquetes para el scan.

-S Si quieres especificar una IP para que sea la fuente del scan, ideal para hacer "Scan Spoofing" o encubrir tu scan.

-v Verbose. Muestra mas Información.

-V Imprime la versión de nmap y sale.

-e . Enviar los paquetes a través de esta interface en tu host puede ser eth0,ppp0,ppp1 etc.

Front-ends para Nmap

Nmap se puede ejecutar desde consola, pero también disponemos de varios front-end para utilizar Nmap en entornos gráficos todos ellos disponibles en repositorios para las distribuciones Ubuntu.

Umit: UMIT (antes llamado NmapFE++), un nuevo front end para nmap escrito en Phyton y que usa las GTK.

El interfaz del programa es cómodo y muy intuitivo. Cuenta con un ‘wizard’ con dos niveles (novatos o usuarios experimentados) que te permite construir el comando que necesitas sin tener que recordar las decenas de opciones que posee nmap, permite lanzar comandos previamente definidos y comparar los resultados entre distintas sesiones y disponemos tanto de la salida original de la herramienta (pero con ’sintaxis iluminada’ para una mayor comprensión) como de salidas filtradas y decoradas con iconos para que resulten más intuitivas.

UMIT, el nuevo Front End para nmap

NmapSi4: NmapSi4 es una Qt-based Gui completo que permite ejecutar todas las opciones de Nmap


Knmap: Knmap es un front-end de Nmap para Kde.


En resumen

Nmap es una potente herramienta de seguridad, que nos permitirá saber lo que tenemos en nuestra red, realizando un mapa de la misma identificando los diferentes componentes de la misma permitiendo identificar incluso a intrusos en la misma.

No hay comentarios: