
Instal·lant i usant OpenVAS
Avui veurem una gran utilitat que podrem utilitzar per realitzar anàlisis de seguretat sobre la nostra infraestructura, què menys que de cop saber quantes vulnerabilitats tenim per estar una mica més segurs davant d'un atac d'un Virus, Troià o Ramon ware de torn. En aquest document instal·larem OpenVAS 9 en una màquina Debian 9 Stretch i veurem un ús bàsic per treure un informe, en un següent document l' integrarem amb… Nagis!
Comenzamos instalando y descargando los prerequisitos además de los fuentes de OpenVAS 9 y unos extras:
[sourcecode]apt-get install -y 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 xsltproc clang rsync rpm nsis alien sqlite3 libhiredis-dev libgcrypt11-dev libgnutls28-dev redis-server texlive-latex-base texlive-latex-recommended linux-headers-$(uname -r) python python-pip mingw-w64 heimdal-multidev libpopt-dev libglib2.0-dev gnutls-bin certbot nmap ufw[/sourcecode]
[sourcecode]
wget http://wald.intevation.org/frs/download.php/2420/openvas-libraries-9.0.1.tar.gz
wget http://wald.intevation.org/frs/download.php/2423/openvas-scanner-5.1.1.tar.gz
wget http://wald.intevation.org/frs/download.php/2448/openvas-manager-7.0.2.tar.gz
wget http://wald.intevation.org/frs/download.php/2429/greenbone-security-assistant-7.0.2.tar.gz
wget http://wald.intevation.org/frs/download.php/2397/openvas-cli-1.4.5.tar.gz
wget http://wald.intevation.org/frs/download.php/2377/openvas-smb-1.0.2.tar.gz
wget http://wald.intevation.org/frs/download.php/2401/ospd-1.2.0.tar.gz
wget http://wald.intevation.org/frs/download.php/2405/ospd-debsecan-1.2b1.tar.gz
wget http://wald.intevation.org/frs/download.php/2218/ospd-nmap-1.0b1.tar.gz
[/sourcecode]
Los descomprimimos con:
[sourcecode]for i in $(ls *.tar.gz); do tar zxf $i; Fet[/sourcecode]
Los compilamos y los instalamos:
[sourcecode]cd openvas-libraries-9.0.1
cmake . && make && make doc && make install
cd ../openvas-manager-7.0.2
cmake . && make && make doc && make install
cd ../openvas-scanner-5.1.1
cmake . && make && make doc && make install
cd ../openvas-cli-1.4.5
cmake . && make && make doc && make install
cd ../reenbone-security-assistant-7.0.2
cmake . && make && make doc && make install
cd ../ospd-1.2.0
python setup.py build && python setup.py install
cd ../ospd-debsecan-1.2b1
python setup.py build && python setup.py install
cd ../ospd-nmap-1.0b1
python setup.py build && python setup.py install[/sourcecode]
Editamos ‘/etc/redis/redis.conf’ para integrar Redis con OpenVAS, modificamos el puerto a 0 y descomentamos el fichero para Unix socket & sus permisos, quedando así:
[sourcecode]port 0
unixsocket /tmp/redis.sock
unixsocketperm 700[/sourcecode]
Reiniciamos el servicio de Redis para recargar la configuración:
[sourcecode]service redis-server restart[/sourcecode]
Creamos un enlace simbólico para que OpenVAS use el socket de Redis, confirmamos que las librerías compiladas anteriormente se han cargado correctamente y arrancamos el demonio de OpenVAS:
[sourcecode]ln -s /tmp/systemd-private-*-redis-server.service-*/tmp/redis.sock /tmp/redis.sock
ldconfig
openvassd[/sourcecode]
Es hora de actualizar las bases de datos y recrear la cache:
[sourcecode]greenbone-nvt-sync
greenbone-scapdata-sync
greenbone-certdata-sync
openvasmd –progress –rebuild[/sourcecode]
Continuamos creando el certificado autofirmado para el uso de https:
[sourcecode]openvas-manage-certs -a[/sourcecode]
Arrancamos el Scanner seguido del Manager de OpenVAS y el Greenbone Security Assistant con:
[sourcecode]openvassd
openvasmd
GSAD[/sourcecode]
Creamos un usuario admin
[sourcecode]openvasmd –create-user=admin –role=Admin[/sourcecode]
Creamos un fichero que nos permitirá actualizar las bases de datos de forma programada ‘vim/usr/local/sbin/openvas-db-update’ i hi afegim:
[sourcecode]#!/bin/bash
echo "Updating OpenVAS Databases"
greenbone-nvt-sync
greenbone-scapdata-sync
greenbone-certdata-sync[/sourcecode]
Lo hacemos ejecutable con ‘chmod +x /usr/local/sbin/openvas-db-update’, y lo programamos en cron para que se ejecute a diario a las 0h con:
[sourcecode]
crontab -e
0 0 * * * /usr/local/sbin/openvas-db-update[/sourcecode]
Creamos el servicio OpenVAS Manager con ‘vim /etc/systemd/system/openvas-manager.service’
[sourcecode]
[Unit]
Description=Open Vulnerability Assessment System Manager Daemon
Documentació=home: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[/sourcecode]
Ho fem executable: chmod +x /etc/systemd/system/openvas-manager.service Creamos el servicio OpenVAS Scanner con: ‘vim /etc/systemd/system/openvas-scanner.service’
[sourcecode]
[Unit]
Description=Open Vulnerability Assessment System Manager Daemon
Documentació=home: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
[/sourcecode]
Ho fem executable:
[sourcecode]chmod +x /etc/systemd/system/openvas-scanner.service[/sourcecode]
Creamos el servicio Greenbone Security Assistant con: ‘vim /etc/systemd/system/greenbone-security-assistant.service’
[sourcecode]
[Unit]
Descripció=Assistent de seguretat Greenbone
Documentació=home: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[/sourcecode]
Ho fem executable:
[sourcecode]chmod +x /etc/systemd/system/greenbone-security-assistant.service[/sourcecode]
Bé, ahora podemos probar la instalación si es correcta mediante un script que bajamos e ejecutamos:
[sourcecode]cd ~
wget –no-check-certificate https://svn.wald.intevation.org/svn/openvas/trunk/tools/openvas-check-setup
chmod +x openvas-check-setup
./openvas-check-setup –v9[/sourcecode]
Si tot ha anat bé, ahora podremos poner los servicios para que arranquen con el sistema de forma automática:
[sourcecode]systemctl enable openvas-manager.service
systemctl enable openvas-scanner.service
systemctl enable greenbone-security-assistant.service[/sourcecode]
Editamos /etc/systemd/system/redis.service, deberemos modificar el valor ‘PrivateTmp=no’ y debajo de ‘ReadWriteDirectories=-/var/run/redis’ añadimos ‘ReadWriteDirectories=-/tmp’.
Creamos este fichero: ‘vim /root/arranca_openvasmd.sh’ y lo hacemos ejecutable con el siguiente contenido:
[sourcecode]#!/bin/bash
/usr/local/sbin/openvasmd -a 127.0.0.1 -p 9391[/sourcecode]
Y finalizamos poniendolo en el cron para que cuando arranque el sistema lo ejecute, con ‘crontab -e’, hi afegim:
[sourcecode]@reboot /root/arranca_openvasmd.sh[/sourcecode]
Por fin ya podremos abrir un navegador contra la dirección IP de la máquina https://openvas, nos validaremos con el usuario que hemos creado en los pasos anteriores!
Tras loguearnos veremos un panel vacio, ya que todavía no tenemos tareas de análisis, sí vemos en cambio los resultados de la BD con las vulnerabilidades que tenemos. Lo primero de todo será dar de alta las máquinas a las que haremos un escaneo. “Configuration” > “Targets”.
Para crear un Target, debemos pulsar sobre el icono de la estrellica,
Podremos añadir diferentes destinos, bien rangos IP, equipos individuales, definir diferentes rangos de puertos o métodos de detección, además si queremos realizar los chequeos con credenciales para acceso por SSH, SMB, ESXi o SNMP. Bo, en este caso analizaré sólo un equipo, es un host ESXi de VMware, versió 6 Update 3, indicamos la dirección IP & posem en “Create”,
Una vez definido el Target, lo que haremos será crear la Tarea para ejecutarlo, anem a “Scans” > “Tasks”,
Y pulsamos de nuevo sobre la estrella para crear una Tarea nueva con “New Task”,
Indicamos un nombre a la tarea, añadimos el Target que queremos analizar y modificamos los parámetros a nuestro antojo para realizar los tests más o menos profundos, etc.… “Create” para crear la Tarea.
Veremos la tarea creada, si queremos ejecutarla ahora pulsaremos sobre el icono verde del Play!
… I res, esperamos mientras ejecuta todos los testeos que hayamos indicado sobre esta máquina…
Cuando se haya finalizado la tarea de análisis, podremos pinchar en la fecha del Report para visualizar los posibles riesgos que tiene la máquina,
Y nos mostrará las vulnerabilidades detectadas, podremos analizar el problema y su posible solución para corregir esto y evitar comprometer la información y el servicio de la máquina.
Como podréis imaginar, la herramienta nos da más posibilidades, curiosear y probar distintos tipos de escaneo. Os recomiendo que vayáis creando tareas individuales o bien una genérica con todos vuestros equipos añadiendo rangos IPs, no sólo para que nos saque los colores y nos pongamos las pilas con la corrección de los fallos de seguridad, si no por que los necesitaréis para un siguiente artículo que viene…