Encontrando vulnerabilidades con Nessus.

Nessus y su superioridad ante los demás escáneres automatizados.

El escaneo e identificación de vulnerabilidades en nuestros objetivos puede llegar a convertirse en una tarea bastante tediosa, sin embargo es parte importante del proceso de pentesting, habrá veces en las que utilicemos herramientas que harán un proceso basico de identificación de vulnerabilidades y fallos de seguridad y obtengamos los resultados adecuados, pero habrá otras que no, en donde estas vulnerabilidades pasarán desapercibidas ante el proceso de identificación,  es por esto que múltiples plataformas han sido desarrolladas para proporcionar una evaluación adecuada de las vulnerabilidades presentes. Entre las que más destacan se encuentra Nessus.

Nessus es la plataforma por excelencia y la más confiada por analistas y auditores de seguridad para hacer uso de escáneres, asistentes de configuración de las políticas en los escaneos, configurar rutinas en estos, elaboración de reportes en múltiples formatos y extensiones, envío de resultados por e-mail, hosting en la nube, escaneos vía remota desde la nube, etc.  Además de que  en sus versiones comerciales ofrece un soporte a  la mayoría de las tecnologías, incluyendo bases de datos, teléfonos, servidores web, sistemas operativos y demás.

Desarrollada por la empresa “Tenable Network Security” Nessus es una herramienta open-source disponible para Windows, Linux y Mac, (en versión Home), la herramienta nos permite identificar potenciales fallos de seguridad que la mayoría de los escáneres no detectan en una red o host, esto no quiere decir que la completa detección de las vulnerabilidades y amenazas esté garantizada.

¿Cómo conseguirlo?

Como mencioné antes, Nessus cuenta con una Version no comercial (gratuita), para la obtención de esta, será necesario seguir los siguientes pasos:

NOTA: Esta instalación se hará en una plataforma Linux, en este caso usaré la distribución de seguridad Parrot 3.1, la instalación es la misma para Kali.

  1. Entrar al sitio web de Tenable Security y descargar el paquete que contiene la version “Home” de Nessus, puedes hacerlo entrando a este URL:

http://www.tenable.com/products/nessus/select-your-operating-system#tos

 

  1. Dentro seleccionarás la plataforma y su arquitectura correspondiente, en mi caso es Linux, Debian 8 de 64-bits

nessus

Imagen 1.1: Selección de  S.O, versión y Arquitectura.

 

  1. Una vez descargado, tendrás que registrarte en Tenable para generar un Serial de Activación, este será enviado al correo que proporciones.
  2. Ya descargado el paquete en extensión .deb ejecutarás el comando chmod a+x “Nombre del paquete”, seguido del comando dpkg –i “nombre del paquete”:

nessus2

Imagen 1.2: Ejecución de comandos para comenzar la configuración de Nessus.

  1. Al terminar de extraerse y establecerse en el puerto indicado (8834), abriremos nuestro navegador web, ya sea Iceweacel o el que tengamos e iremos a la dirección proporcionada. http://localhost:8834/
  2. Al hacer esto, tendrás que ingresar con la cuenta creada anteriormente.

 

  1. Ya loggeado, ingresarás el numero serial que se te envió por mail, al hacer esto la versión del escaneo quedará registrada y se creará un usuario y password para este, te loggearás con esos datos.

 

Imagen 1.3: Formulario de Loggeo para la plataforma de Nessus.

  1. Una vez que ingreses comenzará la descarga de plugins, esta tomará entre 45 minutos y una hora.
  1. Ya finalizada la descarga de los plugins, serás redireccionado hacia el formulario del Login, ingresas tus credenciales y podrás entrar a la plataforma:

nessus4

Imagen 1.4: Vista de la plataforma.

 

Encontrando vulnerabilidades dentro de un  Host en nuestra Red.

