logo rss

Installer et utiliser Greenbone Vulnerability Manager dans la distribution Kali Linux

Logo Kali Linux Logo greenbone openvas

Greenbone Vulnerability Manager (anciennement OpenVAS) est un logiciel Open source qui inclus plusieurs outils (OpenVas, WebUI, …) pour réaliser des analyses de vulnérabilités.

En effet, nous pourrons depuis ce logiciel réaliser une analyse complète des vulnérabilités d'un réseau ou d'une seule machine.

Historiquement Greenbone Vulnerability Manager est un fork de Nessus qui est devenu aurjourd'hui un logiciel propriétaire.

Installer GVM

Installation

  • Mettre à jour les paquets :
kali@kali:~$ sudo apt update && sudo apt dist-upgrade
  • Installer les paquets logiciels suivant :
kali@kali:~$ sudo apt install gvm postgresql nsis
  • Lancer le script de mise en service :
    • Ce dernier effectuera les actions suivantes :
      • Démarrer les service et création de la base PostgreSQL
      • Création des fichiers certificats GVM
      • Application des permissions
      • Mise à jour des définitions de vulnérabilités
      • Création et paramétrage du compte admin
kali@kali:~$ sudo gvm-setup
  • Si le message d'erreur The default PostgreSQL version (16) is not 17 that is required by libgvmd apparait, il faudra intervertir les ports d'écoutes de PostgreSQL :
kali@kali:~$ sudo gvm-setup [>] Starting PostgreSQL service [-] ERROR: The default PostgreSQL version (16) is not 17 that is required by libgvmd [-] ERROR: libgvmd needs PostgreSQL 17 to use the port 5432 [-] ERROR: Use pg_upgradecluster to update your PostgreSQL cluster
  • Exemple ici avec la commande sed qui permet de paramétrer le port 5432 pour PostgreSQL 17 et 5433 pour PostgreSQL 16 :
kali@kali:~$ sudo sed -i 's/port = 5433/port = 5432/' /etc/postgresql/17/main/postgresql.conf kali@kali:~$ sudo sed -i 's/port = 5432/port = 5433/' /etc/postgresql/16/main/postgresql.conf
  • Redémarrer le service PostgreSQL pour que les modifications soient prises en compte :
kali@kali:~$ sudo systemctl restart postgresql
[…] [*] Please note the password for the admin user [*] User created with password 'xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxx'. [>] You can now run gvm-check-setup to make sure everything is correctly configured Bien noter le mot de passe de l'utilisateur admin.
  • Démarrer les services gvmd et gsad :
kali@kali:~$ sudo systemctl start gvmd.service && sudo systemctl start gsad.service
  • Lancer le script de vérification de configuration :
kali@kali:~$ sudo gvm-check-setup [>] It seems like your GVM-23.11.0 installation is OK.
  • Vérifier que le service gvmd est correctement lancé :
kali@kali:~$ sudo systemctl status gvmd.service
  • Vérifier que le service WebUI est en attente de clients :
kali@kali:~$ sudo ss -ltn4p State Recv-Q Send-Q Local Address:Port Peer Address:Port Process LISTEN 0 4096 127.0.0.1:9392 0.0.0.0:* users:(("gsad",pid=2243,fd=10))
  • Donner les droits de création de taches à l'utilisateur admin :
kali@kali:~$ sudo gvmd --modify-setting 78eceaec-3385-11ea-b237-28d24461215b --value admin
  • On devrait maintenant pouvoir se connecter à l'adresse https://127.0.0.1:9392 avec le login admin :
Page de connexion de l'assistant de sécurité Greenbone affichant les champs du nom d'utilisateur et du mot de passe

Changer l'interface de connection WebUI (Optionnel)

Dans sa configuration par défaut Greenbone Security Assistant (GSA) (WebUI) est seulement accessible via l'adresse locale (127.0.0.1). Pour pouvoir se connecter à l'interface Web depuis n'importe quel hôte du réseau nous aurons besoins de modifier la configuration systemctl des services.

  • Modifier le fichier /usr/lib/systemd/system/gvmd.service :
[Unit] Description=Greenbone Vulnerability Manager daemon (gvmd) After=network.target networking.service postgresql.service ospd-openvas.service Wants=postgresql.service ospd-openvas.service Documentation=man:gvmd(8) ConditionKernelCommandLine=!recovery [Service] Type=forking User=_gvm Group=_gvm PIDFile=/run/gvmd/gvmd.pid RuntimeDirectory=gvmd RuntimeDirectoryMode=2775 #ExecStart=/usr/sbin/gvmd --osp-vt-update=/run/ospd/ospd.sock --listen-group=_gvm ExecStart=/usr/sbin/gvmd --osp-vt-update=/run/ospd/ospd.sock -a 0.0.0.0 Restart=always TimeoutStopSec=10 [Install] WantedBy=multi-user.target
  • Modifier le fichier /usr/lib/systemd/system/gsad.service :
[Unit] Description=Greenbone Security Assistant daemon (gsad) Documentation=man:gsad(8) https://www.greenbone.net After=network.target gvmd.service Wants=gvmd.service [Service] Type=forking User=_gvm Group=_gvm RuntimeDirectory=gsad RuntimeDirectoryMode=2775 PIDFile=/run/gsad/gsad.pid #ExecStart=/usr/sbin/gsad --foreground --listen 127.0.0.1 --port 9392 ExecStart=/usr/sbin/gsad --mlisten=KALI_IP_ADDRESS --listen 0.0.0.0 --port 9392 ExecStart=/usr/sbin/gsad --foreground --mlisten=192.168.1.19 --listen 0.0.0.0 --port 9392 Restart=always TimeoutStopSec=10 [Install] WantedBy=multi-user.target Alias=greenbone-security-assistant.service
  • Recharger la configuration systemd :
