
Uno strumento di post-exploitation scritto in C# utilizza CIM o WMI per interrogare sistemi remoti.
SharpStrike è uno strumento di post-exploitation scritto in C# che utilizza CIM o WMI per interrogare sistemi remoti. Può utilizzare credenziali fornite o la sessione dell'utente corrente.
Nota: Alcuni comandi utilizzeranno PowerShell in combinazione con WMI, indicati con ** nel comando --show-commands.
SharpStrike è una riscrittura ed espansione in C# di CIMplant di @Matt_Grandy_ e WMImplant di @christruncer.
SharpStrike consente di raccogliere dati su un sistema remoto, eseguire comandi, esfiltrare dati e altro ancora. Lo strumento permette connessioni utilizzando Windows Management Instrumentation, WMI, o Common Interface Model, CIM; più precisamente Windows Management Infrastructure, MI. CIMplant richiede permessi di amministratore locale sul sistema di destinazione.
Probabilmente è più facile usare la versione precompilata sotto Releases, tieni presente che è compilata in modalità Debug. Se vuoi compilare tu stesso la soluzione, segui i passaggi seguenti.
La compilazione produrrà due versioni di SharpStrike: GUI (WinForms) e applicazione Console. Ogni versione implementa le stesse funzionalità.
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 - Legge il contenuto di un file
copy - Copia un file da una posizione a un'altra
download** - Scarica un file dalla macchina di destinazione
ls - Elenca file/directory di una directory specifica
search - Cerca un file su un utente
upload** - Carica un file sulla macchina di destinazione
command_exec** - Esegue un comando da riga di comando e riceve l'output. Esegui con l'opzione nops per disabilitare PowerShell
disable_wdigest - Imposta il valore del registro per UseLogonCredential a zero
enable_wdigest - Aggiunge il valore del registro UseLogonCredential
disable_winrm** - Disabilita WinRM sul sistema di destinazione
enable_winrm** - Abilita WinRM sul sistema di destinazione
reg_mod - Modifica il registro sulla macchina di destinazione
reg_create - Crea il valore del registro sulla macchina di destinazione
reg_delete - Elimina il registro sulla macchina di destinazione
remote_posh** - Esegue uno script PowerShell su una macchina remota e riceve l'output
sched_job - Non implementato a causa dell'accesso a un'API obsoleta tramite Win32_ScheduledJobs
service_mod - Crea, elimina o modifica servizi di sistema
ls_domain_users*** - Elenca utenti del dominio
ls_domain_users_list*** - Elenca sAMAccountName degli utenti del dominio
ls_domain_users_email*** - Elenca indirizzi email degli utenti del dominio
ls_domain_groups*** - Elenca gruppi di utenti del dominio
ls_domain_admins*** - Elenca utenti amministratori del dominio
ls_user_groups*** - Elenca utenti del dominio con i relativi gruppi
ls_computers*** - Elenca computer nel dominio corrente
process_kill - Termina un processo tramite nome o ID processo sulla macchina di destinazione
process_start - Avvia un processo sulla macchina di destinazione
ps - Elenco dei processi
active_users - Elenca utenti del dominio con processi attivi sul sistema di destinazione
basic_info - Usato per enumerare metadati di base sul sistema di destinazione
drive_list - Elenca unità locali e di rete
share_list - Elenca condivisioni di rete
ifconfig - Riceve informazioni IP dalle schede di rete con connessioni attive
installed_programs - Riceve un elenco dei programmi installati sulla macchina di destinazione
logoff - Disconnette gli utenti dalla macchina di destinazione
reboot (or restart) - Riavvia la macchina di destinazione
power_off (or shutdown) - Spegne la macchina di destinazione
vacant_system - Determina se un utente è lontano dal sistema
edr_query - Interroga il sistema locale o remoto per i vendor EDR
logon_events - Identifica gli utenti che hanno effettuato l'accesso a un sistema
* Tutto PowerShell può essere disabilitato usando l'opzione --nops, anche se alcuni comandi non verranno eseguiti (upload/download, enable/disable WinRM)
** Indica l'uso di PowerShell (tramite un Runspace PowerShell o il metodo Win32_Process::Create)
*** Indica l'uso di LDAP - namespace "root\directory\ldap"
Versione console:
Versione GUI:

SharpStrike è composto da tre progetti principali
Qui vengono effettuate le connessioni iniziali CIM/WMI e passate al resto dell'applicazione
Tutto il codice delle funzioni per i comandi WMI
Tutto il codice delle funzioni per i comandi CIM (MI)
CIMplant Part 1: Rilevamento di un'implementazione C# di WMImplant
WMImplant – Un RAT di post-exploitation agentless basato su WMI sviluppato in PowerShell
SharpStrike | Strumento di post-exploitation | CIM e WMI Inside