practica2 1-escaneo de puertosnmap

5

Click here to load reader

Upload: jotapeke

Post on 28-Oct-2015

24 views

Category:

Documents


2 download

TRANSCRIPT

Page 1: Practica2 1-Escaneo de PuertosNMAP

PRÁCTICAS DE SEGURIDAD EN LA INFORMACIÓN

PRÁCTICA 2.1: ESCANEO DE PUERTOS

1

El escaneo de puertos es una técnica usada por hackers y administradores para auditar máquinas y redes con el fin de saber qué puertos están abiertos o cerrados, los servicios que se ofrecen, chequear la existencia de un firewall así como verificar el funcionamiento del mismo. Ni que decir tiene que ésta es una de las técnicas más utilizadas a la hora de penetrar en un sistema y realizar un análisis preliminar. LA HERRAMIENTA NMAP

Nmap es una herramienta para administradores de sistemas y gente interesada en el escaneo de grandes o pequeñas redes para determinar los equipos que se encuentran activos y cuales son sus servicios. En definitiva un escáner de puertos muy potente. El objetivo seria poder determinar si un servidor o máquina está en uso y que servicios ofrece.

USANDO NMAP

Vamos ahora a entrar un poco en la práctica y a ver como se usa básicamente el Nmap. Lo ejecutamos seguido de la IP que nos gustaría escanear.

