
Fidelis Network and Deception - Escalade de privilèges par permissions de fichiers non sécurisées
L'exploit a été approuvé pour une diffusion publique par le gouvernement des États-Unis. Remerciements particuliers aux militaires et aux agents gouvernementaux chargés d'approuver la documentation pour une distribution illimitée. Veuillez vous référer aux numéros OTR suivants :
Date: 20220516 0123H UTC
Exploit Author: Henry Reed, The Aerospace Corporation
Vendor Homepage: https://fidelissecurity.com/
Affected Versions:
Tested on:
CVE: CVE-2022-0997
Description CVE: Des permissions de fichiers inappropriées dans les composants CommandPost, Collector et Sensor de Fidelis Network and Deception permettent à un attaquant disposant d'un accès local administratif à l'interface en ligne de commande de modifier les fichiers de script concernés, ce qui pourrait entraîner l'exécution de commandes arbitraires en tant que root lors d'une connexion ultérieure par un utilisateur root. La vulnérabilité est présente dans les versions de Fidelis Network and Deception antérieures à 9.4.5. Des correctifs et des mises à jour sont disponibles pour remédier à cette vulnérabilité.
Les scripts du répertoire /etc/profile.d/ sont lancés lors de la connexion. L'utilisateur fidelis possède le script login.sh, ce qui lui permet de modifier arbitrairement le fichier. Lors d'une connexion ultérieure par un utilisateur root, ce script est lancé, permettant à un adversaire d'obtenir une exécution de code arbitraire en tant que root.
Il est recommandé aux utilisateurs concernés de Fidelis Deception ou Fidelis Network de mettre à jour leur logiciel pour corriger cette vulnérabilité. Il est également recommandé à tous les utilisateurs, qu'ils soient ou non affectés par cette vulnérabilité, de désactiver l'accès shell à leurs produits Fidelis après la configuration initiale.
Si, pour une raison quelconque, l'une ou l'autre de ces solutions n'est pas possible, une mesure d'atténuation pour le fichier vulnérable est décrite dans ce document. D'après les tests effectués par l'auteur, il semble que les utilisateurs devront utiliser la vulnérabilité pour élever leurs privilèges avant de pouvoir appliquer les mesures d'atténuation décrites. C'est pourquoi il est fortement recommandé de mettre à jour Fidelis et de désactiver SSH.
Tested on:
Les permissions de propriété mal configurées sur /etc/profile.d/login.sh permettent à l'utilisateur fidelis d'élever ses privilèges au niveau de l'utilisateur root dans plusieurs produits Fidelis. Les scripts dans /etc/profile.d sont lancés chaque fois qu'un utilisateur ouvre un shell. Le fichier appartient à l'utilisateur fidelis, ce qui lui permet de modifier arbitrairement le script et, lorsque l'utilisateur root se connecte, d'exécuter du code arbitraire, tel qu'un reverse shell.
$ vim /etc/profile.d/login.sh
La vulnérabilité a été découverte pour la première fois à l'aide de LinPEAS, un script d'énumération d'escalade de privilèges sous Linux:

Notez le texte en surbrillance rouge, "You have write privileges over /etc/profile.d/login.sh". La sortie en surbrillance rouge indique une confiance élevée dans le fait que l'exploit est fonctionnel.
Chaque catégorie potentielle d'exploits révélés par LinPEAS est accompagnée d'un lien vers un guide sur nook.hacktricks.xyz expliquant comment exploiter la vulnérabilité. Après une lecture rapide, il a été décidé qu'un reverse shell via Python2 serait le moyen le plus simple d'exploiter cette vulnérabilité ; cependant, tout autre code aurait également pu être utilisé. Le nouveau code commence à l'instruction if if [[ $(whoami) = root ]]:

Après avoir ajouté le reverse shell à login.sh, nous simulons une connexion root en nous connectant manuellement en tant que cet utilisateur. Notez que dans le monde réel, l'attaquant devrait attendre qu'un administrateur se connecte manuellement en tant qu'utilisateur root.

L'attaquant obtient alors un reverse shell root:

Changer le propriétaire utilisateur et groupe de /etc/profile.d/login.sh en root:root et n'autoriser que les permissions de lecture et d'exécution à la catégorie « autres » d'utilisateurs sur /etc/profile.d/login.sh atténuerait cette vulnérabilité:
