Artículo · Recolección de Información

Escaner de Vulnerabilidades Vuls

José MorenoJosé Moreno 6 min de lectura

Al igual que en otras situaciones, luego de una conferencia de la comunidad DragonJar “Cómo ser del equipo azul, cuando la billetera está en rojo”, durante el OWASP Panamá 2019, me dio la curiosidad de probar Vuls.

 

Vuls es open-source, sin un agente para escanear vulnerabilidades escrito en GO, Permite automatizar la fase analisis de vulnerabilidades de las aplicaciones instaladas en el sistema operativo, es decir es una alternativa a Nessus o  OpenVAS.

 

Esta herramienta cuenta con varias bases de vulnerabilidades como NVD (National Vulnerability Databses). Adicionalmente y la parte que me llama la atención es la generación de reportes indicando la falla y la corrección de las mismas, teniendo la opción de enviar los reportes via email o slack.

 

Requerimientos

  • Servidor con 2GB de RAM con ubuntu server 18.04, dos cuentas de usuarios el root y otro adicional.
  • Recomiendo usar el vps Vultr.com

 

Paso1: Instalación de Dependencias

 

Debemos crear un directorio para almacenar los datos relacionados a Vuls en la ruta /usr/share/vuls-data

 

# mkdir /usr/share/vuls-data

 

 

Vamos a darles permisos al usuario prueba al directorio creado anteriormente

 

# chown -R prueba /usr/share/vuls-data

 

 

Repositorios que necesitaremos en el Sistema install git, gcc, make, sqlite, debian-goodies, and wget.

 

# apt update

 

# apt install git gcc make sqlite debian-goodies wget -y

 

 

Necesitamos instalar Go y usaremos Snap

 

# snap install go --classic

 

Configuramos las variables de entorno para que funcione Go, para ello debemos crear el fichero

 

# touch /etc/profile.d/go-env.sh

 

 

Añadimos lo siguiente al fichero

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

 

Dentro del archivo pegamos la siguiente información

export GOPATH=$HOME/go

export PATH=$PATH:$GOPATH/bin:/snap/bin

 

Comprobamos que el archivo se guardara correctamente

 

Vamos hacer el archive ejecutable

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

 

Procedemos a recargar las variables de entorno

# source /etc/profile.d/go-env.sh

 

 

Paso2: Instalación y ejecución de go-cve-dictionary

Este paque descarga la base de datos NVD.

 

Crearemos un directorio para almacenar los datos de la BD

# mkdir -p $GOPATH/src/github.com/kotakanbe

 

Vamos a desplazarnos al directorio creado

# cd $GOPATH/src/github.com/kotakanbe

 

Descargamos el repositorio de nvd

# git clone https://github.com/kotakanbe/go-cve-dictionary.git

 

Dentro de la ruta accedemos a la siguiente ruta

# cd $GOPATH/src/github.com/kotakanbe/go-cve-dictionary

Listamos los contenidos dentro de go-cve-dictionary

 

Finalmente vamos a compilar e instalar, va demorar un poco en terminar de compilar

# make install

 

Vamos convertir los comandos en comandos del sistemas

# cp $GOPATH/bin/go-cve-dictionary /usr/local/bin

 

Necitamos de un directorio para guardar los logs, procedemos a crear el directorio

# mkdir /var/log/vuls

 

Asignamos los permisos al directorio

# chmod 700 /var/log/vuls

 

Otorgamos permisos al usuario prueba

# chown -R prueba /var/log/vuls

 

Vamos a obtener los datos de la BD de NVD, este comando va demorar un rato, es momento de ir por un café.

 

# for i in `seq 2002 $(date +"%Y")`; do sudo go-cve-dictionary fetchnvd -dbpath /usr/share/vuls-data/cve.sqlite3 -years $i; done

Paso3: Instalación y ejecucción de goval-dictionary

Este paquete es un directorio de base de datos de vulnerabilidades OVAL (Open Vulnerability and Assesment Languaje).

 

Descargaremos el repositorio dentro de la ruta $GOPATH/src/github.com/kotakanbe

# cd $GOPATH/src/github.com/kotakanbe

 

Clonamos el repositorio

# git clone https://github.com/kotakanbe/goval-dictionary.git


Accedemos al repositorio

# cd goval-dictionary

 

Compilamos e instalamos

# make install

 

Hacemos accesible los comandos al sistema

# cp $GOPATH/bin/go-cve-dictionary /usr/local/bin

 

Bajamos la base de datos de OVAL

# goval-dictionary fetch-ubuntu -dbpath=/usr/share/vuls-data/oval.sqlite3 18

 

Paso4: Instalación y ejecución de gost

Paquete de Go que provee acceso a los registros de seguridad de debian, vamos a descargarlos.

# mkdir -p $GOPATH/src/github.com/knqyf263

 

Navegamos al directorio

# cd $GOPATH/src/github.com/knqyf263

 

Clonamos el repo

# git clone https://github.com/knqyf263/gost.git

 

Accesamos al directorio

# cd gost

 

instalamos y compilamos

# make install

 

Por último los ejecutables lo hacemos accesibles al todo el sistema

# cp $GOPATH/bin/gost /usr/local/bin

 

Vamos hacer un symlink

# ln -s $GOPATH/src/github.com/knqyf263/gost/gost.sqlite3  /usr/share/vuls-data/gost.sqlite3

 

