OpenVAS (Open Vulnerability Assessment System) se denominó históricamente como
GNessus, ya que esta herramienta proviene de un grupo de desarrolladores que trabajaban
en el software “Nessus”, al cambiar este el tipo de licenciamiento, debieron decidir trabajar
en esta variante, y, bautizarla con otro nombre.

Como he indicado antes, iremos viendo que este software hace más cosas que escanear puertos, ya que integra un conjunto de herramientas accesibles desde un portal web, con el que no solo escanearemos si no que podremos gestionar de manera centralizada las vulnerabilidades de diversos sistemas.
Todos estos módulos que componen OpenVAS son software libre, y la mayoría están
distribuidos bajo la licencia GPL.

Caracteristicas principales

  • Escaneo concurrente de múltiples nodos.
  • Soporte SSL
  • Soporte para WMI
  • Escaneo automático temporizado.
  • Reportes en múltiples formatos (XML, HTML, LaTex, entre otros)
  • Servidor web integrado.
  • Multiplataforma
  • I18n

Instalacion OpenVAS

Actualizamos el sistema operativo

Primer paso es actualizar todos los respositorios de nuestra maquina y el sistema operativo apt update y apt dist-upgrade

Dependencias necesarias

apt install build-essential cmake bison flex libpcap-dev
pkg-config libglib2.0-dev libgpgme11-dev uuid-dev sqlfairy
xmltoman doxygen libssh-dev libksba-dev libldap2-dev
libsqlite3-dev libmicrohttpd-dev libxml2-dev libxslt1-dev
3xsltproc clang rsync rpm nsis alien sqlite3 libhiredis-dev
libgcrypt11-dev libgnutls28-dev redis-server texlive-latex-base
texlive-latex-recommended linux-headers-$(uname -r)

Descarga y compilación de paquete necesarios

Creamos una carpeta que se llamara «openvas» mkdir openvas en la cual descargaremos y compilaremos todos los paquete descargados

Descargamos los paquetes con wget en la carpeta creada anteriormente

wget
http://wald.intevation.org/frs/download.php/2351/openvas-librarie
s-8.0.8.tar.gz
wget
http://wald.intevation.org/frs/download.php/2367/openvas-scanner-
5.0.7.tar.gz
wget
http://wald.intevation.org/frs/download.php/2359/openvas-manager-
6.0.9.tar.gz
wget
http://wald.intevation.org/frs/download.php/2363/greenbone-securi
ty-assistant-6.0.11.tar.gz
wget
http://wald.intevation.org/frs/download.php/2332/openvas-cli-1.4.
4.tar.gz
wget http://nmap.org/dist/nmap-5.51.6.tgz

Y los descomprimimos

tar xvf greenbone-security-assistant-6.0.11.tar.gz
tar xvf openvas-libraries-8.0.8.tar.gz
tar xvf openvas-scanner-5.0.7.tar.gz
tar xvf openvas-manager-6.0.9.tar.gz
tar xvf openvas-cli-1.4.4.tar.gz
tar xvf nmap-5.51.6.tgz

Y por ultimo compilamos e instalamos todos los paquete:

cd openvas-libraries-8.0.8
cmake .
make
make doc
make install
cd ..

cd openvas-manager-6.0.9/
cmake .
make
make doc
make install
cd ..

cd openvas-scanner-5.0.7/
cmake .
make
make doc
make install
cd ..

cd openvas-cli-1.4.4/
cmake .
make
make doc
make install
cd ..

cd greenbone-security-assistant-6.0.11/
cmake .
make
make doc
make install
cd ..

cd nmap-5.51.6
./configure
make
make install
cd ..

ldconfig

Script instalación

Creamos un script para la instalación, que vamos a llamar openvas-setup:

