Analytics

miércoles, 4 de diciembre de 2019

Cómo combinar Nessus con Metasploit

Empezaremos hablando de Nessus, desde su instalación, así como los distintos tipos de escaneos y la manera de combinarlo con Metasploit.

¿Qué es Nessus?
Es un programa, que escanea vulnerabilidades de equipos, dispositivos y otros componentes en diferentes sistemas operativos.
Se puede utilizar mediante comandos o interfaz gráfica. En este caso nos centraremos en esta última.

Tipos de versiones
  • La Essentials 
  • La Profesional
Os dejo una captura para que veáis las diferencias:


(En este caso haremos la presentación con la versión Professional que tiene más opciones para que se puedan ver todas)

¿Cómo se instala?
Una vez que hemos seleccionado la versión adecuada según nuestro sistema operativo descargaremos el software desde la siguiente página:
https://www.tenable.com/downloads/nessus

Para este ejemplo utilizaremos la última versión de la distribución de Kali Linux:
https://www.kali.org/downloads/

Una vez descargado el .deb procedemos a instalarlo con el siguiente comando: 
dpkg -i yelnessusqueoshayaisdescargado.deb


Ahora, como nos indica la captura lo arrancamos con el comando /etc/init.d/nessusd start


Luego tendremos que ir al navegador y escribir la siguiente dirección: https://127.0.0.1:8834

La primera vez que arranquemos el programa, nos solicitará la creación de un usuario y una contraseña o, en su defecto, una cuenta de correo para realizar un login de alguna manera (el típico login de registro) para activar la versión que hayamos escogido.

Puede que tarde un poco por la carga de todos los plugins.

Una vez hecho accedemos a:
https://127.0.0.1:8834


Y nos logamos con nuestras credenciales.

Antes de empezar, si pinchamos en cualquier plantilla (que no sea host Discovery): podemos acceder a sus opciones y una de ellas, importante, es el apartado Discovery (Descubrimiento) que consta de 3 opciones que las podemos ver en el apartado de “Scan Type”.


Port Scan (common ports)
Le indica a Nessus que escanee aproximadamente 4,790 puertos de uso común. La lista de puertos se puede encontrar en el archivo nessus-services.

Port Scan (All ports)
Le indica a Nessus que escanee los 65.536 puertos, incluido el puerto 0.

Custom (personalizado)
Aquí podemos escribir un rango personalizado de puertos utilizando una lista delimitada por comas de puertos o rangos de puertos. Por ejemplo, 21,23,25,80,110 o rangos más largos separados por guiones 1-1024,8080,9000-9200. Si  se desea escanear todos los puertos, excepto el puerto 0, se debe escribir 1-65535.  Para esta opción seleccionamos Custom y en el apartado Port Scanning cambiamos el valor de default por 1-65535.

Si por ejemplo queremos escanear TCP y UDP se puede especificar un rango dividido específico para cada protocolo.

Por ejemplo, para TCP y UDP en la misma política, debe escribir T:1-1000,U:100-300. Con esto escanearemos por un lado TCP que lo hemos indicado con la T y los mil primeros puertos y con la U (udp) del puerto 100 al 300.

Una vez dicho esto, el primer paso es configurar los escaneos y para ello le damos a New Scan donde veremos todas las políticas que podemos aplicar para realizar nuestro escaneo:



El primero es Host Discovery: esta opción hace ping al host para ver si responde, podéis ver más información en https://docs.tenable.com/nessus/Content/DiscoverySettings.htm#HostDiscovery

* Tened en cuenta que el Firewall del host local o el Cortafuegos de la red podría detener el protocolo ICMP.

