
Uma ferramenta de pós-exploração escrita em C# usa CIM ou WMI para consultar sistemas remotos.
SharpStrike é uma ferramenta de pós-exploração escrita em C# que usa CIM ou WMI para consultar sistemas remotos. Pode usar credenciais fornecidas ou a sessão do usuário atual.
Nota: Alguns comandos usarão PowerShell em combinação com WMI, denotados com ** no comando --show-commands.
SharpStrike é uma reescrita e expansão em C# do CIMplant de @Matt_Grandy_ e do WMImplant de @christruncer.
SharpStrike permite coletar dados sobre um sistema remoto, executar comandos, exfiltrar dados e muito mais. A ferramenta permite conexões usando Windows Management Instrumentation, WMI, ou Common Interface Model, CIM ; mais precisamente Windows Management Infrastructure, MI. O CIMplant requer permissões de administrador local no sistema alvo.
Provavelmente é mais fácil usar a versão compilada disponível em Releases, apenas note que ela está compilada em modo Debug. Se você quiser compilar a solução você mesmo, siga os passos abaixo.
A build produzirá duas versões do SharpStrike: GUI (WinForms) e aplicação Console. Cada versão implementa as mesmas funcionalidades.
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 - Lê o conteúdo de um arquivo
copy - Copia um arquivo de um local para outro
download** - Baixa um arquivo da máquina alvo
ls - Lista arquivos/diretórios de um diretório específico
search - Procura um arquivo em um usuário
upload** - Envia um arquivo para a máquina alvo
command_exec** - Executa um comando de linha de comando e recebe a saída. Execute com a flag nops para desabilitar o PowerShell
disable_wdigest - Define o valor de registro UseLogonCredential para zero
enable_wdigest - Adiciona o valor de registro UseLogonCredential
disable_winrm** - Desabilita o WinRM no sistema alvo
enable_winrm** - Habilita o WinRM no sistema alvo
reg_mod - Modifica o registro na máquina alvo
reg_create - Cria o valor de registro na máquina alvo
reg_delete - Exclui o registro na máquina alvo
remote_posh** - Executa um script PowerShell em uma máquina remota e recebe a saída
sched_job - Não implementado devido ao Win32_ScheduledJobs acessar uma API desatualizada
service_mod - Cria, exclui ou modifica serviços do sistema
ls_domain_users*** - Lista usuários do domínio
ls_domain_users_list*** - Lista sAMAccountName dos usuários do domínio
ls_domain_users_email*** - Lista endereços de email dos usuários do domínio
ls_domain_groups*** - Lista grupos de usuários do domínio
ls_domain_admins*** - Lista usuários administradores do domínio
ls_user_groups*** - Lista usuários do domínio com seus grupos associados
ls_computers*** - Lista computadores no domínio atual
process_kill - Mata um processo pelo nome ou ID na máquina alvo
process_start - Inicia um processo na máquina alvo
ps - Listagem de processos
active_users - Lista usuários do domínio com processos ativos no sistema alvo
basic_info - Usado para enumerar metadados básicos sobre o sistema alvo
drive_list - Lista unidades locais e de rede
share_list - Lista compartilhamentos de rede
ifconfig - Recebe informações de IP das NICs com conexões de rede ativas
installed_programs - Recebe uma lista dos programas instalados na máquina alvo
logoff - Desconecta usuários da máquina alvo
reboot (or restart) - Reinicia a máquina alvo
power_off (or shutdown) - Desliga a máquina alvo
vacant_system - Determina se um usuário está ausente do sistema
edr_query - Consulta o sistema local ou remoto por fornecedores de EDR
logon_events - Identifica usuários que fizeram login em um sistema
* Todo o PowerShell pode ser desabilitado usando a flag --nops, embora alguns comandos não executem (upload/download, enable/disable WinRM)
** Denota uso de PowerShell (usando um PowerShell Runspace ou através do método Win32_Process::Create)
*** Denota uso de LDAP - namespace "root\directory\ldap"
Console version:
GUI version:

SharpStrike é composto por três projetos principais
É aqui que as conexões iniciais CIM/WMI são feitas e passadas para o resto da aplicação
Todo o código de função para os comandos WMI
Todo o código de função para os comandos CIM (MI)
CIMplant Parte 1: Detecção de uma Implementação C# do WMImplant
WMImplant – Um RAT de Pós-Exploração Baseado em WMI Sem Agente Desenvolvido em PowerShell
SharpStrike | Ferramenta de pós-exploração | CIM & WMI por dentro