Sie sind auf Seite 1von 10

Caso práctico -1- Exploración de puertos (Ubuntu)

1. Introducción

La exploración de puertos suele ser utilizada bajo dos puntos de vista diferentes:

1.1. Como forma de conocer el nivel de seguridad de la configuración de los


servicios que se ofrecen. Y...

1.2. Como una de las primeras etapas que un posible atacante lleva a cabo,
dentro del plan de ataque, para investigar o enumerar qué servicios tiene la
víctima activados.

Existen muchas herramientas para hacer exploración de puertos, pero nosotros


utilizaremos las más conocidas en entornos académicos: nmap para la línea de
orden (Caso práctico -1-) y Zenmap en entorno gráfico (Caso práctico -2-).

Comenzamos con nmap para conocer las diferentes opciones y así poder luego
interpretar los comandos generados por Zenmap al hacer la selección de
acciones que ofrece la herramienta. Por otro lado, también es posible que en un
entorno de administración se disponga únicamente de la consola, en cuyo caso
es indispensable conocer bien los parámetros utilizados desde la orden nmap.

En la web http://www.adslzone.net/puertos.html tienes disponible información


sobre listado de puertos referidos a un router ADSL.

2. Nmap

Nmap, cuyo nombre significa mapeador de redes, es software libre y puede


redistribuirse y/o modificarse bajo los términos de la Licencia Publica General
GNU.

La web oficial es http://nmap.org/ de la que puede bajarse la herramienta. En


concreto Ubuntu la incluye en su Centro de Software y en la web hay también
versión disponible para Windows y otros sistemas operativos.

En http://nmap.org/man/es/ existe un manual oficial que detalla su


funcionamiento.

En la carpeta de Guías de la UD1 hay disponible un manual de nmap llamado


Guía_Avanzada_Nmap.pdf.

Nmap ha sido diseñado para permitir a administradores de sistemas y usuarios


curiosos en general, el escaneo de grandes redes y así determinar qué
servidores se encuentran activos y qué servicios ofrecen.

Nmap debería ejecutarse como usuario root en sistemas Linux/Unix siempre que
sea posible. Con algunas opciones es imprescindible ejecutar nmap como root.
Nosotros en el caso práctico ejecutaremos siempre nmap como root (prompt #).
Para adquirir privilegios de root ejecutar en la terminal:
$ sudo su

Su funcionamiento se basa en el envío de paquetes IP en formato raw (crudo),


es decir paquetes que no han sufrido ningún tipo de modificación, y por lo tanto
son originales sea cual sea el protocolo utilizado.

¿Qué permite nmap?

 Descubrir e identificar equipos en la red.


 Identificar puertos abiertos en estos equipos.
 Conocer los servicios concretos que están ofreciendo estos equipos.
 El sistema operativo que tienen instalado, incluida la versión.
 Conocer si se está utilizando cortafuegos.
 Conocer algunas características del hardware de red de los equipos
detectados.

Es compatible con un gran número de técnicas de escaneo como: UDP, TCP


connect(), TCP SYN (half open), ICMP (ping sweep), FIN, ACK sweep, Xmas
Tree y Null scan.

De todas estás técnicas incluimos aquellas de las cuales se proporcionan


ejemplos concretos de uso.

La salida que genera nmap es un listado de hosts/redes analizadas, con


información específica para cada uno ellos dependiendo de las opciones
utilizadas. De ellas la más importante es la tabla que muestra el número de
puertos, el nombre del servicio asociado y su estado.

El estado de un puerto puede ser:

 open (abierto): la máquina destino se encuentra esperando conexiones o


paquetes en ese puerto.
 filtered (filtrado): un cortafuegos, filtro o algún obstáculo en la red está
bloqueando el acceso a ese puerto y nmap no puede saber si está abierto
o cerrado.
 closed (cerrado): son puertos que no tienen ninguna aplicación
escuchando en ellos, aunque podrían abrirse en cualquier momento.
 unfiltered (no filtrado): son puertos que responden a la exploración de
nmap, pero para ellos nmap no puede determinar si se están abiertos o
cerrados.

Nmap cuando no puede determinar en cuál de los estados está un puerto,


informa indicando una combinación de estados, como open | filtered y closed |
filtered.

La tabla de puertos también puede informar sobre la versión de la aplicación si


se le pide. Y mucha más información que dependerá de las opciones utilizadas.
Además de la tabla de puertos, con nmap se puede obtener información sobre
los hosts/redes como son el nombre de DNS según la resolución inversa de la
IP, un listado de sistemas operativos posibles, tipos de dispositivo y direcciones
MAC.

A lo largo de la explicación de los ejemplos de uso se hace referencia a


conceptos relacionados con la seguridad. Algunos de ellos se describen a
continuación:

 Decoy: significa señuelo y es utilizado para esconder la IP de la máquina


origen que está realizando la exploración.
 Fingerprinting: significa identificación por huella y se utiliza para detectar
el sistema operativo de las máquinas que se están explorando.
 Scan: se utiliza en el sentido de sondeo, análisis o exploración, no de
escaneo de documentos.
 Spoof: significa falsificar y va relacionado con algún tipo de servicio o
protocolo que se quiere falsear.

3. Sintaxis de la herramienta

nmap [Tipos(s)de análisis] [Opciones] <servidor o red #1...


[#N]>

En general para obtener ayuda ejecutar:

$ nmap -h

La red que se utilizará para algunos de los ejemplos será 192.168.1.0/24. En


otros se utilizarán IPs de dominios públicos.

NOTA

 El alumno deberá adaptar las IP's que aparecen en los ejemplos a las IP's
de sus interfaces de red.
 En el caso de ser IPs públicas utilizar la orden host para confirmar que los
dominios visitados mantienen esas IP.

4. Tipos de exploración soportados

4.1 Ejecución simple

Ejecutamos nmap sobre una IP para conocer los puertos activos.

# nmap 192.168.1.2

Starting Nmap 6.40 ( http://nmap.org ) at 2015-06-03 19:57 CEST


Nmap scan report for 192.168.1.2
Host is up (0.000010s latency).
Not shown: 998 closed ports
PORT STATE SERVICE
80/tcp open http
3128/tcp open squid-http

Nmap done: 1 IP address (1 host up) scanned in 2.46 seconds

Si queremos conocer qué tipo de sistema operativo se está ejecutando en el host


explorado añadimos la opción -O.

Dejamos este ejemplo para que se vea la necesidad en este caso de ejecutar
con permisos de root. En adelante todos los ejemplos de uso se realizarán con
esos permisos.

# nmap -O 192.168

Starting Nmap 6.40 ( http://nmap.org ) at 2015-06-03 19:59


Nmap scan report for 192.168
Host is up (0.000041s laten
Not shown: 998 closed p
PORT STATE SER
80/tcp open
3128/tcp open squid-
No exact OS matches for host (If you know what OS is running on it,
http://nmap.org/submit/
TCP/IP fingerpr
OS:SCAN(V=6.40%E=4%D=6/3%OT=80%CT=1%CU=43420%PV=Y%DS=0%DC=L%G=Y%TM=556F
OS:%P=x86_64-pc-linux-gnu)SEQ(SP=107%GCD=1%ISR=108%TI=Z%CI=I%TS=8)SEQ(S
OS:7%GCD=1%ISR=108%TI=Z%TS=8)OPS(O1=MFFD7ST11NW7%O2=MFFD7ST11NW7%O3=MFF
OS:T11NW7%O4=MFFD7ST11NW7%O5=MFFD7ST11NW7%O6=MFFD7ST11)WIN(W1=AAAA%W2=A
OS:W3=AAAA%W4=AAAA%W5=AAAA%W6=AAAA)ECN(R=Y%DF=Y%T=40%W=AAAA%O=MFFD7NNSN
OS:C=Y%Q=)T1(R=Y%DF=Y%T=40%S=O%A=S+%F=AS%RD=0%Q=)T2(R=N)T3(R=N)T4(R=Y%D
OS:T=40%W=0%S=A%A=Z%F=R%O=%RD=0%Q=)T5(R=Y%DF=Y%T=40%W=0%S=Z%A=S+%F=AR%O
OS:=0%Q=)T6(R=Y%DF=Y%T=40%W=0%S=A%A=Z%F=R%O=%RD=0%Q=)T7(R=Y%DF=Y%T=40%W
OS:=Z%A=S+%F=AR%O=%RD=0%Q=)U1(R=Y%DF=N%T=40%IPL=164%UN=0%RIPL=G%RID=G%R
OS:=G%RUCK=G%RUD=G)IE(R=Y%DFI=N%T=40%CD=S)

Network Distance: 0

OS detection performed. Please report any incorrect results


http://nmap.org/submit/
Nmap done: 1 IP address (1 host up) scanned in 18.93 seconds

Toda esta salida es la huella TCP/IP (TCP/IP fingerprint) que tiene cada Sistema
Operativo en particular. Y, como se puede observar, nmap muestra esta
información porque no consigue identificar con exactitud qué Sistema Operativo
se está ejecutando en el host explorado.

4.2 Identificar hosts activos en la red: Ping scan (-sP)

Si se quiere conocer los hosts activos en la red, 192.168.1.0/24 utilizamos un


Ping Scan. En realidad lo que se envía son peticiones de respuesta ICMP a cada
una de las IPs dadas. Si un host contesta significa que está activo.

Puede ocurrir que el host destino sea un servidor que tenga bloqueada la
recepción de paquetes ICMP, en cuyo caso no es posible explorarlo. Es decir,
nmap sólo explora aquellos servidores de los que obtiene respuesta.

Ejemplo:

# nmap -sP 192.168.0.1-255

La orden anterior intentaría scanear todos los hosts pertenecientes a la red


192.168.1.0, es decir desde el 19.168.1.1 al 192.168.1.255.

4.3 Sondeo básico TCP/UDP

Las opciones a utilizar son: -sT / -sU escaneo TCP/UDP connect()

Intenta establecer una conexión con todos los puertos posibles de la máquina.

 Si el puerto está a la escucha, la conexión tendrá éxito.


 Sino, el puerto es inalcanzable.

Es una exploración muy fácil de detectar ya que proporciona mucha


información de la conexión, incluidos mensaje de error.

Ejemplos:

En primer lugar averiguamos cual es la IP de, por ejemplo, el dominio


www.wlmundo.es:

#host www.wlmundo.es
www.wlmundo.es is an alias for wlmundo.es.
wlmundo.es has address 92.43.17.145
wlmundo.es mail is handled by 15 mx-2.wlmundo.es.
wlmundo.es mail is handled by 5 mx-1.wlmundo.es.
wlmundo.es mail is handled by 10 wlmundo.es.

# nmap -sT 92.43.17.145

Starting Nmap 6.40 ( http://nmap.org ) at 2015-06-03 20:06 CEST


Nmap scan report for hl205.redcoruna.com (92.43.17.145)
Host is up (0.022s latency).
Not shown: 986 filtered ports
PORT STATE SERVICE
21/tcp open ftp
22/tcp closed ssh
25/tcp open smtp
26/tcp open rsftp
53/tcp closed domain
80/tcp open http
110/tcp open pop3
143/tcp open imap
443/tcp open https
587/tcp open submission
993/tcp open imaps
995/tcp open pop3s
8888/tcp closed sun-answerbook
11111/tcp closed vce

Nmap done: 1 IP address (1 host up) scanned in 7.12 seconds

En el caso de utilizar el sondeo básico UDP (-sU) para la IP del dominio


www.marca.es nos devuelve:

# nmap -sU 193.110.128.199

Starting Nmap 6.40 ( http://nmap.org ) at 2015-06-03 20:14 CEST


Note: Host seems down. If it is really up, but blocking our ping
probes, try -Pn
Nmap done: 1 IP address (0 hosts up) scanned in 3.06 seconds

Observar que nos dice que 'parece' que el sistema parado, pero que realmente
esta "up" y bloqueando los pings. Si se quiere eliminar el envio de pings hay que
utilizar a opción -P0.

4.4 Sondeo TCP SYN

La opción a utilizar es -sS.

También se llama "half open" porque no abre una conexión TCP completa. El
procedimiento consiste en abrir una conexión real enviando un paquete SYN y
se espera a que llegue una respuesta ACK (puerto escuchando) para enseguida
enviar un RST y cortar la conexión.

Se llama sondeo silencioso. De esta forma hay menos probabilidades de que


este sondeo se haya registrado en las máquinas destino y se necesitan
privilegios de root para hacerlo.
Utilizamos la IP del dominio www.facebook.com.

# nmap -sS 31.13.83.8

Starting Nmap 6.40 ( http://nmap.org ) at 2015-06-03 20:28 CEST


Nmap scan report for edge-star-shv-01-mad1.facebook.com
(31.13.83.8)
Host is up (0.019s latency).
Not shown: 997 filtered ports
PORT STATE SERVICE
80/tcp open http
443/tcp open https
843/tcp open unknown

Nmap done: 1 IP address (1 host up) scanned in 19.33 seconds

5. Guardar los resultados de la exploración

Podemos guardar los resultados de una exploración en archivos con varios


formatos como txt, XML, etc. Para ello utilizamos la opción -oN indicando a
continuación el nombre del archivo.

En el ejemplo anterior, podemos hacer el scaneo silencioso (-sS), intentar


conocer el sistema operativo (-O) y guardamos los resultados en el archivo
resultado.txt (-oN):

# nmap -sS -O 31.13.83.8 -oN resultado.txt

Comprobamos que se genera un archivo con el mismo contenido mostrado en


pantalla.

Si lo que queremos es que no salga nada por pantalla, simplemente redirigimos


la salida de la orden al archivo:

# nmap -sS -O 31.13.83.8 > resultado.txt

6. Ejemplos de utilización de nmap

6.1 Sondeo silencioso a toda una red con detección del sistema operativo

# nmap -sS -O 192.168.1.0/24


Ejecuta una exploración SYN oculto (-sS) contra cada una de las máquinas
activas de las 255 maquinas de la red de clase "C" 192.168.1.0 e intenta
determinar el sistema operativo (-O) usado en cada una de las máquinas
activas.

6.2 Sondeo silencioso al host 74.125.230.216 con detección de ciertos


puertos (-p) y enmascarando el origen de la exploración (-D).

# nmap -p 25,53 -sS -P0 -D 1.2.3.4,5.6.7.8 74.125.230.216

Starting Nmap 6.40 ( http://nmap.org ) at 2015-06-03 20:33 CEST


Nmap scan report for par08s09-in-f24.1e100.net (74.125.230.216)
Host is up.
PORT STATE SERVICE
25/tcp filtered smtp
53/tcp filtered domain

Nmap done: 1 IP address (1 host up) scanned in 3.12 seconds

Ejecuta una exploración silenciosa (-sS) al host 74.125.230.216 de los puertos


25 (SMTP) y 53 (DNS) sin enviar pings (-P0) y enmascarando el origen de la
exploración (-D) detrás de las IPs 1.2.3.4 y 5.6.7.8.

La opción -D intenta engañar al host explorado haciéndole creer que los


sondeos se están haciendo desde otros hosts que se indican por su IP detrás
de -D.

La opción -P0 evita que nmap envíe mensajes ICMP (pings) para comprobar si
la maquina está activa.

6.3 Sondeo TCP al puerto 80 de la máquina local , sin envío de pings y


que muestre mucha información.

# nmap -p 80 -sT -P0 -v 127.0.0.1

Como vemos la exploración con la opción -v (verbose) vuelca más información


del proceso.

6.4 Listar máquinas en una red tipo C con un puerto especifico abierto
(80)

# nmap -p 80 -sT 192.168.1.0/24 |grep open


7. Entorno de pruebas

Nmap pone a disposición de los usuarios un dominio de pruebas llamado


scanme.nmap.org. Pero sólo para explorar con nmap, no para hacer otro tipo
de pruebas como ataques de denegación de servicio o pruebas con exploits.

Hay que tener en cuenta en este caso que, si se lanzan múltiples exploraciones
simultáneamente, se puede colapsar el servidor y nmap nos dirá: "Failed to
resolve given hostname/IP: scanme.nmap.org".

En primer lugar ejecutamos el comando host para conocer la IP del dominio


scanme.nmap.org y luego realizamos el escaneo. Puede tardar varios
minutos. Observar la cantidad de kerneles linux detectados.

# host scanme.nmap.or
scanme.nmap.org has address 45.33.32.15
scanme.nmap.org has IPv6 address 2600:3c01::f03c:91ff:fe18:bb2f

# nmap -sS -O 45.33.32.15

Starting Nmap 6.40 ( http://nmap.org ) at 2015-06-03 20:44 CES


Nmap scan report for li982-156.members.linode.com (45.33.32.156
Host is up (0.18s latency)
Not shown: 993 closed port
PORT STATE SERVIC
22/tcp open ss
80/tcp open htt
135/tcp filtered msrp
139/tcp filtered netbios-ss
445/tcp filtered microsoft-d
9929/tcp open nping-ech
31337/tcp open Elit
Device type: general purpose|firewall|terminal|WA
Running (JUST GUESSING): Linux 3.X|2.6.X|2.4.X (92%), IPFire Linux 2.6.
(88%), IGEL Linux 2.6.X (85%
OS CPE: cpe:/o:linux:linux_kernel:3 cpe:/o:linux:linux_kernel:2.
cpe:/o:ipfire:linux:2.6.32 cpe:/o:igel:linux_kernel:2.
cpe:/o:linux:linux_kernel:2.4
Aggressive OS guesses: Linux 3.2 - 3.6 (92%), Linux 2.6.32 - 2.6.39 (90%)
Linux 3.5 (88%), Linux 2.6.32 (88%), IPFire firewall 2.11 (Linux 2.6.32
(88%), Linux 2.6.32 - 3.0 (88%), Linux 2.6.15 - 2.6.26 (likely embedded
(86%), Linux 2.6.32 - 2.6.33 (86%), Linux 2.6.32 - 2.6.35 (86%), Linu
2.6.18 (86%
No exact OS matches for host (test conditions non-ideal)
Network Distance: 15 hop

OS detection performed. Please report any incorrect results a


http://nmap.org/submit/
Nmap done: 1 IP address (1 host up) scanned in 295.34 seconds
Esta opción sondea de forma silenciosa todos los puertos TCP reservados en el
servidor scanme.nmap.org con detección del sistema operativo.

Tarea:

1. Ejecuta las siguientes órdenes indicando en cada caso qué acción


está realizando. Adjunta para cada una de ellas una captura con la
salida obtenida y explica lo que hace dicha orden.

a. # nmap localhost
b. # nmap -v www.google.com
c. # namp -sS -O tu_IP
d. # nmap -sT -p 22,110,143 -D 8.8.8.8 tu_IP

2. Ejecuta la orden siguiente en una terminal y guarda el resultado:

# nmap localhost

Si no se dispone de un servidor web Apache en el equipo, instalar (sin tocar nada


de configuración) Apache desde el Centro de Software de Ubuntu y comprobar
que, al instalar, el servicio está ejecutándose.

Una vez hecho, comprobar de nuevo que hace la siguiente instrucción:

# nmap localhost

Haz una captura que muestre la salida antes y después de la instalación de


apache. ¿Hay alguna diferencia? Explica.

3. Investiga qué hace la siguiente orden:

# nmap -sT -P0 -v -p 80 127.0.0.1

Haz una captura que muestre la salida generada. Junto a la captura añade la
explicación de la orden.

4. Averigua los puertos del 1 al 500 que tiene abiertos el dominio


www.boe.es con detección del sistema operativo y utilizando como
señuelo la IP 8.8.8.8. (Es posible que tarde unos minutos).

Todas las capturas deben ser incluidas en el documento global de la


práctica de la unidad y dentro del caso práctico correspondiente, junto
con las explicaciones que procedan para que el ejercicio quede
completamente explicado.

Das könnte Ihnen auch gefallen