Cómo instalar y utilizar el escáner de vulnerabilidades Vuls en Debian 12
Vuls es un escáner de vulnerabilidades sin agente, gratuito y de código abierto para Linux y FreeBSD. Vuls está escrito principalmente en Go y puede ejecutarse en cualquier lugar. Puedes ejecutar Vuls en Cloud, on-premise y Docker, y es compatible con las principales distribuciones. Vuls proporciona un escaneado de alta calidad compatible con múltiples bases de datos de vulnerabilidades, como NVD, JVN, OVAL, RHSA/ALAS/ELSA/FreeBSD-SA.
Con Vuls, puedes escanear varios sistemas operativos utilizando múltiples métodos. Puedes escanear los locales de tu host, y puedes escanear hosts/servidores remotos a través de SSH. También proporciona múltiples métodos de escaneo: un escaneo rápido que no requiere privilegios de root y un escaneo profundo que requiere privilegios de root. Vuls puede escanear varios servidores de destino a la vez. Una vez finalizado el escaneo, puedes enviar el resultado por correo electrónico y Slack.
En esta guía, aprenderás a instalar el Escáner de Vulnerabilidades Vuls en el servidor Debian 12. Instalarás Vuls, configurarás las bases de datos CVE y, a continuación, escanearás el sistema local y la máquina remota Vuls.
Requisitos previos
Antes de empezar, asegúrate de que tienes lo siguiente:
- Un servidor Debian 12
- Un usuario no root con privilegios de administrador
- Servidores adicionales como RockyLinux/Ubuntu como objetivos para el escaneo remoto
Instalación de dependencias
Antes de instalar Vuls, debes asegurarte de que están instaladas las dependencias. En esta sección, instalarás los paquetes‘debian-goodies‘ y‘reboot-notifier‘ como dependencias para Vuls.
En primer lugar, ejecuta el siguiente comando para actualizar el índice de paquetes de Debian.
sudo apt update
Ahora instala los paquetes‘debian-goodies‘ y‘reboot-notifier‘ con el siguiente comando. Introduce‘Y’ para confirmar la instalación.
sudo apt install debian-goodies reboot-notifier
Instalar Vuls con el script instalador
Una vez instaladas las dependencias, instalarás Vuls utilizando el script instalador. Éste compilará e instalará automáticamente Vuls y las herramientas adicionales para Vuls en tu sistema.
Para instalar Vuls, ejecuta el siguiente comando. Con él, descargarás el script instalador de Vuls ‘install.sh’ y lo ejecutarás.
bash <( curl -s https://raw.githubusercontent.com/vulsio/vulsctl/master/install-host/install.sh )
Ahora el script instalador instalará la última versión de Golang, y después compilará e instalará múltiples herramientas para Vuls, como‘go-cti‘,‘go-cve-dictionary‘,‘goval-dictionary‘,‘go-exploitdb‘,‘go-kev‘,‘go-msfdb‘, y‘gost‘.
Una vez finalizada la instalación, comprueba el directorio‘/usr/local/bin‘ y verás un archivo binario para Vuls con sus herramientas.
ls /usr/local/bin/
Ahora puedes comprobar el mensaje de ayuda con el siguiente comando ‘vuls help’.
vuls help
Obtendrás una salida como la siguiente:
Configurar Vuls
Con el Vuls instalado, tendrás que configurarlo antes de escanear cualquier ordenador o servidor. En esta sección, crearás un nuevo directorio y archivos para la instalación de Vuls. Definirás las bases de datos CVE a bases de datos SQLite específicas y crearás la primera configuración de escaneo para localhost.
Crea un nuevo directorio‘/opt/vuls‘ y desplázate a él. A continuación, crea un nuevo archivo‘config.toml‘ con el editor ‘nano’.
mkdir -p /opt/vuls; cd /opt/vuls nano config.toml
Introduce la siguiente configuración para integrar las bases de datos CVE con Vuls. Además, en la línea inferior, define escanear para localhost.
[cveDict] type = "sqlite3" SQLite3Path = "/opt/vuls/cve.sqlite3" [ovalDict] type = "sqlite3" SQLite3Path = "/opt/vuls/oval.sqlite3" [gost] type = "sqlite3" SQLite3Path = "/opt/vuls/gost.sqlite3" [metasploit] type = "sqlite3" SQLite3Path = "/opt/vuls/go-msfdb.sqlite3" [servers] [servers.localhost] host = "localhost" port = "local" scanMode = [ "fast-root" ] #scanMode = ["fast", "fast-root", "deep", "offline"]
Guarda y sal del archivo cuando hayas terminado.
Por último, ejecuta el siguiente comando‘vuls‘ para verificar tu configuración.
vuls configtest
Si la configuración es correcta, verás la siguiente salida:
Crear bases de datos CVE con Vuls
En esta sección, crearás nuevas bases de datos CVE a partir de varias fuentes utilizando las herramientas Vuls. Crearás bases de datos CVE para las bases de datos del rastreador de seguridad de Debian, NVD, OVAL y Metasploit.
En primer lugar, dirígete al directorio‘/opt/vuls‘:
cd /opt/vuls
Ahora ejecuta el siguiente comando para descargar y crear bases de datos CVE de múltiples fuentes. En este ejemplo, utilizarás la base de datos CVE del rastreador de seguridad de Debian, NVD, OVAL y la base de datos de Metasploit.
gost fetch debian --dbpath /opt/vuls/gost.sqlite3 go-cve-dictionary fetch nvd --dbpath /opt/vuls/cve.sqlite3 goval-dictionary fetch debian 12 --dbpath /opt/vuls/oval.sqlite3 go-msfdb fetch msfdb --dbpath /opt/vuls/go-msfdb.sqlite3
Una vez finalizado el proceso, tus bases de datos CVE estarán disponibles en el directorio‘/opt/vuls‘. Comprueba el directorio‘/opt/vuls’ con el siguiente comando.
ls /opt/vuls/*.sqlite3
Escanear localhost con Vuls
Llegados a este punto, ya has configurado Vuls y creado las bases de datos CVE. Ahora estás preparado para escanear tu localhost o máquina local con Vuls.
Para escanear tu máquina local, ejecuta el siguiente comando‘vuls‘.
vuls scan localhost
Una vez finalizado el proceso, verás el resultado en tu terminal.
Ahora ejecuta el comando‘vuls tui‘ que aparece a continuación para ver el informe del escaneo en detalle.
vuls tui
A continuación, puedes ver un informe de escaneo detallado para localhost.
Pulsa ‘Ctrl+c’ para salir de la interfaz de usuario del terminal Vuls.
Escanear un servidor remoto con Vuls
En esta sección, escanearás el servidor remoto con Vuls. Para este ejemplo, el servidor de destino será el servidor Rocky Linux 9 con dirección IP‘192.168.10.45‘ y usuario‘rock‘.
En primer lugar, ejecuta el siguiente comando para descargar la base de datos CVE de OVAL para RedHat 9:
goval-dictionary fetch redhat 9 --dbpath /opt/vuls/oval.sqlite3
Ahora genera una nueva clave pública y privada SSH, y luego sube la clave pública al servidor de destino. En este ejemplo, el servidor de destino es Rocky Linux 9 con la dirección IP‘192.168.10.45‘ y el usuario SSH‘rock‘.
ssh-keygen -t ed25519 ssh-copy-id [email protected]
Ahora inicia sesión en el servidor de destino con el comando ‘ssh’ que aparece a continuación e instala el paquete‘lsof‘ con el comando que aparece a continuación.
ssh [email protected] sudo dnf install lsof -y
Escribe‘exit’ para cerrar la sesión en el servidor Rocky Linux.
A continuación, ve al directorio ‘/opt/vuls’ y edita el archivo‘config.toml‘ con el editor ‘nano’.
cd /opt/vuls/ nano config.toml
Introduce la siguiente configuración para crear un nuevo escaneo para el sistema remoto Rocky Linux 9 servidor. Asegúrate también de cambiar los detalles de la dirección IP y el usuario con tu información.
[servers.debian-server] host = "192.168.10.45" port = "22" user = "rock" keyPath = "/root/.ssh/id_ed25519" scanMode = [ "fast-root" ] # "fast", "fast-root" or "deep"
Guarda el archivo y sal del editor.
Con la nueva configuración, ahora puedes probar tu archivo ‘config.toml ‘ utilizando el siguiente comando.
vuls configtest
Si no se produce ningún error, escanea el servidor remoto con el comando ‘vuls ‘ que aparece a continuación.
vuls scan rocky9
Por último, ejecuta el comando ‘vuls ‘ que aparece a continuación para acceder al informe de tu escaneo remoto.
vuls tui
A continuación, puedes ver un informe detallado del servidor remoto Rocky Linux 9.
Conclusión
¡Enhorabuena! Has completado la instalación del Escáner de Vulnerabilidades Vuls en el servidor Debian 12. También has aprendido a crear bases de datos CVE utilizando las herramientas adicionales de Vuls. Después de eso. También has aprendido a escanear servidores/máquinas locales y remotos con Vuls.