Ahora que ya tenemos Nessus instalado y configurado ya podemos hacer un testeo de la seguridad mediante la búsqueda de vulnerabilidades en algún Host, lo que haremos aquí será que mediante los plugins que traer consigo la plataforma revisaremos las vulnerabilidades con las que cuenta este host.

Una vez dentro, configuraremos nuestro Escaneo (Scan), esto se puede hacer desde el botón “Scans”, seguido de “New Scan”:

nessus34

Imagen 1.5: Botón para agregar un nuevo escaneo.
Al querer añadir un nuevo escaneo, aparecerá una librería mostrando los escaneos con las que cuenta nuestra plataforma, así como su descripción de cada uno de las cuales escogeremos la de “Advanced Scan”:

nessus6

Imagen 1.6: Módulos de escaneo disponibles para nuestra plataforma.

NOTA: Las políticas que cuentan con la etiqueta “UPGRADE” no se encuentran disponibles en nuestra versión (Home), solo en las versiones comerciales de la plataforma.

Antes de continuar con la configuracion del escaneo es necesario saber cuál es la dirección del host objetivo, para esto tendremos que  usar un “Live Host Identificator”, que nos servirá para recolectar información acerca de los Host activos en nuestra Red.

Aunque Nessus tiene su propia función para esto, haremos uso de una herramienta ajena a la plataforma, ya que la configuración de este módulo toma más tiempo, la herramienta que usaremos será Angry IP Scanner, la puedes encontrar dentro del menú de Aplicaciones de Parrot OS, dentro del submenú  en la categoría de Information Gathering:

nessus7

Imagen 1.7: Ubicación de Angry IP Scanner

Esta herramienta viene precargada en todas las versiones de Parrot Security OS, aunque también puedes instalarla manualmente en Kali.

Al abrir Angry IP Scanner, automáticamente aparecerá nuestro rango de la IP y el que se escaneará por Default (255), dejaremos las configuraciones tal cual, y comenzaremos con el botón “Start”:

nessus8

Imagen 1.8: Configuración de escaneo.

nessus9

Imagen 1.9: Progreso del Escaneo.

Al finalizar el escaneo se mostrará una  ventana indicándonos cuantos hosts se escanearon, cuantos están activos, y el tiempo que tomó este escaneo y sus resultados:

 

Imagen 2.0: Escaneo completado.

nessus11

Imagen 2.1: Host Encontrado.
Ya sabemos el nombre del Host y su dirección, esta dirección la colocaremos en el campo “Target” dentro de ls configuraciones del escaneo.

Volviendo a la plataforma, al haber escogido “Advanced Scan”, nos aparecerán las configuraciones que le haremos a nuestro escaneo, en donde:

  1. Le asignaremos un nombre, en este caso le pondré “Advanced”.
  2. No le agregaré descripción.
  3. La carpeta en la que se guardarán estas configuraciones será la que está pre configurada (Scans):
  4. En el campo Target colocaremos el Host o Hosts que se escanearán con este módulo.

nessus12

Imagen 2.2: Configuración General del escaneo, en donde agregamos el nombre de este y el Host objetivo.

En esta demostración no se verá como establecer una rutina de escaneo y comparar sus resultados, pero es una característica que no puede ser ignorada del todo.
Esta nos permite establecer lapsos de tiempos para que se realicé un escaneo hacia el Host o Hosts que se quiera auditar, todo esto se hace desde la función “Schedule”, esta esta deshabilitada por default, aquí yo la active para poder mostrarles los parámetros de configuración que contiene:

  • Cada cuando se llevará a cabo este escaneo (Una sola vez, diario, cada semana, cada mes o cada año)
  • La fecha y hora en la que queremos que comience.
  • La zona Horaria
  • Y el título del Resumen o reporte ejecutivo que contendrá los resultados de este escaneo.

nessus13

