Des chercheurs en sécurité ont publié NoFilter, un outil qui abuse de la plate-forme de filtrage Windows pour élever les privilèges d’un utilisateur afin d’augmenter les privilèges sur SYSTEM, le niveau d’autorisation le plus élevé sous Windows.

L’utilitaire est utile dans les scénarios de post-exploitation dans lesquels un attaquant doit exécuter du code malveillant avec des autorisations plus élevées ou se déplacer latéralement sur un réseau victime en tant qu’autre utilisateur déjà connecté à l’appareil infecté.

Duplication du jeton d’accès
Microsoft définit la plate-forme de filtrage Windows (WFP) comme « un ensemble d’API et de services système qui fournissent une plate-forme pour créer des applications de filtrage réseau ».

Les développeurs peuvent utiliser l’API du PAM pour créer du code capable de filtrer ou de modifier les données du réseau avant qu’elles n’atteignent leur destination, les fonctionnalités des outils de surveillance du réseau, des systèmes de détection d’intrusion ou des pare-feu.

Les chercheurs de la société de cybersécurité Deep Instinct ont développé trois nouvelles attaques pour élever les privilèges sur une machine Windows sans laisser trop de preuves et sans être détectées par de nombreux produits de sécurité.

La première méthode permet d’utiliser le PAM pour dupliquer les jetons d’accès, les morceaux de code qui identifient les utilisateurs et leurs autorisations dans le contexte de sécurité des threads et des processus.

Lorsqu’un thread exécute une tâche privilégiée, les identifiants de sécurité vérifient si le jeton associé dispose du niveau d’accès requis.

Ron Ben Yizhak, chercheur en sécurité chez Deep Instinct, explique que l’appel de la fonction NtQueryInformationProcess permet d’obtenir la table de handles avec tous les jetons détenus par un processus.

« Les descripteurs de ces jetons peuvent être dupliqués pour qu’un autre processus passe à SYSTEM », note Yizhak dans un article de blog technique.

Le chercheur explique qu’un pilote important du système d’exploitation Windows appelé tcpip.sys possède plusieurs fonctions qui pourraient être invoquées par des requêtes d’E/S de périphérique adressées aux couches en mode noyau WPF ALE (Application Layer Enforcement) pour un filtrage avec état.

«La requête IO de l’appareil est envoyée pour appeler WfpAleProcessTokenReference. Il s’attachera à l’espace d’adressage du service, dupliquera le jeton du service qui appartient à SYSTEM et le stockera dans la table de hachage » – Ron Ben Yizhak

L’outil NoFilter abuse de WPF de cette manière pour dupliquer un jeton et ainsi obtenir une élévation de privilèges.

Abuser de la plateforme de filtrage Windows pour dupliquer le jeton d’accès

Selon le chercheur, en évitant l’appel à DuplicateHandle, cela augmente la furtivité et de nombreuses solutions de détection et de réponse des points finaux manqueront probablement l’action malveillante.

Obtenir le système et le jeton d’accès administrateur
Une deuxième technique consiste à déclencher une connexion IPSec et à abuser du service Print Spooler pour insérer un jeton SYSTEM dans la table.

L’utilisation de la fonction RpcOpenPrinter récupère le -handle d’une imprimante par son nom. En changeant le nom en « \127.0.0.1 », le service se connecte à local host.

Suite à l’appel RPC, plusieurs requêtes IO de périphérique adressées à WfpAleQueryTokenById sont nécessaires pour récupérer un jeton SYSTEM.

Obtention du jeton d’accès SYSTÈME via le spouleur d’impression

Yizhak affirme que cette méthode est plus furtive que la première car la configuration d’une politique IPSec est une action généralement effectuée par des utilisateurs privilégiés légitimes comme les administrateurs réseau.

« De plus, la politique ne modifie pas la communication ; aucun service ne devrait en être affecté et les solutions EDR qui surveillent l’activité du réseau ignoreront très probablement les connexions à l’hôte local.

Une troisième technique décrite dans le message de Yizhak permet d’obtenir le jeton d’un autre utilisateur connecté au système compromis à des fins de mouvement latéral.

Le chercheur affirme qu’il est possible de lancer un processus avec les autorisations d’un utilisateur connecté si le jeton d’accès peut être ajouté à la table de hachage.

Il a recherché des serveurs d’appel procédural à distance (RPC) exécutés en tant qu’utilisateur connecté et a exécuté un script pour trouver les processus exécutés en tant qu’administrateur de domaine et exposer une interface RPC.

Pour obtenir le token et lancer un processus arbitraire avec les autorisations d’un utilisateur connecté, le chercheur a abusé du service OneSyncSvc et de SyncController.dll, qui sont de nouveaux composants dans le monde des outils offensifs.

Conseils de détection
Les pirates informatiques et les testeurs d’intrusion sont susceptibles d’adopter ces trois techniques, car leur signalement au Microsoft Security Response Center a conduit l’entreprise à déclarer que le comportement était celui prévu. Cela signifie généralement qu’il n’y aura pas de correctif ou d’atténuation.

Cependant, bien qu’il soit plus furtif que les autres méthodes, Deep Instinct propose plusieurs moyens de détecter les trois attaques et recommande de rechercher les événements suivants :

  • Configuration de nouvelles politiques IPSec qui ne correspondent pas à la configuration réseau connue.
  • Appels RPC à Spooler / OneSyncSvc pendant qu’une stratégie IPSec est active.
  • Brute force le LUID d’un jeton via plusieurs appels à WfpAleQueryTokenById.
  • Demande d’E/S du périphérique au périphérique WfpAle par des processus autres que le service BFE.

Yizhak a présenté les trois nouvelles techniques lors de la conférence des hackers DEF CON plus tôt ce mois-ci. Les détails techniques complets sont disponibles dans l’article de Deep Instinct.

Laisser un commentaire

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