banner

Blog

Aug 25, 2023

De nouvelles techniques furtives permettent aux pirates d'obtenir les privilèges du système Windows

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é.

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.

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.

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 à l’hôte local.

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.

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.

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.

PARTAGER