Cómo instalar y utilizar el escáner de vulnerabilidades Vuls en Ubuntu 24.04

Vuls es un escáner de vulnerabilidades sin agente, gratuito y de código abierto que puede ejecutarse en cualquier lugar. Puedes ejecutar Vuls en la nube, in situ y en Docker, y es compatible con las principales distribuciones. Vuls es 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 vía 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, te mostraremos cómo instalar el Escáner de Vulnerabilidades Vuls en un servidor Ubuntu 24.04. Instalarás Vuls, generarás bases de datos CVE y escanearás Ubuntu/Debian mediante escaneos locales y remotos.

Requisitos previos

Para empezar con esta guía, asegúrate de que tienes lo siguiente:

  • Un servidor Ubuntu 24.04
  • Un usuario no root con privilegios de root
  • Una máquina Ubuntu/Debian adicional para el escaneo remoto mediante Vuls

Instalación de dependencias

Antes de instalar Vuls, debes asegurarte de que Golang está instalado en tu sistema. Por ahora, la última versión de Vuls requiere la última versión de Golang, por lo que debes instalar Golang manualmente descargando el paquete binario.

En primer lugar, ejecuta el siguiente comando para actualizar el índice de paquetes de Ubuntu e instalar dependencias como‘sqlite3‘,‘git‘,‘make‘ y‘gcc‘.

sudo apt update
sudo apt install sqlite3 git debian-goodies gcc make wget -y

actualizar repo e instalar deps

Una vez instaladas las dependencias, tienes que instalar Golang en tu sistema. En este ejemplo, será la última versión de Golang mediante instalación binaria manual.

Selecciona tu versión de Golang con lo siguiente. Por ejemplo Golang 1.23.2:

export latest_version=1.23.2

Ejecuta el siguiente comando ‘wget’ para descargar Golang y extráelo al directorio‘/usr/local‘ con el comando‘tar‘.

wget https://dl.google.com/go/go$latest_version.linux-amd64.tar.gz
sudo tar -C /usr/local -xzf go$latest_version.linux-amd64.tar.gz

Una vez instalado Golang, inicia sesión con tu usuario y crea un nuevo directorio‘go‘ dentro del directorio home.

su - arvd
mkdir $HOME/go

A continuación, crea un nuevo archivo env‘/etc/profile.d/go-env.sh‘ con el editor‘nano‘.

sudo nano /etc/profile.d/go-env.sh

Pega la siguiente configuración para establecer el PATH para Golang.

export GOROOT=/usr/local/go
export GOPATH=$HOME/go
export PATH=$PATH:$GOROOT/bin:$GOPATH/bin

Guarda y sal del archivo cuando hayas terminado.

Ahora haz ejecutable el archivo‘/etc/profile.d/go-env.sh‘ y cárgalo en tu sesión actual con el comando‘source‘.

sudo chmod +x /etc/profile.d/go-env.sh
source /etc/profile.d/go-env.sh

Por último, comprueba el archivo binario de‘go’ y comprueba su versión con lo siguiente:

which go
go version

Como puedes ver a continuación, Golang‘1.23.2‘ está instalado en‘/usr/local/go/bin/go‘.

configurar e instalar Golanfg

Instalar Vuls y los diccionarios Vuls

Una vez instalado Golang, tendrás que compilar e instalar Vuls y sus componentes para crear bases de datos CVE en formato sqlite3. A continuación se indican algunos componentes de Vuls que deberás instalar:

  • ‘go-cve-dictionary‘ se utiliza para construir la NVD (Base de Datos Nacional de Vulnerabilidades)
  • goval-dictionary‘ para crear la base de datos OVAL, que contiene CVE para la mayoría de las distribuciones de Linux, como Debian, Ubuntu y RedHat.
  • go-exploitdb‘ para buscar exploits en la base de datos exploitdb
  • ‘go-msfdb‘ para buscar CVE en las bases de datos de Metasploit
  • go-kev‘ para crear una copia local de KEV (Vulnerabilidades Explotadas Conocidas) proporcionada por CISA
  • go-cti‘ que se utilizará para crear una base de datos CVE a partir de CTI (Cyber Threat Intelligence)

En primer lugar, ejecuta el siguiente comando para crear nuevos directorios de registro y cambia la propiedad a tu usuario como ‘arvd’.

