Los investigadores de seguridad informática a menudo requieren complementos para los escáneres de vulnerabilidades en Kali Linux, aunque debido a restricciones de licencia estas herramientas no se incluyen en la distribución. Afortunadamente Kali incluye OpenVAS, que es gratuito y de código abierto, mencionan especialistas en análisis de vulnerabilidades del Instituto Internacional de Seguridad Cibernética (IICS).
En este artículo le mostraremos cómo configurar, ejecutar y automatizar OpenVAS en esta distribución. Esta información puede resultarle realmente útil, ya que las herramientas para el análisis de vulnerabilidades suelen tener funciones limitadas.
Puede que los escáneres de vulnerabilidades sean de utilidad, pero no son capaces de entregar a los investigadores toda la información que requieren. Lanzar un escáner de vulnerabilidades sin análisis previo puede resultar un dolor de cabeza para los investigadores e incluso llevar a resultados erróneos.
Requerimientos del sistema
La principal queja de los expertos en análisis de vulnerabilidades sobre OpenVAS es que es demasiado lento, se bloquea y no funciona. Esto puede tener más de una explicación, aunque la más frecuente es que el sistema en el que se está ejecutando no cuenta con los recursos suficientes para su correcto funcionamiento.
Algunos escáneres de vulnerabilidades comerciales requieren al menos 8 GB de RAM; si bien OpenVAS no requiere tantos recursos, la herramienta se ejecutará mejor en los sistemas con mayor capacidad. Para este tutorial, OpenVAS se ejecutará en una Kali VM con 3 procesadores y 3 GB de RAM, que suele ser suficiente para escanear una pequeña cantidad de hosts al mismo tiempo.
Instalación inicial
OpenVAS cuenta con una gran cantidad de opciones modificables, por lo que ajustar la herramienta de forma manual es un problema considerable. Por suerte Kali Linux cuenta con la utilidad “openvas-setup” para administrar la configuración y descarga de firmas, además de generar una contraseña para el usuario administrador.
Al final de la configuración, se mostrará una contraseña generada automáticamente para el usuario administrador. Asegúrese de guardar esta contraseña en un lugar seguro, recomiendan los especialistas en análisis de vulnerabilidades.
root@kali:~# openvas-setup
ERROR: Directory for keys (/var/lib/openvas/private/CA) not found!
ERROR: Directory for certificates (/var/lib/openvas/CA) not found!
ERROR: CA key not found in /var/lib/openvas/private/CA/cakey.pem
ERROR: CA certificate not found in /var/lib/openvas/CA/cacert.pem
ERROR: CA certificate failed verification, see /tmp/tmp.7G2IQWtqwj/openvas-manage-certs.log for details. Aborting.ERROR: Your OpenVAS certificate infrastructure did NOT pass validation.
See messages above for details.
Generated private key in /tmp/tmp.PerU5lG2tl/cakey.pem.
Generated self signed certificate in /tmp/tmp.PerU5lG2tl/cacert.pem.
...
/usr/sbin/openvasmd
User created with password 'xxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxx'.
Identificación de errores en la instalación
Recuerde que en ocasiones el script “openvas-setup” mostrará errores al final del arranque de NVT similares a los que se muestran a continuación:
(openvassd:2272): lib kb_redis-CRITICAL **: get_redis_ctx: redis connection error: No such file or directory
(openvassd:2272): lib kb_redis-CRITICAL **: redis_new: cannot access redis at '/var/run/redis/redis.sock'
(openvassd:2272): lib kb_redis-CRITICAL **: get_redis_ctx: redis connection error: No such file or directory
openvassd: no process found
Si en su sistema encuentra este problema, puede ejecutar openvas-check-setup para averiguar cuál es el componente problemático.
En este caso particular, obtenemos la siguiente respuesta:
...
ERROR: The number of NVTs in the OpenVAS Manager database is too low.
FIX: Make sure OpenVAS Scanner is running with an up-to-date NVT collection and run 'openvasmd --rebuild'.
...
El script openvas-check-setup detecta el problema e incluso proporciona un comando para ejecutar una solución. Después de restaurar la colección NVT, se recomienda pasar todas las comprobaciones.
root@kali:~# openvasmd --rebuild
root@kali:~# openvas-check-setup
openvas-check-setup 2.3.7
Test completeness and readiness of OpenVAS-9
...
It seems like your OpenVAS-9 installation is OK.
...
Gestión de usuarios OpenVAS
Si necesita crear usuarios de OpenVAS adicionales, ejecute openvasmd con la opción –create-user, que agregará un nuevo usuario y mostrará una contraseña generada aleatoriamente correspondiente al nuevo usuario.
root@kali:~# openvasmd --create-user=dookie
User created with password 'yyyyyyyy-yyyy-yyyy-yyyy-yyyyyyyyyy'.
root@kali:~# openvasmd --get-users
admin
dookie
Por suerte los expertos en análisis de vulnerabilidades mencionan que cambiar las contraseñas de los usuarios de OpenVAS es fácil con las opciones “openvasmd” y “new-password”.
root@kali:~# openvasmd --user=dookie --new-password=s3cr3t
root@kali:~# openvasmd --user=admin --new-password=sup3rs3cr3t
Iniciar y detener OpenVAS
Los servicios de red están deshabilitados de forma predeterminada en Kali Linux, por lo que si no ha configurado OpenVAS para que se inicie en el arranque, puede iniciar los servicios necesarios ejecutando “openvas-start”.
root@kali:~# openvas-start
Starting OpenVas Services
Una vez que tenga una lista de hosts, puede importarlos en la sección Configurar Objetivos del menú. Cuando los servicios hayan terminado de inicializarse, debería encontrar los puertos TCP 9390 y 9392 que estén escuchando en su interfaz de bucle de retorno.
root@kali:~# ss -ant
State Recv-Q Send-Q Local Address:Port Peer Address:Port
LISTEN 0 128 127.0.0.1:9390 *:*
LISTEN 0 128 127.0.0.1:9392 *:*
Debido al alto consumo de recursos del sistema los expertos recomiendan detener los procesos de OpenVAS cuando haya dejado de utilizar la herramienta, especialmente si no está usando un sistema de análisis de vulnerabilidades sofisticado.
Finalmente, recuerde que OpenVAS puede ser interrumpido ejecutando “openvas-stop”.
root@kali:~# openvas-stop
Stopping OpenVas Services
Uso de Greenbone Security Assistant
Greenbone Security Assistant es una interfaz web OpenVAS disponible en el sistema local después de iniciar OpenVAS en https://localhost: 9392. Después de aceptar el certificado se le presentará una página de inicio de sesión donde deberá autenticarse para acceder al panel principal.
Establecer credenciales
Los analizadores de vulnerabilidades arrojan resultados más completos cuando se proporcionan al motor de análisis las credenciales del sistema objetivo. OpenVAS utilizará estas credenciales para iniciar sesión en el sistema escaneado y realizar una lista detallada del software instalado, parches de seguridad, entre otros datos.
Los usuarios pueden agregar credenciales a través de la entrada Credenciales en el menú Configuración.
Configuración de objetivos
OpenVAS es capaz de escanear sistemas remotos, aunque no es propiamente un escáner de puertos. Para realizar un trabajo completo, los expertos le recomiendan usar un escáner de red especializado como Nmap.
root@kali:~# nmap -sn -oA nmap-subnet-86 192.168.86.0/24
root@kali:~# grep Up nmap-subnet-86.gnmap | cut -d " " -f 2 > live-hosts.txt
Una vez que tenga una lista de hosts, puede importarlos en la sección de destino del menú Configuración.
Configuración del análisis
Antes de ejecutar un análisis de vulnerabilidades, debe ajustar adecuadamente la opción Scan Config/. Esta acción se completa con el menú “Scans Config” del menú “Config”; aquí podrá clonar cualquier configuración de escaneo predeterminada y editar su configuración, deshabilitando cualquier servicio o verificación que no necesite.
Si utiliza Nmap para realizar un análisis preliminar del sistema objetivo, puede ahorrar tiempo en la búsqueda de vulnerabilidades.
Configuración de tareas
El análisis de vulnerabilidades se realiza en el menú Tareas (task) de OpenVAS. Cuando se configura una nueva tarea, puede optimizar el análisis modificando las actividades simultáneas en su sistema; en el sistema del ejemplo (3GB de RAM), puede ajustar la configuración como en el ejemplo siguiente:
Con nuestros parámetros de escaneo y de selección de objetivo ajustados, nuestros resultados de escaneo serán mucho más útiles.
Automatización de OpenVAS
Una de las funciones menos conocidas de OpenVAS es la interfaz con la que interactúa usando el comando “omp”. Esta función no es intuitiva, pero le mostraremos cómo utilizar esta herramienta con algunos scripts básicos.
El primero es openvas-automate.sh, un script Bash semi interactivo que le solicitará al usuario un tipo de análisis y, a partir de esa información, se encargará del resto. Las configuraciones de escaneo están codificadas en el script, por lo que si desea usar sus propias configuraciones personalizadas, puede agregarlas en la sección “objetivos”.
root@kali:~# apt -y install pcregrep
root@kali:~# ./openvas-automate.sh 192.168.86.61:: OpenVAS automation script.
mgeeky, 0.1[>] Please select scan type:
1. Discovery
2. Full and fast
3. Full and fast ultimate
4. Full and very deep
5. Full and very deep ultimate
6. Host Discovery
7. System Discovery
9. Exit
--------------------------------
Please select an option: 5
[+] Tasked: 'Full and very deep ultimate' scan against '192.168.86.61'
[>] Reusing target...
[+] Target's id: 6ccbb036-4afa-46d8-b0c0-acbd262532e5
[>] Creating a task...
[+] Task created successfully, id: '8e77181c-07ac-4d2c-ad30-9ae7a281d0f8'
[>] Starting the task...
[+] Task started. Report id: 6bf0ec08-9c60-4eb5-a0ad-33577a646c9b
[.] Awaiting for it to finish. This will take a long while...
8e77181c-07ac-4d2c-ad30-9ae7a281d0f8 Running 1% 192.168.86.61
También existe una opción code16 que presenta y explica su secuencia de comandos de Python para interactuar con OpenVAS. Al igual que en el script de Bash anterior, deberá realizar algunos cambios en el script si desea personalizar el tipo de análisis.
root@kali:~# ./code16.py 192.168.86.27
------------------------------------------------------------------------------
code16
------------------------------------------------------------------------------
small wrapper for OpenVAS 6[+] Found target ID: 19f3bf20-441c-49b9-823d-11ef3b3d18c2
[+] Preparing options for the scan...
[+] Task ID = 28c527f8-b01c-4217-b878-0b536c6e6416
[+] Running scan for 192.168.86.27
[+] Scan started... To get current status, see below:zZzzZzzZzzZzzZzzZzzZzzZzzZzzZzzZzzZzzZzzZzzZzzZzzZzzZzzZzzZzzZzzZzzZzzZzzZzz
...
zZzzZzzZzzZzzZzzZzzZzzZzzZzzZzzZzzZzzZzzZzzZzzZzzZzzZzzZzzZzzZzzZzzZzzZzzZzz
[+] Scan looks to be done. Good.
[+] Target scanned. Finished taskID : 28c527f8-b01c-4217-b878-0b536c6e6416
[+] Cool! We can generate some reports now ... :)
[+] Looking for report ID...
[+] Found report ID : 5ddcb4ed-4f96-4cee-b7f3-b7dad6e16cc6
[+] For taskID : 28c527f8-b01c-4217-b878-0b536c6e6416
[+] Preparing report in PDF for 192.168.86.27
[+] Report should be done in : Report_for_192.168.86.27.pdf
[+] Thanks. Cheers!
Los expertos en análisis de vulnerabilidades seguro encontrarán este artículo de gran utilidad. Este material fue elaborado con fines didácticos. Para consultar más material como este no dude en visitar las plataformas del Instituto Internacional de Seguridad Cibernética.
Entusiasta de la seguridad cibernética. Especialista en seguridad de la información, actualmente trabajando como especialista en infraestructura de riesgos e investigador.
Experiencia en procesos de riesgo y control, soporte de auditoría de seguridad, diseño y soporte de COB (continuidad del negocio), gestión de grupos de trabajo y estándares de seguridad de la información.
Envía tips de noticias a info@noticiasseguridad.com o www.instagram.com/iicsorg/.
También puedes encontrarnos en Telegram www.t.me/noticiasciberseguridad