Creamos un directorio para los logs

# mkdir /var/log/gost

 

Le damos los persimos del usuario

# chmod 700 /var/log/gost

 

Ahora asignamos los permisos al usuariio prueba

# chown -R prueba /var/log/gost

 

Descargamos la base de datos issues y vulnerabilodades de debian

# gost fetch debian

 

Paso5: Descargamos y Configuramos Vuls

Ahora que contamos con las diversas base de datos de vulnerabilidades vamos a descargar e instalar vuls

 

Vamos a crear el repositorio de vuls

# mkdir -p $GOPATH/src/github.com/future-architect

 

Nos dirigimos a la ruta

# cd $GOPATH/src/github.com/future-architect

 

Clonamos el repositorio de Vuls

# git clone https://github.com/future-architect/vuls.git

Entramos al Vuls, recordamos que estamos dentro de la ruta $GOPATH/src/github.com/future-architect

# cd vuls

 

Compilamos e instalamos

# make install

Copiamos los ejecutables para que sean accesibles al sistema

# cp $GOPATH/bin/vuls /usr/local/bin

 

Vamos a ir a la ruta de vuls

# cd /usr/share/vuls-data

 

Creamos un archivo de configuración para vuls con el formato TOML, en la sección de slack debemos configurar nuestros datos de slack una vez creamos una aplicación de slack, comparto la siguiente guia para que puedan crear un app de slack y que puedan ser notificados en un canal de nuestra elección.

https://medium.com/@roo_harrigan/an-introduction-to-the-slack-api-easy-peasy-incoming-webhooks-62d0a8df4294

 

Creación de archivo config.toml

# nano config.toml

 

[cveDict]

type = "sqlite3"
SQLite3Path = "/usr/share/vuls-data/cve.sqlite3"

[ovalDict]

type = "sqlite3"
SQLite3Path = "/usr/share/vuls-data/oval.sqlite3"

[gost]
type = "sqlite3"
SQLite3Path = "/usr/share/vuls-data/gost.sqlite3"

[slack]
hookURL      = "your_hook_url"
channel      = "#your_channel_name"
authUser     = "your_username"
#notifyUsers  = ["@username"]

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

Debe verse de la siguiente manera

 

Verificamos la configuración

# vuls configtest


Escaneamos el servidor con el comando

# vuls scan

 

Los reporte podemos enviarlos a la integración con slack con el siguiente comando:

# vuls report -to-slack

 

El reporte de slack nos debe salir lo siguiente:

 

La pantalla de la consola es un poco confusa por lo que vamos a mostrarla pero no detalleremos demasiado, esto debe ser en la ruta de data de vuls para poder observar el resultado

# vuls tui

 

 

 

La herramienta es muy completa, tiene la facilidad que permite enviar los reports a slack para trabajo cplaborativo, lo que considero es un plus, muy similar a herramientas como Nessus, OpenVAS, tiene una opción para realizar análisis a múltiples hosts para ello utilizamos la cuenta de prueba, además podemos crear reportes periódicos creando un cron que a su vez nos llega a slack.

 

 

Referencias

https://www.howtoforge.com/how-to-install-and-use-vuls-vulnerability-scanner-on-ubuntu/

https://www.youtube.com/watch?v=eUwIQUhKGlE

¿Quieres aprender estas técnicas en profundidad?

Continúa tu ruta con Pentesting .

José Moreno

Escrito por

José Moreno

Purple Team

Jugador de HTB, script kiddie, apasionado por la seguridad informática especialmente red team, Miembro Fundador Asociación Panameña de Peritos en Informática Forense, Purple-Team UTP.

Sigue leyendo

Google Hacking
Recolección de Información

Google Hacking

Romario Miranda Paternina

 Google es uno de los buscadores más usados en el mundo, pero ¿sabías que con este puedes hacer técnicas de exposición de vulnerabilidad? Si, podemos realizar técnicas de análisis en servidores web o ftp; las malas configuración de personas que solo hacen la instalación por defectos y dejan puertas publicas abiertas para que cualquier usuario en la internet pueda entrar. Una búsqueda no es la combinación de datos de archivos almacenados en un servidor web, es decir que colocar en tu navegador de Google Linux, te podrán aparecer millones de coincidencias. Pero si sabemos hacer una búsqueda en Google podremos encontrar lo que deseamos.

Rubber Ducky DYI
Recolección de Información

Rubber Ducky DYI

José Moreno

Este artículo tiene como objetivo enseñar los pasos necesarios para crear nuestro Rubber Ducky utilizando una placa arduino uno o similares.

Proxy de Burp Suite.
Recolección de Información

Proxy de Burp Suite.

MMartin Frias

Hola a todos, soy Martín Frias, fundador de Coldd Security y escritor del blog The Hacker Snow, este es mi primer artículo de muchos que espero compartir aqui en BTA y vengo a comentarles acerca de Burp Suite, en concreto en este artículo sobre su proxy, bien, Burp es una herramienta que viene preinstalada en Kali, tiene muchísimas opciones, las más destacables son su proxy (en lo que nos centraremos), intruder y repeater, esta herramienta es de pago, de una suscripción anual por usuario, pero tiene una versión gratuita (Community Edition) que trae ciertas limitaciones, pero para una introducción a esta herramienta la versión gratuita nos basta y es en la que nos centraremos.