sudo mkdir /var/log/{vuls,go-exploitdb,go-msfdb,go-kev,go-cti}
sudo chown arvd /var/log/{vuls,go-exploitdb,go-msfdb,go-kev,go-cti}
sudo chmod 700 /var/log/{vuls,go-exploitdb,go-msfdb,go-kev,go-cti}

Crea un nuevo directorio ‘$GOPATH/src/github.com/vulsio’ con lo siguiente:

mkdir -p $GOPATH/src/github.com/vulsio

Desplázate al directorio ‘$GOPATH/src/github.com/vulsio’, descarga el código fuente de la herramienta‘go-cve-dictionary‘ a través de ‘git’, y compílalo e instálalo.

cd $GOPATH/src/github.com/vulsio
git clone https://github.com/vulsio/go-cve-dictionary.git
cd go-cve-dictionary; make install

diccionario cve

Ahora ejecuta el siguiente comando para descargar, compilar e instalar la herramienta«goval-dictionary«.

cd $GOPATH/src/github.com/vulsio
git clone https://github.com/vulsio/goval-dictionary.git
cd goval-dictionary; make install

goval

Una vez instalado ‘goval-dictionary’, pasa a la siguiente herramienta para instalar la herramienta‘go-exploitdb‘.

cd $GOPATH/src/github.com/vulsio
git clone https://github.com/vulsio/go-exploitdb.git
cd go-exploitdb; make install
ln -s $GOPATH/src/github.com/vulsio/go-exploitdb/go-exploitdb.sqlite3 $HOME/go-exploitdb.sqlite3

go-exploitdb

A continuación, ejecuta el siguiente comando para instalar y compilar la herramienta«go-msfdb«.

cd $GOPATH/src/github.com/vulsio
git clone https://github.com/vulsio/go-msfdb.git
cd go-msfdb; make install

go-msfdb

Después, instala la herramienta‘go-kev‘ para crear bases de datos CVE para KEV (Vulnerabilidades Explotadas Conocidas) de CIS por CISA.

cd $GOPATH/src/github.com/vulsio
git clone https://github.com/vulsio/go-kev.git
cd go-kev; make install
ln -s $GOPATH/src/github.com/vulsio/go-kev/go-kev.sqlite3 $HOME/go-kev.sqlite3

go-kev

Y después instala la herramienta‘go-cti‘ que se utilizará para construir CVE de CTI (Inteligencia sobre Ciberamenazas).

cd $GOPATH/src/github.com/vulsio
git clone https://github.com/vulsio/go-cti.git
cd go-cti; make install
ln -s $GOPATH/src/github.com/vulsio/go-cti/go-cti.sqlite3 $HOME/go-cti.sqlite3

go-ctk

A continuación, ejecuta el siguiente comando para descargar, compilar e instalar‘vuls‘ en tu máquina Ubuntu.

mkdir -p $GOPATH/src/github.com/future-architect
cd $GOPATH/src/github.com/future-architect
git clone https://github.com/future-architect/vuls.git
cd vuls; make install

instalar completo

Cuando todo esté instalado, el archivo binario de cada herramienta estará disponible en el directorio ‘$GOPATH/bin’. Ejecuta el siguiente comando para comprobar ese directorio.

ls $GOPATH/bin/

Puedes ver a continuación el archivo binario para‘vuls‘,‘go-cve-dictionary‘,‘goval-dictionary‘,‘go-exploitdb‘,‘go-msfdb‘,‘go-kev‘ y‘go-cti‘.

Por último, también puedes consultar el comando‘vuls‘ que aparece a continuación. Esto te mostrará el mensaje de ayuda devuls’.

vuls help

comprueba los vulos

Descargar bases de datos CVE (Common Vulnerabilities and Exposure)

En este ejemplo, descargarás las bases de datos CVE para:

  • NVD (Base de Datos Nacional de Vulnerabilidades) mediante‘go-cve-dictionary
  • OVAL (Lenguaje Abierto de Evaluación de Vulnerabilidades) para Ubuntu 24.04 mediante«goval-dictionary«.
  • Bases de datos ExploitDB mediante«go-exploitdb
  • Bases de datos Metasploit mediante‘go-msfdb
  • Catálogo KEV (Vulnerabilidades Explotadas Conocidas) de CISA a través de«go-kev
  • Bases de datos ATT&CK y CAPEC de MITRE mediante«go-cti

Ve a tu directorio personal con lo siguiente:

cd $HOME

Ahora ejecuta el siguiente comando para descargar y crear las bases de datos CVE (Vulnerabilidades y Exposiciones Comunes).

