You are on page 1of 12

Contenido

Descripción de la
Práctica ..........................................................................
...................... 2
Prueba de Concepto (PoC). Práctica de análisis de vulnerabilidades con
NMAP ........... 3
Paso 1: Ejecuta Kali y abre un
terminal ....................................................................... 3
Paso 2: Encuentra los Scripts de
nmap ......................................................................... 3
Paso 3: Encontrando scripts sobre
vulnerabilidades..................................................... 3
La sintaxis CVE-ID Ha
cambiado ..........................................................................
.. 4
Paso 4: Ejecutar el
script ............................................................................
.................. 5
Observa que para ejecutar el script, el argumento es --script
<scriptname> ................ 5
Paso 5: Cómo obtener ayuda de un determinado
script................................................ 7
ESCANEO DE TODAS LAS
VULNERABILIDADES ................................................. 8
ANEXO .............................................................................
............................................. 10
Descripción de la Práctica
En esta práctica veremos cómo utilizar nmap para detección de vulnerabilidades.

1. Lee el documento donde se explica la PoC (Prueba de Concepto) "Práctica


de análisis de vulnerabilidades con NMAP". Si tienes una máquina (real o
virtualizada) con Windows XP puedes probarla. Debes entender los
diferentes pasos que aquí se explican. EN ESTE APARTADO NO HAS DE
ENTREGAR NADA.

2. Siguiendo los pasos del apartado "Escaneo de todas las vulnerabilidades",