Imagen 2.3: Opciones de configuración de la programación de un escaneo.
Dentro de la categoría de “Discovery” se encuentra “Service Discovery” que será en donde especificaremos si queremos escanear todos los puertos y si también queremos ir en búsqueda de servicios SSL/TLS, para esta demostración solo habilitaremos la última opción.

nessus14

Imagen 2.4: Deshabilitando la búsqueda de servicios en todos los puertos y la búsqueda de servicios de tipo SSL y TLS.

En esta parte especificaremos el rango de puertos que abarcará nuestro escaneo (del 1 al 9200), asi como los enumeradores locales de puertos que utilizaremos:

nessus15
Imagen 2.5: Configuracion del escaneo de puertos.

Luego de haber terminado de configurar nuestro modulo del escaneo, desde dentro de la categoría y función que estemos podemos guardar los cambios, haciendo clic en el botón “Save” y los cambios estarán hechos:

nessus16             nessus17

Imagen 2.6: Cambios Guardados.

 

Regresamos al menú “Scans”, dentro del Folder “My Scans”  y ya estará listado el escaneo que hemos configurado, para correrlo basta con hacer clic en “Launch”.

nessus18

 

Imagen 2.7: Escaneo listo para iniciarse.

Al comenzar aparecerá el icono de “Running”, asi como también los de Pausa y Aborto del escaneo:

nessus19

Imagen 2.8: Escaneo llevándose a cabo.
Una vez finalizado es escaneo se mostrará un “Check” en el lugar donde estaba “Running”, si hacemos clic en el podemos ver los resultados:

nessus20

Imagen 2.9: Escaneo finalizado

En los resultados vemos un resumen del escaneo, como es Host, Nombre del escaneo, Política, Tiempo transcurrido, fechas, estatus del proceso y demás detalles, además hay viarias pestañas en las que podemos visualizar información. También nos muestran 2 diferentes gráficas, una en donde enumeran las vulnerabilidades y otra en donde las interpretan por un porcentaje:

nessus21

Imagen 3.0: Resultados del escaneo.
En la gráfica obtenida las vulnerabilidades se dividen en 4 categorías: Críticas, Altas, Medianas y Bajas.
En la pestaña de “Vulnerabilities” se muestra una lista del nombre de las vulnerabilidades encontradas, el plugin que se utilizó para encontrarlas, la categoría del plugin,  el numeró de veces que se halló esta vulnerabilidad y su severidad:

nessus22nessus23

Imagen 3.1 y 3.2: Vulnerabilidades enumeradas y sus respectivas descripciones.
Su fuerte de esta herramienta se encuentra en los plugins que incorpora al momento de realizar su trabajo, la finalidad de estos plugins es auditar el nivel de seguridad en un sistema mediante la identificación de vulnerabilidades y amenazas, esto se consigue empleado el NASL (Nessus Attack Scripting Language).

¿Qué es el NASL?

Es un leguaje de script diseñado exclusivamente para el escáner de Nessus, su única finalidad es crear scripts exclusivamente para la realización de pruebas de seguridad hacia un cierto objetivo, NALS no es un lenguaje que sea bastante potente, ya que su única finalidad es crear scripts para realizar pruebas en objetivos.

Las mayores ventajas de su uso son que:

  • No ejecuta ningún comando sobre tu sistema operativo actual.
  • No enviará paquetes a ningún otro host que no sea el objetivo.
  • Produce scripts que son de fácil modificación.
  • Está diseñado solamente para su uso en Nessus, asi que escribir un script en para Nessus será rápido.

Una carcaterística bastante util cuando hacemos uso de escaneres automatizados de esta categoría, es que peuden llevar a cabo la tarea de realizar Reportes acerca de los resultados. Nessus realiza un buen trabajo en cuanto a esto, ya sea que quieras un Resumen/Reporte Ejecutivo o lo quieras personalizado, esto se puede hacer desde la función “Export”, en donde te ofrecen distintos formatos y extensiones en las que quieras tu Resumen, en este caso tomaré la de .PDF:

nessus24