Bash$ nmap 192.168.3.103 Starting nmap 3.70 ( http://www.insecure.org/nmap/ ) at 2004-10-20 02:13 CEST Interesting ports on 192.168.3.103: (The 1654 ports scanned but not shown below are in state: closed) PORT STATE SERVICE 9/tcp open discard 13/tcp open daytime 22/tcp open ssh 37/tcp open time 74/tcp filtered netrjs-4 80/tcp open http 349/tcp filtered mftp 6000/tcp open X11 Nmap run completed -- 1 IP address (1 host up) scan ned in 2.529 seconds

Como podéis observar la salida del programa tras escanear es bastante simple y se entiende perfectamente. Nos dice que la IP 192.168.3.103, tiene los puertos 9, 13, 22, 37, 80 y 6000 abiertos y al servicio a los cuales pertenecen.

Esto es un escaneo básico, empecemos a introducir opciones y comentar para qué es cada una.

ESCANEANDO RANGO DE PUERTOS

Normalmente no podemos permitirnos un escaneo completo de todos los 65535 puertos TCP y UDP de cada dirección IP de nuestra red, dado que consumiríamos mucho tiempo. Por tanto, nmap incorpora opciones de “PORT SPECIFICATION” que permiten restringir el número de puertos a escanear. ¿Cómo especificamos el rango de puertos que va desde el 1 al 80 para una IP determinada?:

bash$ nmap _____________________________________ Starting nmap 3.70 ( http://www.insecure.org/nmap/ ) at 2007-04-20 02:29 CEST Interesting ports on 172.26.0.3 (The 74 ports scanned but not shown below are in st ate: closed) PORT STATE SERVICE 9/tcp open discard 13/tcp open daytime

Page 2: Practica2 1-Escaneo de PuertosNMAP

PRÁCTICAS DE SEGURIDAD EN LA INFORMACIÓN

PRÁCTICA 2.1: ESCANEO DE PUERTOS

2

22/tcp open ssh 25/tcp open smtp 37/tcp open time 80/tcp open http Nmap run completed -- 1 IP address (1 host up) scan ned in 3.612 seconds

También con esa misma opción podemos escanear una lista concreta de puertos. ¿Cómo especificaríamos el escaneo de los puertos 22, 53, 110 y 143?

bash$ nmap _____________________________________

ESCANEANDO UN RANGO DE IPS PARA UN PUERTO DETERMINADO

Nmap también permite especificar rangos de IP’s para escanear. Si estamos en una red donde nos interesa conocer TODOS los ordenadores que tienen abierto por ejemplo el puerto 139 (usado para el protocolo NetBIOS)… ¿cómo podríamos actuar?

bash# nmap _______________________________________ Starting nmap 3.70 ( http://www.insecure.org/nmap/ ) at 2004-10-20 02:35 CEST Interesting ports on 172.26.0.2: PORT STATE SERVICE 139/tcp filtered netbios-ssn Interesting ports on 172.26.0.9): PORT STATE SERVICE 139/tcp open netbios-ssn Nmap run completed -- 10 IP addresses (2 hosts up) scanned in 4.002 second

La información que obtenemos sería:

El total de ordenadores encendidos: ____________________________________

Cuál de ellos tiene el servicio NetBios abierto: ____________________________

Cuál de ellos tiene el servicio NetBios cerrado: ____________________________

Cuál de ellos tiene el servicio NetBios filtrados: ___________________________

Escaneando y sacando Versiones de los servicios

Además del escaneo simple, nmap puede detectar la versión concreta del servicio que se está ejecutando en una máquina; por ejemplo, la versión de FTP (puerto 110) que se está ejecutando. Esto es útil para luego poder buscar posibles vulnerabilidades. La sección de ayuda “SERVICE/VERSION DETECTION” explica cómo hacerlo. Aplica el escaneo a nuestra máquina víctima:

bash# # nmap ______________________________________ ____ Starting nmap 3.70 ( http://www.insecure.org/nmap/ ) at 2004-10-20 02:44 CEST Interesting ports on 172.26.0.3: (The 1654 ports scanned but not shown below are in state: closed) PORT STATE SERVICE VERSION

Page 3: Practica2 1-Escaneo de PuertosNMAP

PRÁCTICAS DE SEGURIDAD EN LA INFORMACIÓN

PRÁCTICA 2.1: ESCANEO DE PUERTOS

3

9/tcp open discard? 13/tcp open daytime 22/tcp open ssh OpenSSH 3.8.1p1 (protocol 2 .0) 37/tcp open time 80/tcp open http Apache httpd 1.3.31 ((Debia n GNU/Linux)) 6000/tcp open X11 (access denied) Nmap run completed -- 1 IP address (1 host up) scan ned in 103.108 seconds

Es tan útil saber qué se está ejecutando en una maquina como cuánto tiempo hace que actualizan algún tipo de servicio. Como podemos ver en el ejemplo anterior hemos obtenido la versión de OpenSsh y de Apache.

Cómo saber el sistema operativo que esta instalado en un host

En muchas ocasiones, puede ser muy útil conocer cuál es el Sistema Operativo de la máquina que vamos a escanear. Nmap incorpora opciones concretas para detección de sistemas operativos “OS DETECTION”. Comprueba la eficacia de la opción correspondiente:

bash# nmap ___________________________ Starting nmap 3.70 ( http://www.insecure.org/nmap/ ) at 2004-10-20 02:50 CEST Insufficient responses for TCP sequencing (3), OS d etection may be less accurate Interesting ports on 172.26.0.6: (The 1654 ports scanned but not shown below are in state: closed) PORT STATE SERVICE 9/tcp open discard 13/tcp open daytime 22/tcp open ssh 37/tcp open time 80/tcp open http 6000/tcp open X11 Device type: general purpose Running: Linux 2.4.X|2.5.X|2.6.X OS details: Linux 2.4.0 - 2.5.20, Gentoo 1.2 linux (Kernel 2.4.19-gentoo-rc5), Linux 2.4.20, Linux 2.4.20 - 2.4.22 w/grsecurity.org patc h, Linux 2.5.25 - 2.6.3 or Gentoo 1.2 Linux 2.4.19 rc1-rc7) Uptime 0.132 days (since Tue Oct 19 23:41:15 2004) Nmap run completed -- 1 IP address (1 host up) scan ned in 4.572 seconds

En el ejemplo nos informa de que la víctima tiene un núcleo 2.4 y lleva Gentoo instalado, muy útil para ciertas cosas. En un ordenador con Windows, nos saldría un mensaje similar a este:

Device type: general purpose Running: Microsoft Windows 2003/.NET|NT/2K/XP OS details: Microsoft Windows Server 2003, Microsof t Windows 2000 SP3

Éste sería un ordenador con Windows Server 2003 y el Service Pack 3 instalado. Es importante resaltar que Nmap puede fallar y decirnos que se trata de una Gentoo y ser en realidad una Debian, pero no fallan de Windows a Linux o FreeBSD.

Page 4: Practica2 1-Escaneo de PuertosNMAP

PRÁCTICAS DE SEGURIDAD EN LA INFORMACIÓN

PRÁCTICA 2.1: ESCANEO DE PUERTOS

4

TIPOS DE ESCANEO

Algunos de los tipos de escaneo explicados de forma breve, y que podemos encontrar dentro de “SCAN TECHNIQUES” de nmap, son los siguientes (identifica los parámetros correspondientes a cada opción):

• TCP connect: esta es una técnica rápida y simple, pero tiene el inconveniente de que es fácilmente detectable. Se basa en intentar establecer una conexión con el puerto del host remoto mediante llamada a connect(). Si se establece dicha conexión, evidentemente el puerto está abierto. Comando: _______________

• TCP SYN: se trata de un escaneo en el que no se establece una conexión completa, enviamos SYN y en función de la respuesta obtenida por el host, contestamos con RST (en caso de estar abierto) para resetear la conexión, es decir, abortar. Si no se recibe respuesta, el host está desconectado o la conexión a ese puerto está filtrada. Comando: _______________

• Stealth Scan (TCP FIN): se trata de enviar FIN y esperar la respuesta del host víctima de nuestro escaneo FIN stealth (“sigiloso”). Si ignora los paquetes enviados, entonces el puerto está abierto. Los sistemas Microsoft no son vulnerables a este escaneo. Comando: _______________

• Ping Scan: Evidente se basa en el envío de paquetes de ECHO (ping). Se debe usar cuando tu intención sea saber qué máquinas está despiertas. Comando: _______________

• Bounce Attack (vía FTP): se trata de aprovechar la conexión Proxy ftp para escanear a través de un servidor FTP. Esto es así porque podemos usar el comando PORT indicando una dirección IP y un puerto (nuestro objetivo de escaneo) y solicitar una transmisión de datos. Si el puerto está cerrado, se generará un error 425. Comando: _______________

• UDP Scan: este escaneo mostrará los puertos abiertos que usan el protocolo UDP. Es bastante lento, pero funciona bien si la máquina a escanear usa Windows. Comando: _______________

• ACK Scan: muchas veces nos encontramos con un firewall que impide “el correcto flujo de paquetes” (jejeje) desde nuestra máquina al host víctima. Por eso nos interesa saber el tipo de configuración del cortafuegos, es decir, si el tráfico ha sido filtrado o no. Comando: _______________

• Window Scan: parecido al anterior, pero nos dice también qué puertos están abiertos. Comando: _______________

• Null Scan: se trata de otro método de escaneo stealth, en el que enviamos un curioso paquete sin banderas levantadas. Comando: _______________

• Xmas Scan: lo realizamos enviando paquetes TCP anormalmente configurados y todas las flags (banderas) levantados. Comando: _______________

• Idle Scan: se trata de una técnica de escaneo stealth muy potente y eficaz, con la que no tenemos necesidad de enviar ni un solo paquete con nuestra IP, sino que se utilizan hosts zombies. Comando: _______________

Page 5: Practica2 1-Escaneo de PuertosNMAP

PRÁCTICAS DE SEGURIDAD EN LA INFORMACIÓN

PRÁCTICA 2.1: ESCANEO DE PUERTOS

5

USANDO NMAP PARA DESCUBRIMIENTO DE HOSTS

Hoy es un día aburrido y no hay nada mejor que hacer que buscar RealVNC (una aplicación muy popular que sirve de escritorio remoto) en nuestra máquina víctima. Lo primero es identificar el puerto en el que suele funcionar. Usamos google y averiguamos… RealVNC -> Puerto _________

Abrimos una ventana de comandos y escribimos: Nmap –sP –vv –p _________ IP_victima

Pero vamos a empezar desde el principio. A menos que tengamos un objetivo tan claro como el anterior, usaremos el siguiente comando para realizar el “descubrimiento de hosts”: nmap –sP 172.26.1.0/29 (sustituye este rango de I P’s por otro de tu interés)

¿Qué especifica la opción –sP? ________________________________ Si no existe filtrado de firewall, ese comando funcionará bien. Sin embargo, si la víctima tiene un firewall configurado, la opción anterior no será suficiente. Sin embargo, podemos probar a usar el siguiente: nmap –sP –PS 172.26.1.2

¿Qué indicamos con la opción –PS? ________________________________ La opción anterior sigue usando el puerto 80 por defecto para mandar nuestro escaneo, pero para complicarle aún más la cosa al firewall, podemos elegir otro puerto (p.e. 25, que suele pertenecer a servidores de correo SMTP ó 53, que suele pertenecer a servidores de dominio DNS): nmap –sP –PS25 172.26.1.2

Y ricemos el rizo: no sólo cambiaremos el puerto de destino, sino que haremos lo siguiente: nmap –sP –PS25 172.26.1.2 –g 53

¿Qué especifica la opción –g 53? ________________________________ Aunque la mayor parte de los firewalls rechazarán los paquetes ICMP echo como los anteriores, puede que permitan el tráfico de otros paquetes ICMP… como por ejemplo: nmap –sP -PP 172.26.1.4

¿Qué especifica la opción –PP? ________________________________ ¿Y la opción –PM? ________________________________ Usando distintas combinaciones de puertos de origen/destino, tendremos muchas garantías de llegar con éxito a descubrir los hosts que hay tras un firewall.