haz un chequeo de la máquina Metasploitable2. Genera la salida de dicho
escaneo en un fichero XML. Si ves que el proceso se hace pesado, puedes
elegir analizar sólo algunos puertos (recuerda, en nmap opción –p
<números de puertos separados por comas>

3. Lee el siguiente artículo que habla sobre la vulnerabilidad BlueKeep (CVE-


2019-0708): https://www.cloudcenterandalucia.es/blog/grave-vulnerabilidad-de-
escritorio-remoto-rdp/ Responde a las siguientes preguntas:

a. ¿Sigues pensando que es buena práctica realizar un acceso remoto


abriendo directamente el puerto a internet a través del router?.
b. Aun suponiendo que quieras habilitar el servicio para acceder desde
internet, ¿Qué podrías hacer para asegurar la conexión?. Elige sólo
una
manera de las explicadas en el artículo. Acceso al artículo
c. ¿Qué herramienta usarías para detectar todos los servicios de
escritorio
remoto que hay en tu ciudad?. Pon un ejemplo de su uso con capturas de
los resultados.

4. Basándote en lo aprendido, realiza un escáner de vulnerabilidades al puerto


21 de tu máquina metasploitable y responde a las siguientes preguntas
mostrando capturas de pantalla que justifiquen tus respuestas:
1. ¿Has detectado alguna vulnerabilidad?. ¿Cuál?.
2. ¿Cuál es el CVE que identifica la vulnerabilidad?
3. Busca en mitre la descripción de esa vulnerabilidad y explica qué
permitiría hacer a un atacante.

ENTREGA ESTA PRÁCTICA EN UN DOCUMENTO PDF


Prueba de Concepto (PoC). Práctica de análisis de
vulnerabilidades con NMAP
Nmap además de ser un scanner de puertos y servicios detrás de los mismos, se puede
utilizar como un scanner de vulnerabilidades.

El motor NSE (Nmap Scripting Engine) de Nmap es una herramienta ponderosa que
permite realizar escáneres rápidos de vulnerabilidades y además permite a los
usuarios
crear sus propios scripts.

Estos scripts se pueden usar para:


- Descubrimiento de Red
- Un mejor y sofisticado sistema de detección de S.O.
- Detección de vulnerabilidaes
- Detección de Backdoor
- Explotación de vulnerabilidades

Paso 1: Ejecuta Kali y abre un terminal


Paso 2: Encuentra los Scripts de nmap
kali > locate *.nse

Paso 3: Encontrando scripts sobre vulnerabilidades


Hay tantos scripts y de tantos tipos que se puede hacer pesado el localizar lo que
buscamos.
Si vamos buscando solamente vulnerabilidades podemos localizar ese tipo de scripts:

kali> locate *vuln*.nse

En este caso he remarcado el script smb-check-vulns.nse que detecta si un


objetivo es vulnerable al famoso MS08-067

NOTA:
¿Qué es eso de CVE<NRO>-<NRO>?. Ej: CVE-2013-0156.
CVE son las siglas de “Common Vulnerabilities and Exposures” y en esta URL:
https://cve.mitre.org/ puedes encontrar información sobre cada una.

La sintaxis CVE-ID Ha cambiado


La nueva sintaxis tiene una longitud variable e incluye:

CVE prefijo + Año + Dígitos Arbitrarios

IMPORTANTE: La longitud variable de los dígitos será al menos de 4 dígitos fijos y


si
se hiciese necesario, debido a que haya más vulnerabilidades, se podrán añadir
tantos
dígitos como se necesiten, sin límite.
Si queremos saber que vulnerabilidad es exactamente un dterminado CVE podemos
buscarla en https://cve.mitre.org/find/index.html o en la NVD (National
Vulnerability
Database https://web.nvd.nist.gov/view/vuln/search )

Paso 4: Ejecutar el script


nmap --script <scriptname> <host ip>

Observa que para ejecutar el script, el argumento es --script <scriptname>

kali> nmap --script smb-check-vulns-nse 192.168.1.121


Nos da un error y sugiere que añadamos --script-args=unsafe=1 a nuestro comando.

En este caso, además, he añadido -p445 porque este script se centra en el SMB que
va
por el puerto 445.

kali> nmap --script-args=unsafe=1 --script smb-check-vulns.nse -p445


192.168.1.121

Ahora al ejecutar tenemos muchos más resultados y mejores:

Ahora vemos que nos dice que es vulnerable. En este caso podemos utilizar
Metasploit
y el exploit adecuado para explotarlo.

Ver anexo para más información sobre esta vulnerabilidad.


Paso 5: Cómo obtener ayuda de un determinado script
Hay cientos de scripts y saber que hace cada uno se hace complicado.
Por ejemplo busco en la sección de script de http y encuentro un script llamado:
http-vuln-cve2013-0156.nse
Podemos obtener ayuda de que hace el mismo utilizando las siguientes opciones:

nmap -script-help http-vuln-cve2013-0156.nse

Esto nos mostrará algo así:

Resumiendo, esto nos viene a decir que este script está diseñado para encontrar la
vulnerabilidad CVE2013-0156 en Ruby on Rails.

Ruby on Rails es un framework open-source para diseño web y detrás de el tenemos


millosnes de aplicaciones web ejecutándose, así que es muy probable que existan
miles
de sitios webs vulnerables.
¡Feliz caza!.

Fuente: http://null-byte.wonderhowto.com/how-to/hack-like-pro-using-nmap-scripting-
engine-nse-for-reconnaissance-0158681/
ESCANEO DE TODAS LAS VULNERABILIDADES
El caso anterior mostraba el análisis de una determinada vulnerabilidad en
un
objetivo, pero también es posible analizar si se es vulnerable a alguna de todas
las
vulnerabilidades que es capaz de analizar NMAP

Cuando se descubre una nueva vulnerabilidad, frecuentemente se desea


escanear
la red rápidamente para identificar los sistemas vulnerables antes de que los
chicos
malos lo hagan. Mientras Nmap no es un escaner de vulnerabilidades completo, NSE es
lo suficientemente poderoso para manejar cada verificación de vulnerabilidad
demandada. Muchos scripts de detección de vulnerabilidades están disponibles y se
publicarán más cuando sean escritos.

Se procede a escanear el objetivo de evaluación. La opción “-n” no realiza


una resolución al DNS. La opción “-Pn” trata a todos los hosts como en
funcionamiento. La opción “-p-” define el escaneo de los 65535 puertos TCP, y la
opción --script=vuln define la utilización de todos los Scripts NSE incluidos en la
categoría “vuln”.

# nmap -n -Pn 192.168.0.18 -p- --script=vuln

Culminado el escaneo se presentan los resultados obtenidos. Entre los más


relevantes se
enumeran.

http-frontpage-login:
VULNERABLE:
Frontpage extension anonymous login
Estado: VULNERABLE
Descripción:
Las instalaciones por defecto de versiones antiguas de extensiones frontpage
permiten
logins anónimos los cuales pueden conducir a un compromiso del servidor.

http-slowloris-check:
VULNERABLE:
Slowloris DOS attack
Estado: VULNERABLE
Descripción:
Slowloris intenta mantener abiertas varias conexiones hacia el servidor web
objetivo y
mantenerlas abiertas tanto como sea posible. Esto se realiza abriendo las
conexiones
hacia el servidor web objetivo y enviando peticiones parciales. Haciendo esto se
consumen los recursos del servidor web causando una Negación de Servicio.

rdp-vuln-ms12-020:
VULNERABLE:
MS12-020 Remote Desktop Protocol Denial Of Service Vulnerability
Estado: VULNERABLE
IDs: CVE:CVE-2012-0152
Factor de Riesgo Medium CVSSv2: 4.3 (MEDIUM) (AV:N/AC:M/Au:N/C:N/I:N/A:P)
Descripción:
Una vulnerabilidad en el Protocolo de Escritorio Remoto puede permitir a los
atacantes
remotos causar una negación de servicio.

MS12-020 Remote Desktop Protocol Remote Code Execution Vulnerability


Estado: VULNERABLE
IDs: CVE:CVE-2012-0002
Factor de Riesgo High CVSSv2: 9.3 (HIGH) (AV:N/AC:M/Au:N/C:C/I:C/A:C)
Descripción
Una vulnerabilidad en el Protocolo de Escritorio Remoto puede permitir a los
atacantes
remotos ejecutar código arbitrario sobre el sistema objetivo.

Nmap también tiene la capacidad, a través de NSE, de explotar vulnerabilidades en


lugar de solo encontrarlas. Esta capacidad de añadir scripts puede ser muy valiosa
para
algunas personas, especialmente aquellas haciendo pruebas de penetración. No se
planea el convertir a Nmap en un framework de explotación como Metasploit.

ANEXO
Gusano Conficker

El script smb-check-vulns.nse, que pasamos a utilizar como segundo ejemplo de la


utilización del NSE, comprueba si el RPC de un sistema Windows es vulnerable
(descrita en el boletín MS08-067). Esta vulnerabilidad no sólo permite realizar un
DoS
a regsvc, sino que además es utilizada por Conficker para ejecutar código, lo que
vamos
a intentar prevenir detectando si es o no vulnerable. Al respecto, mucho ojo al
utilizarlo
porque podría tumbar el servicio en caso de ser vulnerable.

La presencia o no de esta vulnerabilidad la comprobaremos así:


$ nmap --script-trace -sC smb-check-vulns -p445 pruebas
$ sudo nmap -sU -sS --script smb-check-vulns.nse -p U:137,T:139 pruebas

Si por el contrario, hemos sufrido una intrusión o sospechamos que podemos tener
algunos sistemas infectados podemos utilizar el script p2p-conficker.nse, que
examina
las comunicaciones P2P y detecta en función de las mismas si la máquina está
infectada
con Conficker.C (o superior).

$ nmap --script-trace -sC p2p-conficker pruebas

La opción –script-trace que como han visto utilizamos en este último caso es
opcional,
ya que sólo sirve para obtener más información. No obstante, aporta datos que nos
pueden ser útiles y resulta muy interesante poder ver que es todo lo que hace.

Host script results:

|_ nbstat: NetBIOS name: PRUEBAS, NetBIOS user: , NetBIOS MAC:


xx:xx:xx:xx:xx:xx
| smb-os-discovery: Windows Server 2003 R2 3790 Service Pack 2
| LAN Manager: Windows Server 2003 R2 5.2
| Name: TESTLAB\PRUEBAS
|_ System time: 2009-06-04 08:38:02 UTC
| p2p-conficker: Checking for Conficker.C or higher…
| | Check 1 (port 55475/tcp): CLEAN (Couldn’t connect)
| | Check 2 (port 13321/tcp): CLEAN (Couldn’t connect)
| | Check 3 (port 40191/udp): CLEAN (Failed to receive data)
| | Check 4 (port 56590/udp): CLEAN (Failed to receive data)
|_ |_ 0/4 checks: Host is CLEAN or ports are blocked

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

Si obtenemos la salida anterior podemos estar tranquilos, si no es así, significará


que
tenemos al bicho en casa :)

You might also like