Exécution de code malveillant : Windows 10 et Windows 11 trompés par cette technique de DLL hijacking !
Des chercheurs en sécurité ont mis en lumière une nouvelle variante de la technique "DLL hijacking" sous Windows 10 et Windows 11. Grâce à cette méthode, il est possible d'exécuter du code malveillant sur la machine tout en outrepassant les mécanismes de sécurité. Voici ce qu'il faut savoir.
Sous Windows, lorsqu'un processus est exécuté et qu'il doit charger une bibliothèque "DLL", il va effectuer la recherche du fichier dont il a besoin dans un ordre bien spécifique. Ceci ouvre la porte à des attaques potentielles via une technique appelée "DLL hijacking". En effet, pour localiser la ressource en question, le processus va d'abord regarder dans le répertoire à partir duquel il est exécuté, puis dans le dossier "C:\Windows\System32", puis dans "C:\Windows\System", et ensuite dans "C:\Windows", avant de s'intéresser éventuellement au répertoire de travail actuel si la ressource n'a pas encore été trouvée.
Les chercheurs en sécurité de Security Joes ont publié un rapport qui évoque une nouvelle variante d'exploitation de cette technique. Dans le cas présent, les fichiers situés dans le dossier "C:\Windows\WinSxS" sont pris pour cible. Le répertoire WinSxS (Windows Component Store) est intégré au système d'exploitation Windows (c'est donc un emplacement de confiance) et il est utilisé pour stocker des données lors de certaines opérations de maintenance (notamment pour les mises à jour).
L'idée des chercheurs en sécurité est la suivante : utiliser un binaire présent dans le dossier WinSxS (et qui a pour habitude de rechercher une DLL bien précise) afin de l'exécuter à partir d'un répertoire contrôlé par l'attaquant. Si ce répertoire contrôlé par l'attaquant contient la DLL recherchée par le binaire, alors il chargera cette version conformément à l'ordre de recherche d'une DLL. Si elle est malveillante, ceci permettra à l'attaquant d'exécuter du code arbitraire sur la machine sans même disposer des privilèges d'administration !
"Nous avons réussi à injecter notre DLL personnalisée en la renommant "mscorsvc.dll" et en exécutant la ligne de commande mentionnée ci-dessus depuis notre répertoire actuel, en ciblant spécifiquement le processus "ngentask.exe".", peut-on lire dans le rapport de Security Joes. Ici, il s'agit d'un exemple avec le binaire "ngentask.exe", mais d'autres binaires pourraient être vulnérables à cette technique.
"Surveillez de près toutes les activités effectuées par les binaires résidant dans le dossier WinSxS, en vous concentrant à la fois sur les communications réseau et les opérations sur les fichiers.", recommandent les chercheurs de Security Joes.
Pour finir, voici une vidéo de démonstration :