Escaneando Vulnerabilidades con Nessus
En esta práctica veremos como hacer scanning the vulnerabilidades usando Nessus Vulnerability Scanner.
Last updated
En esta práctica veremos como hacer scanning the vulnerabilidades usando Nessus Vulnerability Scanner.
Last updated
Wikipedia: 👉 Link.
Nessus es un programa de escaneo de vulnerabilidades en diversos sistemas operativos. Consiste en un demonio o diablo(daemon
), nessusd
, que realiza el escaneo en el sistema objetivo, y nessus
, el cliente (basado en consola o gráfico
) que muestra el avance e informa sobre el estado de los escaneos.
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.
Web para registrarnos en el siguiente 👉 Link. La creación de la cuenta es un proceso trivial como en cualquier web y no lo cubriremos como parte de la 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
.
Página de descarga de Nessus: 👉 Link.
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.
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 en este punto recibes un error de que la descarga de plugins falló, visita esta 👉 sección al final de este escrito llamada Troubleshooting Nessus. En caso contrario sigue leyendo.
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.
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:
Equipo
IP
DC: Controlador de Dominio
192.168.31.131
Client1: Windows 10 Enterprise
192.168.31.132
Client2: Windows 10 Pro
192.168.31.133
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
).
Para conocer más sobre como se clasifican las severidades en CVSSv2 y sus respectivos valores, visita el siguiente 👉 link.
CVSS Score
Severidad en Nessus
Entre 1.0 y 3.9
Low/Info
Entre 4.0 y 6.0
Medium
Entre 7.0 a 9.9
High
10.0
Critical
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.
El laboratorio tiene varias vulnerabilidades y no es la intención remediarlas, dado que la idea es usarlo para practicar los distintos vectores de ataque. Sin embargo si te interesa leer como solucionar esta vulnerabilidad en particular, te recomiendo el siguiente post en español del blog de 0xsecure en el siguiente 👉 link.
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.
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 DC
y 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.
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.
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.
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:
Si el error persiste: Podemos usar los siguientes comandos en orden para resetear Nessus por completo. Más información en el siguiente 👉 link.
# service nessusd stop
# /opt/nessus/sbin/nessuscli fix --reset
# /opt/nessus/sbin/nessuscli fetch --register ACTIVATIONCODE
# /opt/nessus/sbin/nessusd -R
# 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.