go-cve-dictionary fetch nvd
goval-dictionary fetch ubuntu 24.04
go-exploitdb fetch exploitdb
go-msfdb fetch msfdb
go-kev fetch kevuln
go-cti fetch threat

descargar base de datos nvd

descargar base de datos oval

descargar msfdb

Una vez finalizado el proceso, tus bases de datos CVE estarán disponibles en tu directorio personal con el formato ‘.sqlite3‘. Comprueba la lista de bases de datos con lo siguiente:

ls -ah *.sqlite3

Escanear la máquina local con Vuls

Ahora que ya has instalado Vuls y sus componentes, incluidas las bases de datos CVEs. En esta sección, escanearás tu máquina local Ubuntu con Vuls.

Dentro de tu directorio personal, crea un nuevo archivo‘config.toml‘ con el editor‘nano‘.

nano config.toml

Introduce la configuración que aparece a continuación para configurar el escaneo para localhost con el modo «rápido».

[servers]

[servers.localhost]
host = «localhost»
port = «local»
scanMode = [ «fast» ]
#scanMode = [«fast», «fast-root», «deep», «offline»]

Guarda el archivo y sal del editor.

Ahora ejecuta el comando ‘vuls’ que aparece a continuación para verificar el archivo ‘config.toml’.

vuls configtest

Si la configuración es correcta, verás una salida como la siguiente:

comprobar configuración

A continuación, escanea localhost con el comando ‘vuls scan‘ que aparece a continuación.

sudo vuls scan

Puedes ver a continuación que el proceso de escaneo se ha completado.

escaneando localhost con vuls

Para obtener detalles del informe de escaneado, utiliza el comando‘vuls tui‘ que aparece a continuación. Esto te mostrará la interfaz de usuario de terminal del informe de Vuls.

sudo vuls tui

Puedes pulsar‘CTRL+c’ para salir de la TUI de Vuls.

Escanear el servidor remoto con Vuls

En esta sección, aprenderás a configurar un escaneo remoto con Vuls. Así, escanearás el sistema remoto a través de SSH con Vuls. En este ejemplo, escanearás el servidor de destino Debian 12 con la dirección IP‘192.168.10.10‘ y el usuario es‘alice‘.

En primer lugar, ejecuta el siguiente comando para descargar la base de datos de OVAL para Debian 12.

goval-dictionary fetch debian 12

Ahora genera claves públicas y privadas SSH, y luego súbelas al servidor de destino con el comando‘ssh-copy-id‘.

ssh-keygen -t ed25519
ssh-copy-id [email protected]

copiar clave ssh

Conéctate al servidor de destino ‘192.168.10.10’ y, a continuación, actualiza el índice de paquetes e instala dependencias como‘debian-goodies‘ y‘reboot-notifier‘.

ssh [email protected]
sudo apt update && sudo apt install debian-goodies reboot-notifier -y

Escribe‘exit’ para cerrar la sesión en el servidor de destino.

A continuación, abre la configuración de Vuls‘config.toml ‘ utilizando el editor‘nano‘.

nano ~/config.toml

Introduce la configuración que aparece a continuación para añadir los datos del servidor de destino. En este caso, el nuevo servidor de destino se llamará‘debian12‘ con la dirección IP‘192.168.10.10‘ y la autenticación mediante clave SSH.

[servers.debian12]
host = "192.168.10.10"
port = "22"
user = "alice"
keyPath = "~/.ssh/id_ed25519"
scanMode = [ "fast-root" ] # "fast", "fast-root" or "deep"

Guarda el archivo y sal del editor.

Ahora ejecuta el comando‘vuls‘ que aparece a continuación para verificar tu configuración. Asegúrate de que tienes la configuración correcta y adecuada.

vuls configtest

Después, escanea el servidor remoto‘debian12‘ con el comando que aparece a continuación.

vuls scan debian12

A continuación puedes ver que el escaneo remoto a través de Vuls se ha completado.

escanear servidor remoto con vuls

Conclusión

¡Enhorabuena! Has completado la instalación del Escáner de Vulnerabilidades Vuls en el servidor Ubuntu 24.04. También has aprendido a generar bases de datos CVE con Vuls, y a escanear servidores locales y remotos con Vuls. A partir de aquí, ahora puedes integrar Vuls con otro escáner como NMAP para escanear puertos, o también puedes instalar Vulsrepo para la interfaz gráfica y basada en web.

También te podría gustar...