Skip to content
KitploitKITPLOIT
FerramentasExploitsBlog
Log in
Enviar
FerramentasExploitsBlog
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
InlineExecute-Assembly — Cobalt Strike BOF para execução de assembly .NET em processo com bypass de AMSI/ETW, AppDomain personalizado e redirecionamento de saída por named pipe/mailslot. | Kitploit
Ferramentas/GitHubGitHub/anthemtotheego/inlineexecute-assembly
Pós-ExploraçãoRed Teaming
GitHubanthemtotheego/inlineexecute-assembly

InlineExecute-Assembly

Cobalt Strike BOF para execução de assembly .NET em processo com bypass de AMSI/ETW, AppDomain personalizado e redirecionamento de saída por named pipe/mailslot.

Ver Repositório
7661407há 5 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

InlineExecute-Assembly

InlineExecute-Assembly é uma prova de conceito de Beacon Object File (BOF) que permite que profissionais de segurança realizem execução de assemblies .NET in-process como alternativa ao módulo tradicional fork and run execute-assembly do Cobalt Strike. O InlineExecute-Assembly executará qualquer assembly com o ponto de entrada Main(string[] args) ou Main(). Isso deve permitir executar a maioria das ferramentas publicadas sem necessidade de modificação prévia.

O BOF determinará automaticamente qual Common Language Runtime (CLR) precisa ser carregado no processo para seu assembly (v2.0.50727 ou v4.0.30319) antes da execução e, na maioria dos casos, deve terminar graciosamente se houver algum problema. O BOF também suporta várias flags que permitem ao operador ditar comportamentos antes da execução .NET, incluindo: desabilitar o AMSI via patching in-memory, desabilitar e restaurar o ETW via patching in-memory, personalizar o nome do App Domain CLR a ser criado, determinar se deve criar e direcionar a saída do console do seu assembly para um named pipe ou mailslot, e permite ao operador alterar o ponto de entrada padrão de Main(string[] args) para Main(). Mais detalhes sobre uso, casos de uso e possíveis detecções podem ser encontrados abaixo e em https://securityintelligence.com/posts/net-execution-inlineexecute-assembly/.

Por fim, a vantagem de executar nossos assemblies .NET no mesmo processo que nosso beacon implant é que evitamos o comportamento padrão do módulo execute-assembly do Cobalt Strike, que cria um novo processo para então carregar/injetar o CLR/assembly .NET. No entanto, outras considerações de OPSEC ainda existem, por exemplo: o processo em que estamos executando normalmente carrega o CLR? O assembly .NET que estamos executando tem assinaturas conhecidas? Portanto, a desvantagem é que, se algo for detectado e eliminado, por exemplo pelo AMSI, seu beacon também será eliminado.

Referências do Assunto

Esta ferramenta não existiria sem o apoio de pesquisas, ferramentas e códigos excelentes já publicados por membros da comunidade de segurança. Muito obrigado. Por fim, se você achar que alguém foi deixado de fora abaixo, por favor me avise e garantirei que seja adicionado.

  • HostingCLR - aqui - Lógica de execução de assembly/CLR
  • Dotnet-Loader-Shellcode - (por @modexpblog) - aqui - Ótima pesquisa em geral, incluindo sobre interfaces COM para executar .NET em C -> Real MVP
  • Donut - (por @TheRealWover e @modexpblog) - aqui - Cabeçalho de interfaces COM
  • Memory Patching AMSI Bypass - (por @_RastaMouse) - aqui - Pesquisa sobre patching de memória para AMSI
  • Metasploit-Execute-Assembly - (por @b4rtik) - aqui - Patching AMSI modificado e uso da função find .NET version
  • ExecuteAssembly - (por @med0x2e) - aqui - Script aggressor modificado
  • Hiding Your .NET ETW - (por @xpn) - aqui - Ótima pesquisa sobre ETW
  • ETW BOF - (por @ajpc500) - aqui - Patching ETW modificado
  • ExecuteAssembly_Mailslot - (por @N4k3dTurtl3) - aqui - Uso modificado de mailslots para redirecionamento de console
  • @freefirex2 - Gentilmente compartilhou alguns bons detalhes sobre funcionamento interno do BOF e pegadinhas.

Primeiros Passos

  1. Copie a pasta inlineExecute-Assembly com todo seu conteúdo para um sistema ao qual você planeja se conectar via aplicativo GUI do Cobalt Strike.
  2. Carregue o script Aggressor inlineExecute-Assembly.cna
  3. Execute inlineExecute-Assembly --dotnetassembly /caminho/para/assembly.exe para execução mais básica (veja os casos de uso abaixo para exemplos específicos de flags)

Compile o Seu Próprio

Execute o comando abaixo dentro do diretório src via Prompt de Comando de Ferramentas Nativas x64 para VS 2019

cl.exe /c inlineExecute-Assembly.c /GS- /FoinlineExecute-Assemblyx64.o

Execute o comando abaixo dentro do diretório src via Prompt de Comando de Ferramentas Nativas x86 para VS 2019

cl.exe /c inlineExecute-Assembly.c /GS- /FoinlineExecute-Assemblyx86.o

Flags

--dotnetassembly        Caminho do diretório para seu assembly **obrigatório**
--assemblyargs          Argumentos do assembly a serem passados
--appdomain             Altera o nome padrão do AppDomain enviado (valor padrão é totesLegit e é definido via script aggressor incluído) *Domínio sempre descarregado*
--amsi                  Tenta desabilitar o AMSI via patching in-memory (Se bem-sucedido, AMSI será desabilitado por toda a vida do processo)
--etw                   Tenta desabilitar o ETW via patching in-memory (Se bem-sucedido, ETW será desabilitado por toda a vida do processo, a menos que revertido)
--revertetw             Tenta desabilitar o ETW via patching in-memory e depois o repatcha de volta ao estado original
--pipe                  Altera o nome padrão do named pipe (valor padrão é totesLegit e é definido via script aggressor incluído)
--mailslot              Alterna para uso de mailslots para redirecionar a saída do console. Altera o nome padrão do mailslot (Se deixado em branco, valor padrão é totesLegit e é definido via script aggressor incluído)
--main                  Altera o ponto de entrada para Main() (valor padrão é Main(string[] args))

Caso de Uso

Executar assembly .NET

Sintaxe

beacon> inlineExecute-Assembly --dotnetassembly /root/Desktop/Seatbelt.exe

Caso de Uso

Executar assembly .NET com argumentos

Sintaxe

beacon> inlineExecute-Assembly --dotnetassembly /root/Desktop/Seatbelt.exe --assemblyargs AntiVirus AppLocker

Caso de Uso

Executar assembly .NET com argumentos e desabilitar AMSI

Sintaxe

beacon> inlineExecute-Assembly --dotnetassembly /root/Desktop/Seatbelt.exe --assemblyargs AntiVirus AppLocker --amsi

Caso de Uso

Executar assembly .NET com argumentos e desabilitar ETW

Sintaxe

beacon> inlineExecute-Assembly --dotnetassembly /root/Desktop/Seatbelt.exe --assemblyargs AntiVirus AppLocker --etw

Caso de Uso

Executar assembly .NET com argumentos e redirecionar saída via mailslots em vez do named pipe padrão

Sintaxe

beacon> inlineExecute-Assembly --dotnetassembly /root/Desktop/Seatbelt.exe --mailslot

Caso de Uso

Executar assembly .NET com argumentos e alterar o nome do named pipe padrão definido no script aggressor

Sintaxe

beacon> inlineExecute-Assembly --dotnetassembly /root/Desktop/Seatbelt.exe --pipe forRealLegit

Caso de Uso

Executar assembly .NET e alterar o app domain padrão definido no script aggressor

Sintaxe

beacon> inlineExecute-Assembly --dotnetassembly /root/Desktop/Seatbelt.exe --appdomain forRealLegit

Caso de Uso

Executar assembly .NET com ponto de entrada Main() em vez do padrão Main(string[] args)

Sintaxe

beacon> inlineExecute-Assembly --dotnetassembly /root/Desktop/simpleMain.exe --main

Caso de Uso

Ir com tudo (Go HAM)

Sintaxe

beacon> inlineExecute-Assembly --dotnetassembly /root/Desktop/Seatbelt.exe --assemblyargs AntiVirus AppLocker --amsi --etw --appdomain forRealLegit --mailslot forRealLegit

Advertências

Baixar ferramenta