kali@kali:~$ sudo systemctl daemon-reload
  • Redémarrer les services gvm :
kali@kali:~$ sudo systemctl restart gvmd.service kali@kali:~$ sudo systemctl restart gsad.service

Commandes Utiles

  • Mettre à jour le Network Vulnerability Tests :
kali@kali:~$ sudo -u _gvm greenbone-nvt-sync
  • Mettre à jour les feeds :
kali@kali:~$ sudo greenbone-feed-sync --type CERT kali@kali:~$ sudo greenbone-feed-sync --type SCAP kali@kali:~$ sudo greenbone-feed-sync --type GVMD_DATA
  • Créer un compte gvadmin :
kali@kali:~$ sudo runuser -u _gvm -- gvmd --create-user=gvadmin --password=stPassw0rd --disable-password-policy
  • Obtenir l'UUIDs de tous les utilisateurs :
kali@kali:~$ sudo runuser -u _gvm -- gvmd --get-users --verbose
  • Changer le mot de passe d'un utilisateur :
kali@kali:~$ sudo runuser -u _gvm -- gvmd --user=gvadmin --new-password=gvadmin

Utiliser GVM

Nous allons voir ici comment réaliser une première analyse de vulnérabilités d'un hôte.

Créer une cible

  • Aller dans Targets :
Interface de l'assistant de sécurité Greenbone mettant en évidence le menu Configuration et l'option Cibles
  • Cliquer sur le lien de Nouvelle Cible :
Interface de l'assistant de sécurité Greenbone montrant l'icône Nouvelle cible dans la section Cibles
  • Définir la cible à analyser en paramétrant l'adresse ip et en lui donnant un Nom :
Nouvelle fenêtre de configuration de la cible dans l'assistant de sécurité Greenbone, permettant de définir une cible avec une adresse IP manuelle et de sauvegarder les paramètres.

Création d'une tâche

  • Ouvrir Tasks :
Interface de l'assistant de sécurité Greenbone montrant le menu Scans et mettant en évidence l'option Tasks (tâches)
  • Cliquer sur l'icône de création de Nouvelle Tache :
Interface de l'assistant de sécurité Greenbone mettant en évidence l'option Nouvelle tâche dans le menu Analyses
  • Définir la Tache en précisant son Nom, en associant la Cible et en cochant Schedule Once :
Nouvelle fenêtre de configuration des tâches dans l'assistant de sécurité Greenbone, permettant de définir une tâche d'analyse avec la cible et le calendrier sélectionnés.
  • Cliquer sur le bouton Play afin de Lancer la tache :
Tableau de bord de l'assistant de sécurité Greenbone montrant l'état de la tâche avec le bouton de lecture en surbrillance pour lancer une analyse
  • Après quelques minutes, une fois la tache terminée, cliquer sur le lien pour accéder au dernier rapport du scan de vulnérabilités :
Tableau de bord de l'assistant de sécurité Greenbone affichant l'état d'avancement de la tâche, les résultats de sévérité et le lien vers le dernier rapport.
  • On devrait accéder à un rapport complet :
Rapport d'analyse des vulnérabilités de l'assistant de sécurité Greenbone montrant les problèmes détectés avec les niveaux de gravité et les hôtes affectés

Dépannage

À la création de la première tache, juste après l'installation, on pourra se trouver à avoir l'erreur suivante : Failed to find config 'daba56c8-73ec-11df-a475-002264764cea'. Cela peut venir du fait que l'utilisateur n'a pas les droits de créer de tache. Cela peut également venir du fait que tout les éléments n'ont pas encore été téléchargé. Voyons ci-dessous comment faire pour résoudre cela.

  • Donner les droits de création de taches à l'utilisateur admin :
kali@kali:~$ sudo gvmd --modify-setting 78eceaec-3385-11ea-b237-28d24461215b --value admin
  • Cela peut également venir du fait qu'une mise à jour est en cours (processur particulièrement long lors de la première initialisation), on pourra pour cela surveiller les logs pour contrôler l'avancement :
kali@kali:~$ sudo tail -f /var/log/gvm/gvmd.log md manage: INFO:2024-11-30 16h50.23 utc:4774: Updating /var/lib/gvm/scap-data/nvdcve-2.0-2011.xml md manage: INFO:2024-11-30 16h51.22 utc:4774: Updating /var/lib/gvm/scap-data/nvdcve-2.0-2018.xml md manage: INFO:2024-11-30 16h53.13 utc:4774: Updating /var/lib/gvm/scap-data/nvdcve-2.0-2019.xml
  • Et également vérifier l'activité du processus gvmd dans le dossier /var/lib/gvm/ :
kali@kali:~$ sudo lsof +D /var/lib/gvm/ lsof: WARNING: can't stat() fuse.gvfsd-fuse file system /run/user/1000/gvfs Output information may be incomplete. lsof: WARNING: can't stat() fuse.gvfsd-fuse file system /run/user/109/gvfs Output information may be incomplete. COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME gvmd 4771 _gvm 18uW REG 8,1 0 1493222 /var/lib/gvm/feed-update.lock gvmd 4774 _gvm 18u REG 8,1 0 1493222 /var/lib/gvm/feed-update.lock gvmd 4774 _gvm 20r DIR 8,1 4096 1453575 /var/lib/gvm/scap-data gvmd 4774 _gvm 21r REG 8,1 107150285 1493243 /var/lib/gvm/scap-data/nvdcve-2.0-2020.xml
Creative Commons License
This work is licensed under a Creative Commons Attribution-NonCommercial-ShareAlike 4.0 International License.

Contact :

adresse mail de contact