
Ivanti Secure Access (anciennement Pulse Secure) élévation de privilèges Cobalt Strike BOF (CVE-2023-35080).
Ivanti Secure Access (anciennement Pulse Secure) élévation de privilèges Cobalt Strike BOF (CVE-2023-35080).
Exploit par Alex et BOF par Tijme. Rendu possible par Northwave Cyber Security
Il s'agit d'un fichier objet de beacon (BOF) Cobalt Strike (CS) et d'un exécutable qui exploitent le client VPN Ivanti Secure Access (anciennement Pulse Secure) (CVE-2023-35080). Depuis un mode utilisateur à faibles privilèges, il exploite une vulnérabilité dans le pilote du noyau pour remplacer les privilèges du jeton du processus beacon par ceux d'un jeton de processus système. Le lien symbolique du pilote du noyau possède une ACL définissant que Everyone peut ouvrir un handle sur celui-ci. Les recherches qui ont mené à la découverte de cette vulnérabilité ont été présentées à RedTreat 2023 et BSIDES London 2023 (présentation).
L'exploit a été développé sur Windows 10 Pro 22H2 10.0.19045 (x64). Il a ensuite été modifié et testé pour fonctionner sur Windows 11 Pro 23H2 22631 (x64). D'autres versions de Windows pourraient ne pas être prises en charge par défaut. Liste complète des versions de Windows testées et prises en charge :
Clonez d'abord ce dépôt. Ensuite, examinez le code, compilez-le à partir des sources (nécessite MinGW) et utilisez-le dans Cobalt Strike ou en tant que fichier PE autonome.
make
Important ! Effectuez les étapes suivantes dans l'ordre (depuis un mode utilisateur à faibles privilèges) :
Tout d'abord, assurez-vous que le pilote vulnérable est en cours d'exécution. S'il ne tourne pas, pas de panique ! Vous pouvez le démarrer depuis un mode utilisateur à faibles privilèges. Le nom du pilote commence par jnprTdi_ et se trouve dans HKLM\SYSTEM\CurrentControlSet\Services. Il est toujours installé lorsque le client VPN est installé, mais il n'est pas exécuté par défaut.
Le pilote vulnérable démarre lorsqu'un utilisateur (à faibles privilèges) sur la machine victime se connecte à un serveur VPN (malveillant) dont l'option de basculement TDI est activée. Nous pouvons assez facilement démarrer le pilote nous-mêmes en reproduisant ce comportement, étant donné que nous avons déjà compromis un système et exécutons un malware sur celui-ci. Suivez ce guide pour configurer votre propre appliance malveillante avec l'option de basculement TDI activée.
"%programfiles(x86)%\Common Files\Pulse Secure\Integration\pulselauncher.exe" -stop
Si le pilote est en cours d'exécution et que le client VPN est arrêté, chargez le script PulsePrivEsc.cna à l'aide du gestionnaire de scripts Cobalt Strike. Utilisez ensuite la commande ci-dessous pour exécuter l'exploit.
$ pulse_priv_esc
Alternativement (et à des fins de test), vous pouvez exécuter directement l'exécutable compilé. Cela ouvrira une invite de commandes en tant que SYSTEM.
$ .\PulsePrivEsc.x64.exe
Les problèmes ou nouvelles fonctionnalités peuvent être signalés via le suivi des problèmes. Veuillez vous assurer que votre problème ou fonctionnalité n'a pas déjà été signalé par quelqu'un d'autre avant d'en soumettre un nouveau.
Copyright (c) 2023 Northwave Cyber Security. Tous droits réservés.