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
CIMplant — Port C# de WMImplant qui utilise soit CIM soit WMI pour interroger des systèmes distants | Kitploit
Outils/GitHubGitHub/redsiege/cimplant
Mouvement LatéralCollecte d'InformationsPost-ExploitationTests d'IntrusionCommandement et ContrôleRed TeamingOutil d'Accès à Distance
GitHubredsiege/cimplant

CIMplant

Port C# de WMImplant qui utilise soit CIM soit WMI pour interroger des systèmes distants

Voir le dépôt
20428il 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

CIMplant

Portage C# de WMImplant qui utilise soit CIM soit WMI pour interroger des systèmes distants. Il peut utiliser des identifiants fournis ou la session de l'utilisateur actuel.

Remarque : Certaines commandes utiliseront PowerShell en combinaison avec WMI, signalées par ** dans la commande --show-commands.

Introduction

CIMplant est une réécriture en C# et une extension du WMImplant de @christruncer. Il vous permet de collecter des données sur un système distant, d'exécuter des commandes, d'exfiltrer des données, etc. L'outil permet les connexions en utilisant Windows Management Instrumentation, WMI, ou Common Interface Model, CIM ; plus précisément Windows Management Infrastructure, MI. CIMplant nécessite des autorisations d'administrateur local sur le système cible.

Configuration :

Il est probablement plus simple d'utiliser la version précompilée sous Releases, notez simplement qu'elle est compilée en mode Debug. Si vous souhaitez construire la solution vous-même, suivez les étapes ci-dessous.

  1. Chargez CIMplant.sln dans Visual Studio
  2. Allez dans Build en haut puis Build Solution si aucune modification n'est souhaitée

Utilisation

root@kitploit:~
CIMplant.exe --help
CIMplant.exe --show-commands
CIMplant.exe --show-examples
CIMplant.exe -s [remote IP address] -c cat -f c:\users\user\desktop\file.txt
CIMplant.exe -s [remote IP address] -u [username] -d [domain] -p [password] -c cat -f c:\users\test\desktop\file.txt
CIMplant.exe -s [remote IP address] -u [username] -d [domain] -p [password] -c command_exec --execute "dir c:\\"

Fonctions :

File Operations :

root@kitploit:~
cat                          -  Lit le contenu d'un fichier
copy                         -  Copie un fichier d'un emplacement à un autre
download**                   -  Télécharge un fichier depuis la machine cible
ls                           -  Liste des fichiers/répertoires d'un répertoire spécifique
search                       -  Recherche un fichier sur un utilisateur
upload**                     -  Téléverse un fichier vers la machine cible

Facilitation de mouvement latéral

root@kitploit:~
command_exec**               -  Exécute une commande en ligne de commande et reçoit la sortie. Utilisez le drapeau nops pour désactiver PowerShell
disable_wdigest              -  Définit la valeur de registre UseLogonCredential à zéro
enable_wdigest               -  Ajoute la valeur de registre UseLogonCredential
disable_winrm**              -  Désactive WinRM sur le système ciblé
enable_winrm**               -  Active WinRM sur le système ciblé
reg_mod                      -  Modifie le registre sur la machine cible
reg_create                   -  Crée la valeur de registre sur la machine cible
reg_delete                   -  Supprime le registre sur la machine cible
remote_posh**                -  Exécute un script PowerShell sur une machine distante et reçoit la sortie
sched_job                    -  Non implémenté car Win32_ScheduledJobs accède à une API obsolète
service_mod                  -  Crée, supprime ou modifie des services système

Opérations sur les processus

root@kitploit:~
process_kill                 -  Tue un processus par nom ou identifiant de processus sur la machine cible
process_start                -  Démarre un processus sur la machine cible
ps                           -  Liste des processus

Opérations système

root@kitploit:~
active_users                 -  Liste les utilisateurs du domaine ayant des processus actifs sur le système ciblé
basic_info                   -  Utilisé pour énumérer les métadonnées de base du système ciblé
drive_list                   -  Liste les lecteurs locaux et réseau
ifconfig                     -  Reçoit les informations IP des cartes réseau avec connexions actives
installed_programs           -  Reçoit une liste des programmes installés sur la machine cible
logoff                       -  Déconnecte les utilisateurs de la machine cible
reboot (or restart)          -  Redémarre la machine cible
power_off (or shutdown)      -  Éteint la machine cible
vacant_system                -  Détermine si un utilisateur est absent du système
edr_query                    -  Interroge le système local ou distant pour les fournisseurs EDR

Opérations de journalisation

root@kitploit:~
logon_events                 -  Identifie les utilisateurs qui se sont connectés à un système

* Tout PowerShell peut être désactivé en utilisant le drapeau --nops, bien que certaines commandes ne s'exécutent pas (upload/download, enable/disable WinRM)
** Dénote l'utilisation de PowerShell (soit en utilisant un Runspace PowerShell, soit via la méthode Win32_Process::Create)

Exemples de commandes d'utilisation

image

Cobalt Strike Execute-Assembly

Je voulais coder CIMplant de manière à permettre son utilisation via execute-assembly, donc tout est empaqueté dans un seul exécutable et chargé de manière réflexive. Vous devriez pouvoir exécuter toutes les commandes via beacon sans problème. Profitez-en !

image

Fichiers importants

  1. Program.cs

C'est le cerveau de l'opération, le pilote du programme.

  1. Connector.cs

C'est là que les connexions initiales CIM/WMI sont établies et transmises au reste de l'application

  1. ExecuteWMI.cs

Tout le code de fonction pour les commandes WMI

  1. ExecuteCIM.cs

Tout le code de fonction pour les commandes CIM (MI)

Détection

Bien sûr, la première chose à laquelle nous devons prêter attention est la connexion initiale WMI ou CIM. En général, WMI utilise DCOM comme protocole de communication tandis que CIM utilise WSMan (ou WinRM). Cela peut être modifié pour CIM, et l'est dans CIMplant, mais passons en revue les valeurs par défaut pour l'instant. Pour DCOM, la première chose que nous pouvons faire est de rechercher les connexions TCP initiales sur le port 135. Les systèmes connecteur et récepteur décident ensuite d'un nouveau port très élevé à utiliser, ce qui variera considérablement. Pour WSMan, la connexion TCP initiale se fait sur le port 5985.

Ensuite, vous voudrez consulter le journal des événements Microsoft-Windows-WMI-Activity/Trace dans l'Observateur d'événements. Recherchez Event ID 11 et filtrez sur la propriété IsLocal si possible. Vous pouvez également rechercher Event ID 1295 dans le journal Microsoft-Windows-WinRM/Analytic.

Enfin, vous voudrez rechercher toute modification de la propriété DebugFilePath avec la classe Win32_OSRecoveryConfiguration. Des informations plus détaillées sur la détection se trouvent dans la Partie 1 de notre série de blogs ici : CIMplant Part 1: Detection of a C# Implementation of WMImplant

Télécharger l’outil