Skip to content
KitploitKITPLOIT
FerramentasBlog
Enviar
FerramentasBlog
Enviar

Ferramentas de Hacking, PenTest e Cibersegurança para o seu Arsenal de Segurança!

Kitploit é um diretório de ferramentas de hacking, cibersegurança e pentesting. Descubra as últimas atualizações de projetos para encontrar vulnerabilidades, analisar sistemas, automatizar testes e fortalecer sua segurança.

··Feeds·Contato·Privacidade·© 2026 Kitploit

Diretório de Ferramentas

Categorias

Ver todas as categorias
Loading categories
MoveKit — Kit Cobalt Strike para Movimento Lateral | Kitploit
Ferramentas/GitHubGitHub/0xthirteen/movekit
Frameworks de ExploraçãoMovimento LateralPós-ExploraçãoTestes de PenetraçãoRed Teaming
GitHub0xthirteen/movekit

MoveKit

Kit Cobalt Strike para Movimento Lateral

Ver Repositório
6781081há 6 anosRevisado pelo Kitploit

Mais Populares

Ver todos →

Descubra as ferramentas mais usadas pela nossa comunidade.

Explore todas as ferramentas

Navegue pela nossa coleção de ferramentas

Ver todas as ferramentas →
Compartilhar

MoveKit - Kit de movimento lateral do Cobalt Strike

Movekit é uma extensão do movimento lateral embutido do Cobalt Strike, utilizando a função execute_assembly com os assemblies .NET SharpMove e SharpRDP. O script aggressor lida com a criação do payload lendo os arquivos de template para um tipo de execução específico.

IMPORTANTE: Para usar o script, o usuário só precisa carregar o script aggressor MoveKit.cna, que carregará todos os outros scripts necessários. Além disso, dependendo das ações tomadas, os assemblies SharpMove e SharpRDP precisarão ser compilados e colocados no diretório Assemblies. Finalmente, algumas das movimentações de arquivos exigem compilação dinâmica, que requer o Mono.

Ao carregar o script aggressor, um seletor será carregado na menubar chamado Move. Há várias seleções que o usuário pode escolher. Primeiro, os usuários podem selecionar executar um comando em um sistema remoto através de WMI, DCOM, Task Scheduler, RDP ou SCM. Segundo, há o mecanismo de execução Command que usa download cradles para buscar e executar os arquivos. Terceiro, o método File coloca um arquivo no sistema e o executa. Há Write File Only que não faz nenhuma execução, apenas move dados. Finalmente, há uma configuração Default para tornar o uso da GUI mais rápido e usado com comandos beacon. As configurações padrão são usadas para qualquer coisa que possa aceitar um padrão.

Para usar os comandos beacon, ele lerá as configurações padrão e usará alguns argumentos de linha de comando. Um exemplo de comando beacon: <exec-type> <target> <listener> <filename>

move-msbuild 192.168.1.1 http move.csproj

Além disso, o comando beacon customizado pré-construído é um pouco diferente. Exemplo de comando: move-pre-custom-file <target> <local-file> <remote-filename>

move-pre-custom-file computer001.local /root/payload.exe legit.exe

O campo location é a parte mais complicada do projeto. Ao selecionar WMI para movimento de arquivos, location será usado; se SMB for selecionado, ele não será usado (portanto, pode ser deixado vazio). Location aceita três valores diferentes. Primeiro, se location for uma URL, quando o payload for criado, ele será hospedado pelo servidor web do Cobalt Strike. O host beacon a partir do qual o assembly será executado fará uma requisição web à URL e obterá o arquivo, que será usado em um event sub no host alvo para escrever o arquivo. Segundo, se location for um diretório Windows, ele fará upload do arquivo criado para o host beacon e o assembly o lerá do sistema de arquivos e armazenará no event sub para escrever no host remoto. Finalmente, se o campo location for um caminho linux ou a palavra local, então ele compilará dinamicamente o payload no assembly que está sendo executado. No entanto, se o arquivo estiver acima do limite de tamanho de 1MB, ele mostrará um erro.

Para todos os métodos de arquivo, o payload será criado através do script aggressor. No entanto, se um payload já estiver criado, os usuários podem selecionar a opção Custom (Prebuilt) para movê-lo e executá-lo.

O kit contém diferentes técnicas de movimento de arquivos, gatilhos de execução e tipos de payload.

Movimento de arquivo é considerado o método usado para levar um arquivo a um host remoto. Tipos de movimento de arquivo:

  • SMB para arquivo plano
  • WMI para arquivo plano
  • WMI para valor de chave de registro
  • WMI para propriedade de classe WMI personalizada

Gatilho de comando é considerado o método usado para executar um comando específico em um host remoto. Tipos de gatilho de comando:

  • WMI
  • SCM
  • RDP
  • DCOM (múltiplos)
  • Tarefas agendadas
  • Modificar tarefa agendada (tarefa existente tem ação atualizada, executa a tarefa e redefine a ação)
  • Modificar binpath de serviço (serviço existente tem binpath atualizado, serviço é iniciado e redefinido ao estado original)

Execução apenas de shellcode:

  • Excel 4.0 DCOM
  • Assinatura de evento WMI (em breve)

Sequestros:

  • Sequestro de DLL de serviço (em breve)
  • Sequestro de servidor DCOM (em breve)

Dependências

  • Mono (MCS) para compilar assemblies .NET (Usado com criação dinâmica de payload, InstallUtil e Custom-NonPreBuilt). Também quando o assembly FileWrite é usado.

Armadilhas:

  • Às vezes execute_assembly será chamado antes do movimento de arquivos; se isso acontecer, você pode executar o payload desmarcando a caixa Auto
  • O kit não limpa arquivos automaticamente, isso fica a cargo do operador
Nota: Recomenda-se não usar os templates padrão com o projeto.

Para substituir um template, você deve atender a dois requisitos. Primeiro, o template deve ser nomeado com a técnica (exemplo: msbuild.csproj). Segundo, o código-fonte deve conter a string $$PAYLOAD$$ onde o shellcode codificado em base64 será inserido e ser capaz de converter uma string base64 em um array de bytes. Exemplo para C#:

root@kitploit:~
string strSC = "$$PAYLOAD$$";
byte[] sc = Convert.FromBase64String(strSC);

Uma alteração foi adicionada que permite que os padrões atualizem a 'string Find and Replace' e os formatos de shellcode no 'Update Defaults dialog'. Por padrão, são $$PAYLOAD$$ e base64.

Considerações operacionais

  • Se usar o agendador de tarefas, as tarefas agendadas serão criadas e excluídas
  • Se usar SCM, serviços serão criados e excluídos
  • Se usar o bypass do AMSI, funcionará apenas para WSH, não para PowerShell
  • Se usar o bypass do AMSI, modificará o registro atualizando ou criando uma chave de registro e depois a definindo de volta ao valor original ou excluindo
  • Usa a função execute-assembly do Cobalt Strike, então injetará em um processo sacrificial como outros jobs pós-ex
  • Arquivos serão salvos em disco se usar qualquer um dos métodos File ou Command
  • Templates não devem ser usados, todos são públicos
  • Todas as técnicas não são novas e são bastante conhecidas

Créditos

Alguns dos códigos, templates ou inspiração vêm de outras pessoas e projetos

  • WMI - SharpWMI por harmj0y
  • DCOM - SharpCOM por rvrsh3ll e SharpSploit DCOM por cobbr
  • SCM - CSExec por Tim Malcomvetter
  • Sequestro de DLL de serviço SharpSC por djhohnstein
  • Modificação de binpath de serviço SCShell por Mr-Un1k0d3r
  • Template de executor de shellcode por subTee
  • Payloads CACTUSTORCH por vysecurity

Provavelmente há bugs em algum lugar, eles tendem a aparecer de vez em quando. Apenas reporte-os que eu os corrigirei

Baixar ferramenta