El objetivo de este post es explicar tanto de manera teórica como práctica la herramienta Nessus para la identificación de vulnerabilidades. En primer lugar, se incluye una sección teórica donde se detallará la herramienta. Luego, se llevará a cabo una prueba práctica analizando las vulnerabilidades de la máquina Metasploitable2, para determinar si Nessus puede detectar alguna de ellas y, en caso afirmativo, intentar explotarlas. Por último, se enumerarán algunas alternativas.
Nessus es una herramienta ampliamente reconocida para realizar escaneos de vulnerabilidades en una amplia gama de sistemas informáticos, que abarca diversos sistemas operativos, dispositivos de red, aplicaciones web y móviles, así como infraestructuras en la nube. Fue creada por Renaud Deraison en 1998 y posteriormente adquirida en 2005 por Tenable.
A continuación, se enumerar algunos de los aspectos más relevantes de esta herramienta:
1. Escaneo de Vulnerabilidades: Identificar y analizar las vulnerabilidades que se encuentren presentes en los sistemas informáticos. Este proceso supone la identificación de fallos de seguridad en los puertos abiertos, servicios con malas configuraciones, software desactualizado y vulnerabilidades conocidas en sistemas operativos y aplicaciones.
2. Base de Datos de Vulnerabilidades: Utiliza una amplia base de datos de vulnerabilidades que se actualiza constantemente. Esta base de datos incluye detalles sobre vulnerabilidades conocidas, exploits, parches disponibles y descripciones detalladas de cada vulnerabilidad. Durante el escaneo, esta información se utiliza para identificar vulnerabilidades y luego informar sobre ellas.
3. Escaneos Programados y Personalizables: Posibilidad de programar escaneos automáticos en intervalos periódicos. Además, Nessus ofrece opciones de escaneo personalizables en función de las necesidades de los usuarios.
4. Informes: Generación de informes detallados en varios formatos que resumen las vulnerabilidades identificadas durante los escaneos de seguridad. Estos informes incluyen información clave como la descripción de la vulnerabilidad, su gravedad, recomendaciones de mitigación y clasificación según su importancia.
Nessus ofrece varias versiones. Nessus Essentials es una opción gratuita dirigida a usuarios individuales o aquellos que buscan protección para fines no comerciales. Por otro lado, Nessus Professional, una versión de pago, proporciona características adicionales y soporte para empresas que requieren una solución más completa de escaneo de vulnerabilidades. Finalmente, Nessus Expert, también de pago, ofrece las funcionalidades más avanzadas y está destinado a grandes organizaciones que necesitan una protección integral y escalable en sus infraestructuras de seguridad.
A continuación, se incluye una tabla que resume los puntos a favor y en contra de Nessus:
Puntos a favor |
Puntos en contra |
Escaneo Exhaustivo |
Funcionalidades avanzadas asociadas a costes |
Base de datps de vulnerabilidades en constante actualización |
Recursos necesarios en caso de realizar escaneos intensivos |
Interfaz gráfica intuitiva y fácil de usar |
Posibilidad de generarse falsos positivos |
Programación y personalización |
Posibilidad de generarse falsos positivos |
Programación y personalización |
Posibilidad de conflictos con firewalls y sistemas de detección de intrusos |
Capacidad de integración con otros sistemas de seguridad |
Dependencia de la calidad de la base de datos de vulnerabilidades |
Soporte multiplataforma, incluyendo Windiows,Linux y macOS |
Generación de informes que incluyen recomendaciones para mitigar y corregir fallos de seguridad |
Como se mencionó en los aspectos positivos de esta herramienta, su gestión se lleva a cabo mediante una interfaz gráfica de usuario. Esta interfaz ofrece acceso a todas las funciones y características de Nessus de manera intuitiva y sencilla. A continuación, se describirán los elementos principales de la herramienta, ya que una explicación detallada podría requerir otro post:
1. Dashboard (Panel de Control): El panel de control es la página de inicio de Nessus y proporciona información clave, como el número de hosts escaneados. Desde aquí, los usuarios pueden acceder rápidamente a los escaneos recientes, los informes y otras áreas importantes de la herramienta.
2. Escaneos (Scans): Esta sección permite a los usuarios configurar y ejecutar escaneos. Los usuarios pueden programar escaneos automáticos, realizar escaneos manuales bajo demanda, importar y exportar escaneos, y revisar el progreso y los resultados de los escaneos en curso. También pueden ver un historial de escaneos anteriores y realizar acciones como pausar, detener o reiniciar escaneos según sea necesario.
3. Informes (Reports): Accediendo a un escaneo, los usuarios pueden revisar y generar informes detallados sobre los escaneos. Los informes pueden personalizarse para incluir información específica y recomendaciones. Los usuarios pueden exportar los informes en varios formatos, como PDF, CSV y HTML, para compartirlos.
4. Policies (Políticas): Las políticas son conjuntos predefinidos de reglas y configuraciones que determinan cómo se realizan los escaneos. Se pueden crear y personalizar políticas para adaptarse a las necesidades específicas del contexto de la organización. Estas políticas pueden incluir configuraciones como el nivel de riesgo a escanear, los tipos de vulnerabilidades a buscar y los hosts o redes a incluir en el escaneo.
5. Configuration (Configuración): Aquí es donde los usuarios pueden configurar opciones y ajustes específicos de la herramienta, como la configuración del servidor, la configuración de autenticación y las opciones de notificación. También pueden administrar usuarios y roles, establecer políticas de retención de datos y configurar integraciones con otros sistemas de seguridad.
Caso práctico
Como una imagen vale más que mil palabras, se procederá a realizar una demostración práctica del uso de la herramienta. El escenario propuesto es el siguiente:
Uso de Nessus
Desde la máquina designada como «Escáner», se ejecutará Nessus. El objetivo del análisis será la máquina conocida como «Víctima». Una vez finalizado el análisis y haber obtenido el informe correspondiente, desde la máquina identificada como «Atacante», se intentará explotar alguna de las vulnerabilidades detectadas con el fin de acceder de forma remota.
En primer lugar, desde la sección de “My Scans”, definimos un nuevo escaneo haciendo clic en el botón “New Scan”:
Después de hacer clic, se abrirá una nueva ventana cuyo título es «Scan Template». Aquí, se ofrecerá la opción de realizar un descubrimiento de hosts, donde mediante un escaneo básico se comprueba qué hosts están operativos y qué puertos tienen abiertos dentro del mismo rango de red que la máquina donde se ejecuta Nessus. También se podrá optar por ejecutar diversos scripts para detectar vulnerabilidades.
En este caso, se llevará a cabo un escaneo avanzado o «Advanced Scan» para asegurar que el análisis sea lo más exhaustivo posible:
Una vez aquí, se pueden establecer diversos parámetros, de los cuales únicamente dos son obligatorios: el nombre a asignar al escaneo y los objetivos. Sin embargo, también se puede especificar la carpeta en la que se desea guardar el escaneo, en caso de querer organizarlos por ejemplo por las organizaciones auditadas, o a quién notificar, programar el escaneo, indicar credenciales en caso de ser necesario, seleccionar plugins a utilizar, entre otras opciones. Para esta prueba, se realizará un análisis muy básico donde solamente se especificará el nombre del escaneo, que en este caso será «ZeroTry», y la dirección del objetivo, que es la máquina «Víctima» del escenario previamente mostrado, con la dirección IP 192.168.138.1:
En referencia a la prueba, se observa que la duración del escaneo fue de 10 minutos, el modelo de puntuación utilizado es CVSS 3.0 y se han identificado un total de 181 vulnerabilidades, categorizadas como 12 críticas, 7 altas, 24 medias, 8 bajas y 130 de información.
1. Vulnerabilities: Listado de todas las vulnerabilidades encontradas, ordenadas por severidad. En este caso, no se distingue por host, sino que se recopilan todas ellas. Para cada una se proporcionará información sobre la severidad y el CVSS asociado, el Vulnerability Priority Rating (VPR) para determinar la prioridad de corrección, el nombre de la vulnerabilidad, la familia a la que pertenece y el número de veces que ha sido encontrada.
Además, al hacer clic en alguna de ellas, se mostrará información más detallada, como la descripción, la solución propuesta, la posible salida tras explotar la vulnerabilidad, el CVE asociado y otros detalles adicionales.
En este caso, se puede ver que la máquina cuenta con una vulnerabilidad de la familia Backdoor cuyo nombre es UnreallRCd Backdoor Detection, es decir, que ha explotado el servicio UnreallRCd en su versión 3.2.8.1 corriendo en el puerto 6667. Este servicio trata de un software de servidor de Internet Relay Chat (IRC) que permite establecer y gestionar salas de chat en línea para así finalizar la comunicación en tiempo real. La vulnerabilidad tiene asociado el siguiente CVE, CVE-2010-2075. La fecha de publicación de dicha vulnerabilidad fue el 15/06/2010 y su última modificación el 18/06/2010 y fue reportada por Red Hat, Inc. Puede consultarse más información en la propia web de NIST (https://nvd.nist.gov/vuln/detail/CVE-2010-2075). La vulnerabilidad consistía en una puerta trasera que permite a los atacantes ejecutar comandos en el servidor como usuario root. La vulnerabilidad se introducía en la macro DEBUG3_DOLOG_SYSTEM. Esta macro se utiliza para registrar mensajes de depuración en el sistema de archivos. Un atacante con acceso al código fuente modificó la macro para que, en lugar de registrar un mensaje, ejecutará un comando arbitrario.
2. Remediations: Se presenta un listado de las acciones recomendadas para abordar ciertas vulnerabilidades, especificando la acción a realizar, las vulnerabilidades que se corregirían y en cuántos hosts debería aplicarse cada acción.
En este caso, se recomienda realizar 3 acciones para corregir vulnerabilidades en los servicios UnreallRCd, Samba e ISC.
3. History: Listado de veces que ha sido ejecutado el escaneo.
4. Report: Posibilidad de exportar un informe detallado de las vulnerabilidades identificadas, permitiendo la opción de configurar diversas características para detallar la información y elegir el formato deseado.
Este informe se organiza en varios apartados según el número de hosts escaneados y recopila todas las vulnerabilidades, proporcionando información similar a la sección «Vulnerabilities»
Explotación desde KALI
Tras el escaneo realizado con Nessus, se han identificado numerosas vulnerabilidades. Para verificar su existencia, se intentará explotar el servicio UnreallRCd desde una máquina Kali utilizando la herramienta Metasploit.
Mediante un escaneo con Nmap, se consigue averiguar que el servicio se encuentra en ejecución en los puertos 6667 y 6697:
Utilizando la herramienta Metasploit. Se busca algún módulo que pudiera explotar alguna posible vulnerabilidad de este servicio con search UnrealIRCd, y se encuentra lo siguiente:
Se puede apreciar que la versión a explotar el módulo de Metasploit es la 3.2.8.1, coincidiendo con lo que reportaba Nessus. Una vez que se sabe el módulo a utilizar, se selecciona con use 0.
Hecho esto, se consultan las opciones obligatorias que necesita el módulo para explotar el servicio mediante show options:
Como se puede apreciar, se requiere tanto configurar el puerto como la dirección IP del host remoto, es decir, de la víctima. No es necesario modificar el puerto, ya que coincide con el puerto abierto en la máquina víctima. Sin embargo, si es necesario establecer la opción RHOST, mediante el comando set RHOSTS 192.168.138.131.
Pese a no parecer ser obligatorio, resulta relevante consultar los payloads disponibles en dicho módulo y elegir el más conveniente, esto se consigue con show payloads:
Se aprecian un total de 13 payloads, siendo el primero (id 0) (payload/cmd/unix/adduser), utilizado para la creación de un nuevo usuario, y el sexto (id 5) (payload/cmd/unix/generic) diseñado para la ejecución de comandos genéricos. Los restantes permiten generar una shell reversa a partir de diversos servicios. De todas las opciones disponibles, opté por seleccionar el séptimo (id 6) (payload/cmd/unix/reverse) y debido a esto, fue necesario indicar la dirección IP de la máquina atacante.
Una vez configuradas las opciones, se ejecuta el payload y se consigue acceso remoto a la máquina víctima bajo el usuario root:
Con esto se ha podido apreciar el potencial y eficacia de la herramienta Nessus.
Alternativas
Existen varias alternativas en el mercado para realizar escaneos de vulnerabilidades, y aunque Nessus ofrece un gran potencial, especialmente en sus versiones de pago, es prudente considerar otras opciones disponibles:
1. OpenVAS (Open Vulnerability Assessment System): Herramienta de escaneo de vulnerabilidades de código abierto que ofrece funcionalidades similares a Nessus. Proporciona escaneo de vulnerabilidades en sistemas operativos, aplicaciones web y bases de datos, junto con la capacidad de programar escaneos, generar informes detallados y realizar análisis de seguridad.
2. Rapid7 Nexpose: Herramienta de gestión de vulnerabilidades que ofrece escaneo de vulnerabilidades en sistemas, redes y aplicaciones web. Proporciona funcionalidades avanzadas como escaneo de credenciales, análisis de configuración y correlación de vulnerabilidades con amenazas activas.
3. Acunetix: Herramienta de escaneo de seguridad web que se enfoca específicamente en identificar y remediar vulnerabilidades en aplicaciones web y servicios web. Ofrece escaneo automático de aplicaciones web, escaneo de inyección SQL, escaneo de cross-site scripting (XSS) y detección de vulnerabilidades de OWASP Top 10.
4. Nikto: Herramienta de código abierto para escanear servidores web en busca de vulnerabilidades y configuraciones subóptimas. Se enfoca en identificar problemas de seguridad comunes, como configuraciones mal configuradas, archivos de configuración expuestos y versiones desactualizadas de software.
5. ZAP: Herramienta de código abierto desarrollada por OWASP (Open Web Application Security Project) que se utiliza para realizar pruebas de seguridad en aplicaciones web. Ofrece funcionalidades de escaneo de vulnerabilidades y pruebas de penetración diseñadas específicamente para aplicaciones web. ZAP permite a los usuarios identificar y explotar vulnerabilidades comunes, como inyecciones SQL, cross-site scripting (XSS), y otras vulnerabilidades de seguridad en aplicaciones web. Además, ZAP proporciona una interfaz gráfica de usuario (GUI) intuitiva y capacidades de scripting para la automatización de pruebas de seguridad. Es una herramienta popular y ampliamente utilizada por profesionales de seguridad y desarrolladores de software para mejorar la seguridad de las aplicaciones web.
Conclusión
Para finalizar, Nessus es una herramienta para identificar y evaluar vulnerabilidades en sistemas informáticos. Su interfaz sencilla de usar, base de datos de vulnerabilidades actualizada y capacidad de personalización en los escaneos, resulta ser muy útil tanto para los pentesters en su tarea de identificación de vulnerabilidades como para las organizaciones en la tarea de proteger su entorno. Sin embargo, la existencia de versiones de pago limita su accesibilidad y potencial, especialmente para particulares y empresas con recursos financieros limitados.
Y así concluye la introducción y la prueba de uso de Nessus. Espero que haya sido una lectura agradable y fácil de entender. ¡Espero que hayas disfrutado y que este no sea mi último post!