jueves, octubre 05, 2006

Nmap

Comenzaremos con los conocimientos básicos de Nmap...
aunque para mas info ... no duden consultar la man de nmap de su distro favorita o visitando el sitio de http://insecure.org/nmap/

NMAP ( GPL )
----
http://www.insecure.org/nmap
Es un herramienta para escaneo y exploracion de seguridad en una red.
Creado por Fyodor, se utiliza para determinar en grandes redes que servicios estan activos en un servidor, permitiendonos conocer los puertos abiertos y que sistema operativo esta corriendo, por medio de huellas TCP/IP. El NMAP no es un tool para analizar vulnerabilidades, pero al mostrarte los puertos y que software esta siendo utilizado en un host, se convierte en una
de las herramientas mas utilizadas por Hackers para obtener informacion del objetivo, ya una vez conocido que puertos estan abiertos, puedes deducir que servicios da ese host y con otras tecnicas, como el hacer telnet al puerto especifico, puedes obtener las versiones del daemon. El scan de puertos es una tecnica basica en el Hacking y es muchas veces el principio para poder
acceder a un servidor.

La ultima version liberada es la 4.0, el cual es la ultima version estable desde la 3.0. Segun la informacion proporcionada por Fyodor, reconoce mas de 700 versiones de Sistemas Operativos y dispositivos de red ( Printers, Webcams, Routers, etc ), tambien reconoce 2148 asignaciones de puerto, 451 servicios SunRPC y 144 protocolos de IP.

Otra novedad de NMAP, es la version para plataformas Windows, gracias a Ryan Permeh ( de eEye ), Andy Lutomirski, y Jens Vogt, esta version es denominada NmapWin.

Sintaxis:

nmap [Tipos] [Opciones]

Tipos de Escaneo :
Usa nmap -h para ver un listado de todas las opciones disponibles.

-sT Escaneo del tipo TCP connect(), es la forma mas basica de escaneo, ya que solo realiza una comprobacion de todos los puertos interesantes que puedan estar a la escucha de una conexion, no es necesario tener privilegios de root para utilizar esta opcion.

No es muy seguro, debido a que es muy facil de detectar, por el registro que deja al realizar varias conexiones.

-sS Escaneo del tipo TCP SYN, conciste en enviar un paquete SYN, esperando una respuesta SYN|ACK si el puerto esta abierto o RST si esta cerrado, en caso de encontrarse un puerto a la escucha se envia automaticamente RST para cortar la comunicacion, una de sus ventajas es que evita dejar registro en algunos servidores, dependiendo del tipo de filtro de seguridad que tengan, ya que algunos firewalls controlan el envio de paquetes SYN. Tambien se le conoce como Half Open, debido a que no abre una conexion TCP completa. Ademas necesita de privilegios de root para su ejecucion.

-sF -sX -sN Escaneo del tipo Stealth FIN, Xmas Tree o Nul scan.

-sP Escaneo del tipo Ping. Se utiliza para simplemente saber que servidores se encuentran activos en una red, enviando paquetes ICMP a cada direccion IP.

-sU Escaneo del tipo UDP. Se utiliza para saber que puertos UDP estan a la escucha en un servidor.

-b Ataque del tipo FTP Proxy. El poder utilizar el servicio de FTP de un servidor como proxy, nos da la posibilidad de realizar un escaneo de manera oculta, para poder pasar un firewall que este filtrando determinados puertos.
La sintaxis del uso de este parametro es el siguiente:

-b usuario:clave@servidor:puerto
Hay que tener en cuenta que el servicio de FTP debe ser vulnerable a este tipo de ataque.

Opciones adicionales :