Al escogerlo, nos dará 2 opciones (al igual que en las demas extensiones), si queremos un resumen ejecutivo o archivo de salida personalizado, aquí escogerá el resumen ejecutivo, hecho esto hacemos clic en Export, donde rapidamente comezará la descarga de nuestro “output” (Archivo de salida):

nessus25                    nessus26

Imagen 3.3 y 3.4: Exportación de resultados en un Reporte ejecutivo

Terminada la descarga visualizamos nuestro Resumen acerca de los resultados obtenidos mediante el escaneo que realizamos hacia el host objetivo, en donde se encuentra la fecha, la  severidad de las vulnerabilidades halladas, los detalles de estas y el ID del plugin empleado para encontrarlas:

nessus27
nessus28

Imagen 3.5: Vista del reporte de tipo Ejecutivo

Puesto a que el reporte o resumen ejecutivo es completamente distinto al técnico, habrá detalles o información que no aparecerán en estos, ya que estos reportes son elaborados con la finalidad de entregarlos a la persona que nos contrató o al departamento correspondiente.
El reporte técnico se elabora con la finalidad de que se entregue al departamento que cuenta con el  personal capacitado para interpretar estos resultados y posteriormente trabajar con ellos.
Para obtener este tipo de reporte, hacemos clic en el botón “Export” y en lugar de Seleccionar “Executive Summary” como está asignado por Default,  escogeremos “Custom”, dejamos las configuraciones tal cual y lo exportamos:

nessus29

Imagen 3.6: Exportando reporte de tipo Técnico.
Finalizada la descarga al abrirlo, tendrá un aspecto completamente distinto,  donde vendrán muchos mas detalles tecnicos acerca de los resultados obtenidos por Nessus:

nessus30

Imagen 3.7: Contenido del reporte técnico.

Asi como las vulnerabilidades aparecerán los detalles relevantes a ellas, como son el puerto en el que se descubrieron,  su descripción, sinopsis y el plugin que se empleó para encontrarlas:

nessus31nessus32nessus33

Imagen 3.8, 3.9 y 4.0: Algunas vulnerabilidades encontradas y anexadas al reporte.
Nessus tiene una arquitectura modular, que consiste de servidores centralizados que llevan a cabo estos escaneos, dentro de estos se encuentran los plugins que se utilizan para encontrar las vulnerabilidades, mediante el uso de descripciones (scripts) NALS, Nessus también te provee de muchas opciones y alternativas cuando se trata de ejecutar un escaneo a un determinado Host, ya sea un equipo individual, un determinado rango de IP, o Subredes completas. Además de que cuenta con más de 1000 plugins usados para encontrar vulnerabilidades
Entre las capacidades que más destacan en Nessus se encuentran:

  • Poder agregar rutinas para auditar y escanear objetivos.
  • Detección de fallos de seguridad en hosts locales y remotos.
  • Compatibilidad con computadoras y servidores de distintas capacidades.
  • Generación de reportes en un formato entendible y fácil de interpretar por el lector.

Para finalizar, Nessus ofrece una extensa variedad de configuraciones y plugins para los múltiples escaneos que puede llevar a cabo, asi como también cuenta con la elaboración de reportes con diferentes finalidades cada uno en distintos formatos, también nos provee de miles de plugins que llevan a cabo estas tareas, además de que cuenta con su propio lenguaje de scripting para compilar estos plugins, esto y muchas más cosas hacen que hasta ahora sea la plataforma más completa que existe para la evaluación del nivel de seguridad de un objetivo. Muchos lo podrán ver intimidante, lo es, por lo que tendrás que pasar buen tiempo explorando sus funciones y familiarizándote con el si es que quieres dominarlo y usarlo de la forma más efectiva, entre mis próximos posts en este blog haremos cosas un tanto más complejas con Nessus.

-Mk Nv.

El contenido de este escrito fue hecho con fines educativos.

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *