C’est officiel, Microsoft commence à supprimer WMIC de Windows
Au sein de la dernière version de Windows 11 publiée dans le canal Dev, l'outil en ligne de commande "wmic.exe" n'est plus présent sur le système d'exploitation ! Une page se tourne (mais partiellement).
Pour rappel, l'outil en ligne de commande "wmic.exe" correspondant à "Windows Management Instrumentation Command-line" permet d'utiliser WMI sur une machine Windows. Grâce à lui, il est possible d'exécuter des requêtes sur le système, que ce soit pour exécuter des actions ou obtenir de nombreuses informations sur le système. Un outil fort utile pour les administrateurs système !
Je tiens à vous rassurer d'entrée : l'outil wmic.exe va disparaître de Windows, mais le WMI quant à lui sera toujours présent ! C'est seulement qu'au lieu d'utiliser wmic.exe, il va falloir utiliser les commandes PowerShell correspondantes, puisque PowerShell fonctionne très bien avec WMI.
Comme l'a constaté le chercheur en sécurité Grzegorz Tworek, Microsoft a appliqué ce qui était prévu : "wmic.exe" est bien déprécié depuis Windows 10 21H1, et il n'est plus présent sur la dernière build en cours de développement de Windows 11. Si l'on essaie d'exécuter cette commande, le système indique qu'elle n'est pas reconnue.
Comment expliquer cette décision de la part de Microsoft ? Et bien, l'objectif est de mettre des bâtons dans les roues des pirates puisque cet outil est couramment utilisé par les logiciels malveillants. Il fait partie de la catégorie des "LoLBins", c'est-à-dire des outils capables de tromper la vigilance des antivirus car ils ont une bonne réputation. En effet, "wmic.exe" est signé par Microsoft.
Par exemple, il est fréquent que "wmic.exe" soit utilisé par les ransomwares afin de supprimer les clichés instantanés d'une machine via la commande suivante :
wmic.exe shadowcopy delete /nointeractive
Cet outil peut-être utilisé également pour ajouter des exclusions à Microsoft Defender afin d'autoriser le logiciel malveillant. Autre exemple : lister les antivirus installés sur la machine et les supprimer. Même si cela part d'une bonne intention de la part de Microsoft, cette joie devrait être de courte durée. Les pirates vont bien trouver des alternatives pour exécuter leurs commandes, mais si cela peut réduire les attaques ou les rendre plus difficiles, on ne va pas s'en plaindre.
Si vous utilisez "wmic.exe" dans vos scripts, vous n'avez plus qu'à entamer la migration vers les commandes PowerShell. Enfin, vous avez encore le temps de voir venir, mais il faut y penser.
Bonjour.
Pouvez vous proposer des exemples de script powershell permettant de se passer de wmic ?
Merci
Get-WmiObject Win32_Bios ^^
Cette commande est considérée comme ancienne, et avantageusement remplacée par « Get-CIMInstance ».
Ce sont les mêmes classes, mais les résultats s’affichent beaucoup, mais alors beaucoup plus rapidement !!
Toutes les classes ne bénéficient hélas pas encore de raccourcis aisés, telle que pour la récup des mises à jour installées, « Get-CIMInstance win32_quickfixengineering », qui est disponible en strict équivalence via « Get-Hotfix »
Pour le moment, la plupart des classes ne sont pas évidentes, et surtout peu documentées. En plus de parfois ne rien répondre du tout !?
Win32_Product ; Win32_UserInDomain ; Win32_SystemDriver ; … fonctionnent
Le site ss64.com en donne quelques uns.
Rem : Faire un « Get-cimclass » ou « Get-WmiObject -list » affiche la liste des classes disponibles.
Merci beaucoup pour ton commentaire instructif 🙂
Ca pourrait être cool que je prépare un article sur l’utilisation de ces commandes…