-pO Con esta opcion se realiza el escaneo sin necesidad de realizar el envio de un Ping.
-PT Esta opcion utiliza un Ping TCP para saber si un servidor esta activo, enviando paquetes TCP ACK y no ICMP, si el servidor esta activo responde con un RST.
-PS Esta opcion envia paquetes SYN, los servidores activos responden con un RST.
-PI Esta opcion realiza un PING verdadero, esperando un echo ICMP.
-PB Este tipo de Ping utiliza paquetes ICMP y ACK al mismo tiempo.
-O Con esta opcion es posible determinar el Sistema Operativo de un Host, comparando la huella TCP/IP con un archivo, donde se halla una base de datos con huellas de sistemas operativos conocidos.
-I Si el identd esta corriendo en un servidor, el uso de esta opcion conbinada con sT, para conexion completa de TCP, nos permite conocer con que usuario se esta ejecutando un servicio.
-f Esta opcion permite fragmetar los paquetes de IP enviados, ya sea por los escaneos de tipo SYN, FIN, XMAS, o NULL; con el objetivo de poder evitar en cierta forma los filtros de los firewalls.
-o Esta opcion permite enviar el resultado de un escaneo hacia un archivo.
-p Al realizar un escaneo, los puertos utilizados por defecto son desde el 1 al 1024, incluyendo los que se encuentren en el /etc/services con esta opcion podemos especificar que puertos seran tomados en cuenta durante el escaneo, inclusive podemos especificar rangos.
-F Con esta opcion indicamos que en el escaneo solo se tomen en cuenta los puertos del /etc/services

NMAP, permite utilizar nombres de host o rangos de IP en la especificacion
del objetivo a escanear, es decir podemos hacer lo siguiente:
206.138.105.*
206.138.*
212.200.40.12-14 <-- aqui hara un escaneo desde la 12 a la 14
uni.edu.pe
*.edu.pe
*.*.100.4-5 <-- aqui hara un escaneo de todos los IPs
que terminen entre 100.4 y 100.5

Ejemplos :
# nmap -sS -O identidad.gob.pe
Este ejemplo realiza un escaneo del tipo SYN oculto y adicionalmente
tratara de determinar el Sistema Operativo corriendo en el objetivo
que en este caso es identidad.gob.pe

Tambien puedes ejecutar el NMAP con un entorno grafico, con le sentencia:
xnmap
El cual muestra una ventana con los diversos tipos de Scan.
A continuacion vamos a observar el resultado real del escaneo realizado a
un servidor. Usando la version 2.53.

--------

# nmap -sS -O www.xxxx.com.pe

Starting nmap V. 2.53 by fyodor@insecure.org ( www.insecure.org/nmap/ )
Interesting ports on www.xxxx.com.pe (xxx.xx.xxx.xx):
(The 1487 ports scanned but not shown below are in state: closed)
Port State Service
7/tcp filtered echo
11/tcp filtered systat
19/tcp filtered chargen
21/tcp open ftp
22/tcp filtered ssh
23/tcp open telnet
25/tcp open smtp
67/tcp filtered bootps
68/tcp filtered bootpc
79/tcp open finger
80/tcp open http
98/tcp open linuxconf
109/tcp open pop-2
110/tcp open pop-3
111/tcp filtered sunrpc
113/tcp open auth
119/tcp open nntp
135/tcp filtered loc-srv
136/tcp filtered profile
137/tcp filtered netbios-ns
138/tcp filtered netbios-dgm
139/tcp filtered netbios-ssn
143/tcp open imap2
161/tcp filtered snmp
177/tcp filtered xdmcp
389/tcp filtered ldap
513/tcp filtered login
514/tcp filtered shell
515/tcp open printer
600/tcp filtered ipcserver
635/tcp filtered unknown
1110/tcp filtered nfsd-status
1524/tcp filtered ingreslock
2049/tcp filtered nfs
3306/tcp filtered mysql
5631/tcp filtered pcanywheredata

TCP Sequence Prediction: Class=random positive increments
Difficulty=5037695 (Good luck!)
Remote operating system guess: Linux 2.1.122 - 2.2.14

--------
Como dice el resultado "Good luck!", con un servidor asi, que se podria
hacer ?
Para encontrar alguna forma de penetrar este sistema, empezariamos por
analizar los puertos :
23/tcp open telnet
79/tcp open finger <--- Parece increible!
25/tcp open smtp
515/tcp open printer
21/tcp open ftp

El resto se lo dejo a la imaginacion. Por cierto el administrador fue
informado de la poca seguridad en su servidor.

No hay comentarios: