OpenVAS/GVM – scan de vulnérabilités

Cet article est obsolète, préférez cet article : https://www.io-expertises.fr/greenbone-openvas-dans-un-conteneur/

Concept d’OpenVAS

OpenVAS est  un framework, et un fork (ou une branche dérivée) de NESSUS. Nessus étant sous licence propriétaire, OpenVAS s’est développé sous licence GNU GPL.
Il est constitué d’éléments Backoffice :
– Scanner en charge du scan des vulnérabilités
-Manager qui contient toute l’intelligence du framework, il contrôle notamment le scanner, écrit dans la base SQLite. Il planifie, les audits, génère les reports, …
– Administator qui se charge de la gestion des utilisateurs, de l’alimentation en modèle de vulnérabilités ou en plugins.

D’éléments FrontEnd :
o Interface CLI en ligne de commande pour transmettre les ordres d’audit au Manager
o Greenbone Security Desktop, l’interface complète qui suit via un tableau de bord l’état des audits, des vulnérabilités. Disponible pour Linux comme pour Windows.
o GreenBone Security Assistant, un client http/HTTPS pour le Manager.
A noter que la solution OpenVAS s’appuie sur un ensemble de vulnérabilités connues (environ +70 000 NVTs connues en 2021 – NVT = Network Vulnerabilities Tests).

Le schéma présente les différents composants de l’architecture d’OpenVAS ainsi que les sources d’alimentation des NVTs.
Depuis 2017, il existe 2 éditions bien distinctes : l’edition Entreprise (GSF = Greenbone Security Feed) et l’édition Communautaire (GCF = Greenbone Communauty Feed). Le tableau ci-dessous précise  les NVTs auxquels vous pourrez souscrire.

 Il peut être utile de rappeler que cet outil ne peut être utilisé sur son propre réseau, uniquement à destination de son environnement, à l’exclusion de tout autre serveur, application, site web tiers.

Installation/Configuration – Ubuntu 20

L’installation documentée est sur une base Ubuntu 20 LTS. La version d’OpenVAS/GVM installée est la version 20.08.
L’une des sources principales d’installation est issue de https://launchpad.net/~mrazavi/+archive/ubuntu/gvm

Installation de OpenVas :

mise à jour préalable :

sudo apt update
sudo apt upgrade

Ajout du repository qui contient les binaires de GVM

sudo apt install software-properties-common
sudo add-apt-repository ppa:mrazavi/gvm

Installation de Postgresql

sudo apt install postgresql
sudo apt update
  • Installation de GVM
sudo apt install gvm
  • A la question « Do you want to enable redis unix socket ? », validez par Yes

Télécharger les feeds NVT, CERT et SCAP et les fichiers de config (attention, cela prend beaucoup de temps, de plus en cas d’interruption vous ne pourrez pas relancer la synchro avant 1h) :

sudo -u gvm -g gvm greenbone-nvt-sync
sudo -u gvm -g gvm greenbone-feed-sync --type CERT
sudo -u gvm -g gvm greenbone-feed-sync --type SCAP
sudo -u gvm -g gvm greenbone-feed-sync --type GVMD_DATA
export $(sudo cat /etc/default/gvmd-pg)
sudo -E -u gvm -g gvm gvmd –-rebuild

Par défaut le mot de passe du compte admin est « admin », pour le changer  :

sudo gvmd --user=admin --new-password=autrechosequadmin
sudo -Hiu gvm gvmd --user=gvmadmin --new-password=<PASSWORD>

Pour pouvoir vous connecter sur l’interface Web depuis une IP autre que localhost , il faut remplacer l’IP 127.0.0.1 par l’ip locale du serveur dans le fichier ci-dessous :

sudo nano /etc/default/gsad

Redémarrer les services pour prendre en compte les modifications

sudo systemctl daemon-reload
sudo service gvmd restart
sudo service gsad restart

Installation/Configuration – CentOS 8.4

L’installation documentée est sur une base CentOS 8.4. La version d’OpenVAS/GVM installée est la version 21.04.
La source d’information pour cette section : https://www.libellux.com/openvas/#install-openvas-20-08-centos

Installation de OpenVas :

mise à jour préalable :

sudo apt update
sudo apt upgrade

Désactiver SELINUX :

  • vérifier le status de SE linux
  • editer le fichier de config
  • positionner SELINUX  à disabled
  • rebooter
  • vérifier le status.
sudo sestatus
sudo setenforce 0
sudo nano /etc/selinux/config
sudo shutdown -r now
sestatus

Installation des prequis :

wget -q -O - https://updates.atomicorp.com/installers/atomic | sudo sh
sudo yum config-manager --set-enabled PowerTools
sudo yum install epel-release
dnf --enablerepo=powertools install perl-XML-Twig
  • Installation de GVM
sudo yum install gvm
  • Lancer la configuration de GVM

Cette opération télécharge également  les feeds NVT, CERT et SCAP et les fichiers de config (attention, cela prend beaucoup de temps, de plus en cas d’interruption vous ne pourrez pas relancer la synchro avant 1h) :

sudo gvm-setup

En fin de setup, vous devrez spécifier un mot de passe pour le compte admin.

L’url de connexion est directement accessible via votre IP (pas seulement 127.0.0.1).

Connectez vous sur l’URL de GVM https://mon@ip

Installation/Configuration – Kali 2021

L’installation documentée est sur une base CentOS Kalie2021. La version d’OpenVAS/GVM installée est la version 21.04.
La source d’information pour cette section : https://linuxhint.com/install-openvas-kali-linux/

Installation de OpenVas :

mise à jour préalable :

sudo apt-get update
sudo apt-get dist-upgrade
  • Installation de GVM
sudo apt-get install openvas
  • Lancer la configuration de GVM

Cette opération télécharge également  les feeds NVT, CERT et SCAP et les fichiers de config (attention, cela prend beaucoup de temps, de plus en cas d’interruption vous ne pourrez pas relancer la synchro avant 1h) :

sudo gvm-setup

En fin de setup, le mot de passe du compte admin est spécifié.

Pour modifier l’@IP de connection (et permettre un accès distant) :

sudo nano /lib/systemd/system/greenbone-security-assistant.service

Remplacez la première IP 127.0.0.1 par votre @IP réelle.

Les commandes pour arrêter/démarrer GVM :

sudo gvm-stop

sudo gvm-start

Vérifiez que l’installation soit sans erreur :

sudo gvm-check-setup

Connectez vous sur l’URL de GVM https://mon@ip:9392

Mon premier scan !

