Escaneando Vulnerabilidades con Nessus

En esta práctica veremos como hacer scanning the vulnerabilidades usando Nessus Vulnerability Scanner.

Nessus

Instalando Nessus (Essentials)

Para poder instalar Nessus debemos crearnos una cuenta sin costo que nos dará acceso a Nessus Essentials, una versión limitada pero aún muy poderosa de Nessus que incluye suficientes escaneos para poder realizar esta práctica.

Una vez estamos registrados y tenemos nuestra cuenta de Nessus Essentials recibiremos por mail nuestra clave de activación para poder descargar e instalar Nessus.

Nessus es un software que consume su buena cuota de recursos, de ser posible es recomendable tener una VM dedicada para su uso. De esta manera podemos dejar el scanning corriendo en la VM de Nessus y continuar cualquier otra tarea en nuestra VM regular de trabajo sin que afecte su fluidez y sin correr el riesgo de que otras tareas afecten los procesos de scanning de Nessus.

La página de descarga de Nessus ofrece diversas versiones según nuestro sistema operativo. Para esta práctica usaremos una VM con Kali Linux 2020.4.

En este caso descargaré la versión indicada para distribuciones basadas en Debian 64 bits.

La web nos pide aceptar la Licencia y comienza la descarga. Veamos como instalamos el paquete .deb descargado usando el comando dpkg -i {NombreDelArchivo.deb}.

En nuestra terminal nos dirigimos a la carpeta de descargas (o el directorio donde hayas descargado Nessus) y ejecutamos el comando:

Una vez instalado necesitamos inicializar el servicio que ejecutará el daemon llamado nessusd. Para iniciar el servicio usamos el comando /bin/systemctl start nessusd.service.

Es necesario ejecutar el comando con privilegios usando sudo.

Con esto ya tenemos Nessus listo para ser iniciado, no obstante el primer inicio involucra configuraciones adicionales antes de poder usar Nessus.

Iniciando Nessus

Para Iniciar Nessus, abrimos la siguiente URL https://kali:8834/ como menciona el mensaje que recibimos luego de instalar Nessus.

Al hacerlo, recibiremos una advertencia sobre el certificado inválido. Hacemos click en el botón advanced y en el link del final Procced to kali (unsafe). Deberíamos ahora ver esta pantalla:

Con la opción Nessus Essentials seleccionada hacemos click en Continue. En el siguiente paso nos pedirá registrarnos, dado que ya tenemos nuestra cuenta y clave de activación, hacemos click en skip. En el siguiente paso ingresaremos nuestro código de activación y daremos click en continue.

Nessus nos pedirá crear una cuenta de administrador para usar la herramienta, ingresamos el user y password que deseemos y hacemos click en Submit.

A continuación Nessus comenzara a descargar e inicializar sus plugins.

Si todo ha salido bien, veremos la siguiente pantalla donde nos pedirá que ingresemos el usuario y contraseña que especificamos antes para la cuenta administrador.

Una vez iniciada la sesión en nessus, veremos la siguiente pantalla y tendremos todo listo para comenzar nuestra práctica.

Nuestro primer scan con Nessus (Discovery & Vulnerability Scans)

Ahora que tenemos Nessus instalado y listo, veremos a continuación como podemos realizar un scan de vulnerabilidades, que información obtenemos del mismo y como nessus presenta los resultados.

Para está práctica voy usar como objetivo las VMs de mi Laboratorio local para prácticas de Active Directory y veremos las vulnerabilidades que logra detectar Nessus.

Objetivos a escanear:

Ingresamos las direcciones IP en el campo targets de la ventana de bienvenida a Nessus y hacemos click en el botón submit.

Al darle submit Nessus comenzara a realizar un proceso de host discovery para ubicar hosts adicionales que puedan existir dentro de los targets especificados. Al completarse, seleccionamos los que en efecto vayamos a escanear.

Tengamos presente que Nessus Essentials nos limita en la cantidad de hosts que podemos escanear. Actualmente ese limite es de 16 hosts.

En este punto basta con dar click en Run Scan y Nessus automáticamente realizará un escaneo básico de cada objetivo para comenzar a conocer un poco más sobre ellos.

Para ver nuestro scan en marcha podemos ir a la tab llamada History:

Luego de un momento veremos que las tabs llamadas Hosts y Vulnerabilities comenzarán a registrar resultados:

Dejaremos correr el scan hasta que se complete del todo, sin embargo es bueno saber que podemos ir revisando en tiempo real las detecciones registradas en las correspondientes tabs de la pantalla My Basic Network Scan.

Luego de unos minutos obtenemos el resultado del scan básico:

Como podemos ver Nessus clasifica las vulnerabilidades encontradas en base a distintos niveles de severidad y su puntaje CVSS (Common Vulnerability Scoring System) especificado por la National Vunlerability Database en su versión CVSSv2 (anteriormente estaba más alineado a CVSSv1).

