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
2042841il 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.

  • Chargez CIMplant.sln dans Visual Studio
  • 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