Los siguientes tipos de escaneo son:

  • Basic Network Scan:
    • Realiza un análisis completo del sistema.
  • Advanced Scan:
    • La configuración de escaneo avanzado proporciona un mayor control sobre la eficiencia del escaneo y las operaciones de un escaneo, así como la capacidad de habilitar la depuración de complementos. La plantilla avanzada nos permite editar todas las configuraciones. 
  • Advanced Dynamic Scan:
    • Con la plantilla Análisis dinámico avanzado, puede crear un análisis o una política con filtros dinámicos de complementos en lugar de seleccionar manualmente familias de complementos o complementos individuales.
  • Malware Scan:
    • Analiza en busca de malware en sistemas Windows y Unix.
  • A Mobile Device Scan:
    • Evalúa dispositivos móviles a través de Microsoft Exchange o un MDM.
  • Web Application Tests:
    • Analiza vulnerabilidades web.
  • Credentialed Patch Audit:
    • Auditoría de parches acreditados. Una vez seleccionado el escaneo, ir a Credenciales y en hacer clic en la parte de Windows SSH o SNMP añadir el usuario administrador o con el que se quieran evaluar el equipo y la contraseña correspondiente (SSH probablemente se usará si está probando los niveles de parche en un sistema ).
  • Badlock Detection: 
    • Realiza controles remotos y locales para CVE-2016-2118 y CVE-2016-0128.
  • Bash Shellshock Detection:
    • Realiza controles remotos y locales para CVE-2014-6271 y CVE-2014-7169.
  • DROWN Detection:
    • Performs remote checks for CVE-2016-0800.
  • Intel AMT Security Bypass:
    • Performs remote and local checks for CVE-2017-5689.
  • Shadow Brokers Scan:
    • Analiza las vulnerabilidades reveladas en las filtraciones de Shadow Brokers.
  • Spectre and Meltdown:
    • Realiza controles remotos y locales para CVE-2017-5753, CVE-2017-5715 y CVE-2017-5754.
  • WannaCry Ransomware:
    • Busca el ransomware WannaCry.
  • MDM Config Audit: (no tenemos acceso)
    • Audita la configuración de los administradores de dispositivos móviles.
  • Offline Config Audit:
    • Audita la configuración de dispositivos de red.
  • PCI Quarterly External Scan:
    • Realiza exploraciones externas trimestrales según lo requiera PCI.
  • Policy Compliance Auditing:
    • Audita las configuraciones del sistema, es muy similar al Credentialed Patch Audit
  • SCAP and OVAL Auditing:
    • Auditoría de sistemas utilizando definiciones SCAP y OVAL.

      La auditoría SCAP y OVAL es el proceso de validación de la configuración segura de tecnologías que utilizan tecnologías compatibles con SCAP que interpretan las definiciones OVAL apropiadas.

      OVAL es parte de una familia de lenguajes y protocolos, y esta familia es SCAP, el "Protocolo de automatización de contenido de seguridad".
También podemos programar escaneos:

New Scan, Seleccionamos la plantilla que queramos utilizar > luego vamos a Schedule > En Enabled lo ponemos en On > posteriormente seleccionamos que día y a qué hora queremos que se ejecute el escaneo.


Import desde Metasploit
Bueno, una vez vistas las plantillas de una manera general, vamos a ver cómo podemos utilizar los escaneos realizados con Nessus y exportarlos a Metasploit para poder explotar esas vulnerabilidades.

¿Qué es Metasploit?
Es una herramienta de código abierto, la cual cuenta con muchísimos exploits para la realizar la explotación de vulnerabilidades en una máquina remota.

El objetivo es para aprovechar el escaneo del Nessus para poder explotar las vulnerabilidades desde Metasploit.

Para importar el archivo .nessus a Metasploit vamos a realizar los siguientes pasos:

Descargamos el archivo .nessus, para ello dentro de Nessus seleccionamos algún escaneo que hayamos realizado, y en la parte derecha hacemos clic en “Export” y pulsamos Nessus.

Una vez descargado el archivo .nessus, el siguiente paso es arrancar el postgresql (sistema gestor de BBDD)
root@kali:~# service postgresql start
root@kali:~# service postgresql status



A continuación, iniciamos Metasploit: (msfconsole) 


Y ahora vamos a conectar la base de datos para poder importar nuestro archivo .nessus a Metasploit.

La herramienta msfdb nos permite administrar la base de datos Metasploit Framework y los componentes del servicio web juntos o de forma independiente.

Arrancamos el componente:
 

Lo iniciamos

Seguidamente nos conectamos con la BBDD

Vemos que está bien conectada

Importamos el archivo .nessus


Una vez importado nuestro escaneo con Nessus vamos a ver qué host y servicios tenemos abiertos, para ello introducimos el comando hosts:



Ahora veamos los puertos y servicios que hay abiertos:

msf5 > services 192.168.0.11 (Si tenemos varias IPs es tan solo cambiar el número de IP para ver sus puertos y servicios abiertos).



Ahora para comprobar las vulnerabilidades que tenemos vamos a ejecutar el comando "vulns".
Este comando nos ayudará a enumerar las vulnerabilidades sobre las que Nessus nos informó y registró en su archivo de resultados. msf5 > help vulns (ayuda del comando vulns).


Para ver las vulnerabilidades del host que ha escaneado en el puerto 139, utilizaremos el comando:
msf5 > vulns -p 139 (vulnerabilidades en el puerto 139)



Podríamos también buscar por host o host y puerto (host y todas las vulns) para ello usaremos el comando:  msf5 > vulns 192.168.0.11 (para ver todas las vulnerabilidades del host)



En las posibles referencias NSS-XXXX, es posible que aparezca también al lado su CVE, lo que nos ayudaría posteriormente con su explotación (en este caso en concreto no hay). En caso de tener el CVE sería sencillo, muestro un pequeño resumen de cómo se podría continuar realizando la explotación.

Ejemplo con el EternalBlue:
msf5 > search cve-2017-0144 (buscando por CVE)



Una vez hecho esto, seleccionamos el el exploit a usar:



con el comando options, podremos ver las opciones que tenemos que indicar:


Rellenaríamos los datos correspondientes:

Set RHOSTS IP (IP victima)


Set payload windows/x64/meterpreter/reverse_tcp (poner el payload correspondiente a la arquitectura que sea el SO de la víctima).



(en caso de que os pida el LHOST, es vuestra IP, desde donde vais a realizar el ataque).

Si todo hay ido bien tendríamos una Shell de la víctima afectada.

Conclusiones, Recomendaciones, dudas..

Bueno como habéis podido ver, utilizar un escaneo de Nessus y combinarlo con una gran herramienta como es Metasploit puede ser muy útil a la hora de agilizar nuestros ataques, auditorías o pruebas de Pentesting, ya que nos facilita y automatiza bastante la tarea de encontrar y explotar vulnerabilidades.

El análisis previo de Nessus, nos permite tener una mayor visión general sobre las vulnerabilidades que éste haya podido obtener, así como puertos abiertos, SO, servicios, etc.. En definitiva, la recolección de datos que es primordial en cada auditoria o test de intrusión. Y con la ayuda de Metasploit, podemos realizar nuestra explotación de vulnerabilidades más cómodamente, ya que importando y teniendo todos esos datos y resultandos más a mano será mucho más fácil y organizado realizar la posterior explotación.

Dudas
Nessus no encuentra vulnerabilidades conocidas:
Actualiza siempre los plugins a la última versión.

Metasploit no se encuentran los exploits:
Actualiza Metasploit con el comando: msfupdate. En caso de que no se actualice: (como en este caso).



Actualiza el sistema directamente con el comando: # apt update && apt-upgrade -y ya que en las nuevas versiones de Kali Metasploit está integrado al sistema operativo.


 Actualizamos/Instalamos los paquetes con el comando:
apt dist-upgrade


Y finalmente:
apt install metasploit-framework

Aquí nos indica que ya está actualizado a su versión más reciente:

Versión:



Autor: Héctor Berrocal - CCNA, CEH, ITILF, MCP
Dtpo. Auditoría