Veamos en este caso en detalle la vulnerabilidad de severidad Medium detectada: SBM Signing not required.

Para ver el detalle de cualquier resultado, basta con hacerle click y Nessus nos mostrará la siguiente pantalla con todo el detalle disponible:

De cada vulnerabilidad obtendremos un detalle similar, en este caso la siguiente información es provista:

  • Detalle de la Vulnerabilidad:

    • Severidad de la vulnerabilidad: MEDIUM.

    • Descripción: Obtenemos una descripción del posible impacto de la vulnerabilidad. En este caso nos indica que la firma de comunicaciones con el servidor SMB, no es requerida. Lo cual puede permitir a un eventual atacante llevar a cabo ataques del tipo MIM (Man in the Middle).

    • Solución: Parte del detalle ofrecido por Nessus para cada vulnerabilidad incluye posibles soluciones para mitigar el riesgo de cada vulnerabilidad detectada. En este caso la solución es activar el requisito de que toda comunicación deba estar firmada (Digitally Sign Communications).

    • Artículos relacionados: Como parte del informe de detalle Nessus también suele incluir links a diversos artículos donde se explica la tecnología afectada (por ejemplo SMB) y recursos adicionales que puede incluir otros artículos donde se vea en detalle la vulnerabilidad.

    • Listado de Puertos y Hosts Afectados: Incluye el detalle de los puertos afectados y la lista de hosts donde se detectó la misma vulnerabilidad (esta cantidad se corresponde al valor indicado en la columna Count en la lista de vulnerabilidades de la pantalla anterior). En este caso vemos que solo dos de los tres equipos del lab están afectados por esta vulnerabilidad.

    • Detalles del plugin (Plugin Details): Información básica y de referencia sobre cual plugin fue utilizado para realizar la detección.

    • Información de Riesgo (Risk Information): Detalle del los factores de riesgo y los diferentes puntajes CVSS que aplican para esta vulnerabilidad.

    • Información de la Vulnerabilidad: Esta sección nos muestra un detalle adicional sobre la vulnerabilidad y la fecha en que fue publicada originalmente.

No es parte de esta práctica el proceso de como solucionar la vulnerabilidad, nos centraremos únicamente en el escaneo de las mismas y como son reportadas por Nessus.

Hasta acá vimos como podemos realizar un scan básico en una instalación limpia de Nessus y como ver el detalle de las vulnerabilidades detectadas. No obstante no es la única forma de hacer escaneos dado que normalmente luego del primer scan realizado, Nessus no vuelve a mostrar la pantalla de Bienvenida para iniciar un scan automático rápido como vimos en este ejemplo. Por este motivo en la siguiente sección veremos como podemos iniciar un scan a demanda en Nessus Essentials y los pasos necesarios para hacerlo.

Realizando Scans On Demand con Nessus (Zerologon Vuln Detection)

Una vez tenemos al menos un escaneo realizado en Nessus, al abrir el programa veremos que ya no aparece la pantalla de bienvenida para dejarnos ingresar los targets y realizar un scan básico automático. Para iniciar un nuevo escaneo debemos hacer click en el botón New Scan.

Luego de hacer click en New Scan Nessus nos muestra la siguiente pantalla donde aparecen listados los tipos de escaneos disponibles, incluyendo algunos a los cuales no vamos a tener acceso con Nessus Essentials.

Los primeros dos escaneos que aparecen listados (Host Discovery y Basic Network Scan) son los que fueron ejecutados por Nessus cuando cargamos nuestros objetivos en la pantalla de bienvenida. Entre los escaneos disponibles se encuentra uno para detectar si nuestro objetivo es vulnerable a Zerologon, una vulnerabilidad que sigue impactado a equipos que no cuentan con los parches necesarios. Veamos si alguna de nuestras VMs del lab es vulnerable, incluso en caso de no ser vulnerables veremos como es el proceso para iniciar un escaneo manualmente en Nessus (proceso que aplica a cualquier scan con mayor o menor configuraciones requeridas según el tipo de escaneo).

Para Iniciar un scan primero debemos configurarlo, comenzamos por hacer click en el scan llamado Zerologon Remote Scan y veremos la siguiente pantalla.

En esta pantalla debemos indicar un Nombre para el scan, Objetivos a escanear. Nessus es una herramienta ENORME y no es posible cubrir en esta práctica todas las posibles configuraciones para este o cualquier otro scan. Pero es importante saber que nos ofrece opciones para configurar el scan a nuestro gusto y necesidad. Entre estas opciones adicionales se encuentran ajustes como configuraciones de Ping y tipos de Ping a realizar, rango de puertos, enumeradores de puertos a usar e incluso opciones avanzadas como detener las operaciones si el host deja de responder durante el scan.

