
Un outil de post-exploitation écrit en C# qui utilise soit CIM soit WMI pour interroger des systèmes distants.
SharpStrike est un outil de post-exploitation écrit en C# 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, indiquées par ** dans la commande --show-commands.
SharpStrike est une réécriture et une extension en C# du CIMplant de @Matt_Grandy_ et du WMImplant de @christruncer.
SharpStrike vous permet de collecter des données sur un système distant, d'exécuter des commandes, d'exfiltrer des données, et plus encore. L'outil permet des connexions via 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.
Il est probablement plus simple d'utiliser la version précompilée dans la section Releases, mais notez qu'elle est compilée en mode Debug. Si vous souhaitez compiler la solution vous-même, suivez les étapes ci-dessous.
La compilation produira deux versions de SharpStrike : une application GUI (WinForms) et une application Console. Chaque version implémente les mêmes fonctionnalités.
Console Version:
SharpStrike.exe --help
SharpStrike.exe --show-commands
SharpStrike.exe --show-examples
SharpStrike.exe -c ls_domain_admins
SharpStrike.exe -c ls_domain_users_list
SharpStrike.exe -c cat -f "c:\users\user\desktop\file.txt" -s [remote IP address]
SharpStrike.exe -c cat -f "c:\users\user\desktop\file.txt" -s [remote IP address] -u [username] -d [domain] -p [password] -c
SharpStrike.exe -c command_exec -e "quser" -s [remote IP address] -u [username] -d [domain] -p [password]
GUI version:
show-commands
show-examples
ls_domain_admins
ls_domain_users_list
cat -f "c:\users\user\desktop\file.txt" -s [remote IP address]
cat -f "c:\users\user\desktop\file.txt" -s [remote IP address] -u [username] -d [domain] -p [password]
command_exec -e "quser" [remote IP address] -u [username] -d [domain] -p [password]
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 ciblée
ls - Liste le contenu d'un répertoire spécifique
search - Recherche un fichier sur un utilisateur
upload** - Téléverse un fichier vers la machine ciblée
command_exec** - Exécute une commande en ligne de commande et reçoit la sortie. Exécutez avec 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 ciblée
reg_create - Crée la valeur de registre sur la machine ciblée
reg_delete - Supprime le registre sur la machine ciblée
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
ls_domain_users*** - Liste les utilisateurs du domaine
ls_domain_users_list*** - Liste les sAMAccountName des utilisateurs du domaine
ls_domain_users_email*** - Liste les adresses email des utilisateurs du domaine
ls_domain_groups*** - Liste les groupes d'utilisateurs du domaine
ls_domain_admins*** - Liste les administrateurs du domaine
ls_user_groups*** - Liste les utilisateurs du domaine avec leurs groupes associés
ls_computers*** - Liste les ordinateurs du domaine actuel
process_kill - Tue un processus par nom ou ID sur la machine ciblée
process_start - Démarre un processus sur la machine ciblée
ps - Liste des processus
active_users - Liste les utilisateurs du domaine avec des processus actifs sur le système ciblé
basic_info - Permet d'énumérer les métadonnées de base du système ciblé
drive_list - Liste les lecteurs locaux et réseau
share_list - Liste les partages réseau
ifconfig - Reçoit les informations IP des cartes réseau avec des connexions actives
installed_programs - Reçoit la liste des programmes installés sur la machine ciblée
logoff - Déconnecte les utilisateurs de la machine ciblée
reboot (or restart) - Redémarre la machine ciblée
power_off (or shutdown) - Éteint la machine ciblée
vacant_system - Détermine si un utilisateur est absent du système
edr_query - Interroge le système local ou distant pour les fournisseurs d'EDR
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écuteront pas (upload/download, enable/disable WinRM)
** Indique l'utilisation de PowerShell (soit via un espace d'exécution PowerShell, soit via la méthode Win32_Process::Create)
*** Indique l'utilisation de LDAP - espace de noms "root\directory\ldap"
Console version:
GUI version:

SharpStrike est composé de trois projets principaux
C'est ici que les connexions initiales CIM/WMI sont établies et transmises au reste de l'application
Tout le code des fonctions pour les commandes WMI
Tout le code des fonctions pour les commandes CIM (MI)
CIMplant Partie 1 : Détection d'une implémentation C# de WMImplant
WMImplant – Un RAT de post-exploitation sans agent basé sur WMI développé en PowerShell
SharpStrike | Outil de post-exploitation | CIM et WMI à l'intérieur