#!/bin/bash
if ! grep -q "^unixsocket /tmp/redis.sock" /etc/redis/redis.conf
; then
sed -i -e 's/^\(#.\)\?port.*$/port 0/' /etc/redis/redis.conf
sed -i -e 's/^\(#.\)\?unixsocket \/.*$/unixsocket
\/tmp\/redis.sock/' /etc/redis/redis.conf
sed -i -e 's/^\(#.\)\?unixsocketperm.*$/unixsocketperm 700/'
/etc/redis/redis.conf
fi
service redis-server restart
test -e /usr/local/var/lib/openvas/CA/cacert.pem ||
openvas-mkcert -q
if (openssl verify -CAfile
/usr/local/var/lib/openvas/CA/cacert.pem \
/usr/local/var/lib/openvas/CA/servercert.pem | grep -q
^error); then
openvas-mkcert -q -f
fi
openvas-nvt-sync
openvas-scapdata-sync
openvas-certdata-sync
if ! test -e /usr/local/var/lib/openvas/CA/clientcert.pem || \
! test -e
/usr/local/var/lib/openvas/private/CA/clientkey.pem; then
openvas-mkcert-client -n -i
fi
if (openssl verify -CAfile
/usr/local/var/lib/openvas/CA/cacert.pem \
/usr/local/var/lib/openvas/CA/clientcert.pem |grep -q
^error); then
openvas-mkcert-client -n -i
fi
openvassd
openvasmd --migrate
openvasmd --progress --rebuild
6openvassd
openvasmd
gsad
if ! openvasmd --get-users | grep -q ^admin$ ; then
openvasmd --create-user=admin
fi

Y ejecutamos el script bash openvas-setup

Creación de procesos

Para la utilización mas sencilla de «OpenVAS» vamos a crear los siguientes ficheros y
vamos a darles a todo permisos de ejecución chmod +x

/etc/systemd/system/openvas-manager.service

[Unit]
Description=Open Vulnerability Assessment System Manager Daemon
Documentation=man:openvasmd(8) http://www.openvas.org/
Wants=openvas-scanner.service
[Service]
Type=forking
PIDFile=/usr/local/var/run/openvasmd.pid
ExecStart=/usr/local/sbin/openvasmd
--database=/usr/local/var/lib/openvas/mgr/tasks.db
ExecReload=/bin/kill -HUP $MAINPID
# Kill the main process with SIGTERM and after TimeoutStopSec
(defaults to
# 1m30) kill remaining processes with SIGKILL
KillMode=mixed
[Install]
WantedBy=multi-user.target

/etc/systemd/system/openvas-scanner.service

[Unit]
Description=Open Vulnerability Assessment System Scanner Daemon
Documentation=man:openvassd(8) http://www.openvas.org/
After=redis-server.service
Requires=redis-server.service
[Install]
WantedBy=multi-user.target
[Service]
Type=forking
PIDFile=/usr/local/var/run/openvassd.pid
ExecStart=/usr/local/sbin/openvassd
ExecReload=/bin/kill -HUP $MAINPID
# Kill the main process with SIGTERM and after TimeoutStopSec
(defaults to
# 1m30) kill remaining processes with SIGKILL
KillMode=mixed

/etc/systemd/system/greenbone-security-assistant.service

[Unit]
Description=Greenbone Security Assistant
Documentation=man:gsad(8) http://www.openvas.org/
Wants=openvas-manager.service
[Service]
Type=simple
PIDFile=/usr/local/var/run/gsad.pid
ExecStart=/usr/local/sbin/gsad --foreground
[Install]
WantedBy=multi-user.target

Cambiar contraseña admin

Cambiamos la contraseña del usuario admin de openvas openvasmd --user=admin --new-password=new_password donde «new_password» es la contraseña que consideres oportuna

Por último arrancamos los servicios creados

Solo nos quedara arrancar los servicios y ya lo tendremos operativo

systemctl start openvas-manager.service
systemctl start openvas-scanner.service
systemctl start greenbone-security-assistant.service

Uso OpenVAS

Por último vamos a observar su funcionamiento con un escaneo de una ip que tengo en mi
red, para ello accedemos a la ip de la máquina virtual que hemos creado para instalar
OpenVAS, una vez dentro tendremos que insertar las credenciales que en este caso es
“admin, admin”, y realizamos el escaneo rápido, presionando sobre la barita morada que tenemos y introducimos la IP en la parte derecha, esto realizara un escaneo y podremos observar las vulnerabilidades:

Ejemplo de un escaneo finalizado

Aqui observamos que el escaneo ya ha finalizado

Clicamos sobre el escaneo y podemos observar los resultados todavia mas detallados de las posibles vulnerabilidades

Y por ultimo vemos una lista de las diferentes comprobaciones que ha realizado