Una parte importante que debemos comprender sobre Nessus, es que todas sus funcionalidades son provistas por plugins y familias de plugins. Estos plugins son usados en los diferentes escaneos y aportan pruebas específicas que Nessus llevará a cabo. Podemos ver la lista de plugins que se usarán durante un scan en la tab llamada Plugins. En Este caso podemos ver que el scan actual solamente hace uso de un plugin para testear Zerologon.

Si hacemos click sobre el nombre del plugin (columna Plugin Name) podemos ver un detalle o resumen sobre el plugin y la vulnerabilidad que testea.

El detalle es similar al que vimos durante el primer scan e incluye todo el detalle disponible sobre la vulnerabilidad. Una vez que estemos listos con los ajustes para nuestro scan, Indicamos el nombre para el mismo y los IP objetivos:

En este punto podemos guardar nuestro scan para ejecutarlo en otro momento o bien haciendo click en el botón de la flecha abajo que tiene el botón llamado Save, podemos elegir ejecutarlo ahora mismo haciendo click en Launch:

Los scans guardados aparecerán listados en debajo de My Scans junto con los otros escaneos que hayamos realizado o guardado anteriormente.

Si no guardaste el scan podes ejecutarlo haciendo click en el botón de play que se muestra para este scan en la lista de escaneos (My Scans) como se muestra en la siguiente imagen.

De acá en adelante ocurre lo mismo que vimos durante el primer escaneo básico, Nessus realizara los testeos necesarios usando el Plugin configurado para el scan y nos devolverá los resultados de las vulnerabilidades encontradas en caso de estar presentes en los objetivos escaneados. Veamos que resultados nos ofrece:

Como podemos observar el Nessus determinó en 5 minutos que el Controlador de Dominio (DC) de nuestro lab es vulnerable al ataque Zerologon. Si hacemos click en la vulnerabilidad podemos darnos una idea de la potencia de Nessus.

Con tan solo 23 intentos pudo comprometer la seguridad del DCy verificar que en efecto es vulnerable al exploit Zerologon. Incluso vemos el detalle de la request y response enviadas por Nessus.

Hasta acá llegamos con esta práctica de scanning de vulnerabilidades con Nessus. Vimos como Instalar Nessus y realizar su configuración inicial, hasta su uso básico para realizar un scan inicial automático (Discovery y Network Basic Scan). Finalmente realizamos un scan manual a demanda para comprobar si nuestro laboratorio era vulnerable al exploit Zerologon que afecta a los Controladores de Dominio. Con dicho scan comprobamos que en efecto nuestro DC es vulnerable.

Adjunto a está práctica el reporte generado por Nessus para el scan de ZeroLogon.

Nessus cuenta con muchas opciones que no podemos llegar a cubrir en esta práctica, no obstante es bueno conocer que dispone de herramientas para crear nuestras propios templates de Policies para determinar las acciones que se llevan a cabo en cada tipo de scan. También incluye funcionalidades para generación de reportes, y reglas(rules) customizadas para el funcionamiento de los plugins. Todo esto sin tener en cuenta las demás funcionalidades y scans que se habilitan con la versión paga.

Ciertamente es una herramienta muy interesante y que me interesa comprender en mayor profundidad. Quizás dedique un escrito en particular profundizando en su uso en algún momento. Por ahora quizá realice alguna que otra actualización a esta misma práctica.

Troubleshooting Nessus

Si durante el proceso de instalación y primer inicio recibís un error de descarga o algún otro error que impide que Nessus termine de configurarse, podes probar las siguientes soluciones que pueden puede serte útiles para remediar el problema.

En mi caso, fue necesaria la solución numero dos para solucionarlo, los problemas que tuve al instalar Nessus.

Solución Número 1:

Si durante la configuración inicial de Nessus recibís el error Download Failed (Descarga Fallida) Intenta con la siguiente solución.

NOTA: Encaso de recibir un error de que la descarga a fallado. Podemos ejecutar el siguiente comando para solucionarlo sudo /opt/nessus/sbin/nessuscli update.

Una vez que ejecutamos ese comando, veremos el siguiente resultado en consola.

En algunos casos con esto ya podremos retomar la configuración de Nessus.

Solución Número 2:

En caso de que el error persista luego de intentar la solución 1 o recibamos algún error diferente que igualmente impide la correcta inicialización de Nessus. Podemos probar los siguientes comandos que resetearan por completo Nessus:

  1. # service nessusd stop

  2. # /opt/nessus/sbin/nessuscli fix --reset

  3. # /opt/nessus/sbin/nessuscli fetch --register ACTIVATIONCODE

  4. # /opt/nessus/sbin/nessusd -R

  5. # service nessusd start

Espero que te sea de ayuda.

Estas prácticas están sujetas a modificaciones y correcciones, la versión más actualizada disponible se encuentra online en el siguiente link.

Last updated