Avant de commencer, vérifiez dans le menu Administration / Feedstatus que le status soit bien à Current pour les feed.

  • La connexion à l’interface se fait via https://@ip:9392 avec le login admin et le mot de passe défini plus haut.
  • Deux méthodes pour lancer un audit depuis Openvas :
  • la plus rapide (et la moins efficace)
    1. aller dans le menu Scans / Tasks
    2. cliquer sur l’icone assistant et sélectionnez Task  Wizard
    3. saisir l’adresse IP à scanner et cliquer sur Start Scan
  • la plus complète : cf paragraphe ci-dessous.
  • Un scan « complet »
  • Le principe d’un scan dans Openvas  consiste à configurer au préalable son environnement de test ; cela consiste à définir au préalable les éléments suivants :
  • le type de scan (listés dans Configuration / Scan Configs) qui définir le nombre de vulnérabilités testées (nombre de NVTs actives), ce qui aura un impact sur la richesse des résultats, la lenteurs d’exécution,.. il est possible de créer, personnaliser son propre scan en utilisant le bouton News Scan Config (étoile blanche/bleue en haut à gauche).
  • les identifiants (dans Configuration/ Credentials). Pour le cas, où vous avez déjà des indices sur les identifiants, mots de passe à utiliser pour l’exécution de certains tests applicatifs : vous pouvez déclarez ceux-ci en créant un nouveau « Credential »
  • la liste des ports (dans Configuration/ Port Lists) ; un certain nombre de listes de port est déjà préconfigurée, mais vous pouvez ajouter/créer une liste de ports personnalisés comme par exemple  vouloir scanner que ce qui touche au HTTPS (en ajouter une nouvelle liste, déclarer dans port range : T:443 pour ne scanner que le port 443 sur TCP).
  • et enfin, les cibles (dans Configuration / targets) ; ici vous déclarer vers quelles IP l’audit va s’exécuter, en se basant sur quels ports (présents dans Port Lists), en utilisant quelle authentification (parmi celles présentent dans Credential) et enfin avec quelle méthode de détection (Alive Test) : le choix par défaut « Scan Config Default » est trop souvent bien inadapté, il est préférable de test avec TCP-ACK Service Ping  ou ICMP & TCP-Ack Service Ping (voire ARP Ping si vous êtes sur un réseau local direct).
  • Quand vous avez précisé tous les paramètres, cliquez sur CREATE.
  • Allez ensuite dans Scans /Tasks, puis cliquez sur l’icone NEW TASK
  • Nommez votre tâche d’audit, sélectionnez la TARGET créée précédemment, choisissez le type de scan (Full, Fast, ou personnalisé), si vous avez plusieurs IP vous pouvez choisir un scan basé sur un choix séquentiel ou aléatoire, et enfin vous pouvez ajuster (baisser)  le nombre d’IP scannée en simultanée ainsi que le nombre de tests de vulnérabilités simultanés par IP.
  • Puis créez la tâche en finissant sur Create.
  • Retournez dans le menu Scans / Tasks puis au regard de votre nouvelle tâche, cliquez sur le bouton Play pour lancer l’exécution de l’audit. Celui-ci sera terminé lorsque le status passera à DONE.
  • la colonne Reports indiquera le nombre d’audit exécuté, la dernière date de l’audit et le niveau de sévérité détecté.
  • En cliquant sur la date der dernier audit vous afficherez le résultat de l’audit
  • En cliquant sur chacune des vulnérabilités, vous aurez accès au résumé, au détail de la détection, la solution proposées, les logiciels affectés, la méthode de détection ainsi que les références CVE/CERT ou autres organisme.
  • Sur la page de report, en haut à gauche, vous pourrez exporter le rapport complet au format XML, HTML ou PDF (entre autres).
  • Exemple PDF
  • Exemple d’un scan sur un Windows 2008R2 standard, mise à jour en date de 07/2016, donc vulnérable à Wannacry
  • reportW2K8
  • Richesse d’Openvas
  • Ce qu’on voit ici est puissant et plutôt basique : OPENVas offre des fonctionnalités à ne pas négliger comme, la programmation régulière d’audit afin d’identifier automatiquement si de nouvelles vulnérabilités sont trouvées (par exemple après une livraison ou mise à jour applicative) ; il est également possible de générer des alertes par mail au delà d’un certain seuil, …
  • Liens complémentaires :
  • http://wiki.networksecuritytoolkit.org/index.php/OpenVAS
  • https://www.blackmoreops.com/2014/03/03/20-things-installing-kali-linux/
  • http://docs.kali.org/general-use/kali-linux-sources-list-repositories
  • https://hackertarget.com/openvas-9-install-ubuntu-1604/
  • Article sous licence Creative Commons « CC-NC »

7 thoughts on “OpenVAS/GVM – scan de vulnérabilités”

      1. Bonjour,
        La version NMAP 5.51 est valable au niveau du site web officiel de NMAP https://nmap.org/dist-old/
        J’ai essayé avec la version 6.47 mais ça ne marche pas correctement (au niveau du scan via les scripts NSE de NMAP), j’ai suivi le tutoriel et j’ai téléchargé la version 5.51.6 du site que je viens de mentionner, le plugin NMAP NASL Wrapper marche correctement (détection des ports ouverts) mais les scripts NSE de NMAP ne marchent toujours pas.
        Finalement, il fallait télécharger NMAP 5.51 (non pas 5.51.6) pour utiliser les scripts NSE.

  1. Merci pour se tuto.
    Je suis stagiaire en charge de mener une opération d’audit d’une plateforme de service. Donc j’ai besoin de conseil sur l’outils idéal et les étapes a suivre si possible svp.

Répondre à Olivier THEBAUD Annuler la réponse

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *