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
Chimera — Ferramenta automatizada de sideloading de DLL com capacidades de evasão de EDR | Kitploit
Ferramentas/GitHubGitHub/georgesotiriadis/chimera
Geração de PayloadsExploraçãoShellcodeRed Teaming
GitHubgeorgesotiriadis/chimera

Chimera

Ferramenta automatizada de sideloading de DLL com capacidades de evasão de EDR

Ver Repositório
50758há 2 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

Chimera Unlea$ed 

Histórico da Ferramenta


Embora o DLL sideloading possa ser usado para fins legítimos, como carregar bibliotecas necessárias para o funcionamento de um programa, ele também pode ser usado para fins maliciosos. Atacantes podem usar o DLL sideloading para executar código arbitrário em um sistema alvo, frequentemente explorando vulnerabilidades em aplicativos legítimos que são usados para carregar DLLs.

Para automatizar o processo de DLL sideloading e torná-lo mais eficaz, a Chimera foi criada como uma ferramenta que inclui metodologias de evasão para contornar produtos EDR/AV. Esta ferramenta pode criptografar automaticamente um shellcode via XOR com uma chave aleatória e criar imagens de modelo que podem ser importadas para o Visual Studio para criar uma DLL maliciosa.

Além disso, são usadas Dynamic Syscalls do SysWhispers3 e uma versão de assembly modificada para evadir o padrão que o EDR procura, são adicionados NOP sleds aleatórios e registradores são movidos. Além disso, o Early Bird Injection também é usado para injetar o shellcode em outro processo que o usuário pode especificar, com mecanismos de Evasão de Sandbox como verificação de disco rígido e se o processo está sendo depurado. Finalmente, um ataque de temporização é colocado no loader que usa temporizadores de espera para atrasar a execução do shellcode.

Esta ferramenta foi testada e mostrou-se eficaz em contornar produtos EDR/AV e executar código arbitrário em um sistema alvo.

A versão atualizada do Chimera Unleashed demonstrou avanços significativos na evasão de análise estática e dinâmica, particularmente no contexto do sistema de Detecção e Resposta de Endpoint (EDR) do Microsoft 365. As técnicas de sideloading da ferramenta, mesmo quando aplicadas a binários bem conhecidos como o OneDrive, conseguiram escapar da detecção. No entanto, é importante notar que, embora o aspecto de sideloading tenha permanecido não detectado, o processo de Early Bird Injection empregado pela ferramenta foi identificado pelo sistema EDR. Isso destaca uma área para refinamento adicional no aprimoramento das capacidades gerais de discrição da ferramenta.

Uso da Ferramenta


Atualizações e Recursos Principais:

  • Estrutura Reformulada: Todo o programa foi reestruturado para facilitar o desenvolvimento e a manutenção futura.
  • Integração de Código Polimórfico: Incorporação de código polimórfico, melhorando significativamente as capacidades de evasão e tornando a ferramenta mais resiliente contra análise estática.
  • Integração do SysWhispers 3: Transição do SysWhispers 2 para uma versão modificada do SysWhispers 3. Esta atualização melhora a capacidade da ferramenta de evadir os mecanismos de reconhecimento de padrões empregados pelos sistemas EDR, usando syscalls dinâmicas e técnicas de assembly modificadas.
  • Criptografia AES: Implementação de criptografia AES para proteger o shellcode, adicionando uma camada extra de segurança e ofuscação.
  • Early Bird Injection: A ferramenta emprega técnicas de Early Bird Injection, permitindo uma execução de código mais furtiva dentro de processos alvo.
  • Module Stomping: Será adicionado no futuro; você também pode implementar sua própria técnica de injeção de código na ferramenta.

A Chimera é escrita em python3 e não há necessidade de instalar dependências extras.

Atualmente, a Chimera suporta duas opções de DLL: Microsoft Teams ou Microsoft OneDrive.

Alguém pode criar userenv.dll, que é uma DLL ausente do Microsoft Teams, e inseri-la na pasta específica em

⁠%USERPROFILE%/Appdata/local/Microsoft/Teams/current

Para o Microsoft OneDrive, o script usa a DLL version, que é comum porque está ausente do binário, por exemplo, onedriveupdater.exe

Argumentos de Linha de Comando

O Chimera Unleashed usa argparser para análise de argumentos de linha de comando. Os seguintes argumentos estão disponíveis:

  • --raw ou -r: Caminho para o arquivo contendo o shellcode. Obrigatório.
  • --path ou -p: Caminho para a saída do arquivo de template C. Obrigatório.
  • --pname ou -n: Nome do processo para injetar o shellcode. Obrigatório.
  • --dexports ou -d: Especificar quais Exportações de DLL usar ('teams' ou 'onedrive'). Obrigatório.
  • --enc ou -e: Especificar a criptografia preferida (XOR / AES). Obrigatório.
  • --inj ou -i: Especificar a técnica de injeção preferida (EB / MS). Obrigatório.
  • --rshell ou -s: [Opcional] Substituir o nome da variável do shellcode por um nome único. O padrão é 'encoded_shell'.

Exemplo de uso: python Chimera.py --raw <caminho_para_shellcode> --path <caminho_saida> --pname <nome_processo> --dexports <arquivo_exports> --enc AES --inj EB --rshell meu_shellcode

Nota Útil

Após a conclusão do processo de compilação, uma DLL será gerada, que deve incluir "version.dll" para o OneDrive ou "userenv.dll" para o Microsoft Teams. Em seguida, é necessário renomear as DLLs originais.

Por exemplo, a original "userenv.dll" deve ser renomeada como "tmpB0F7.dll", enquanto a original "version.dll" deve ser renomeada como "tmp44BC.dll". Além disso, você tem a opção de modificar o nome da DLL proxy conforme desejado, alterando o código-fonte das exportações da DLL em vez de usar os nomes padrão do script.

O arquivo code.h contém o shellcode.

Configuração do Projeto no Visual Studio


Passo 1: Criando um Novo Projeto no Visual Studio com Template DLL

  1. Inicie o Visual Studio e clique em "Create a new project" ou vá em "File" -> "New" -> "Project."
  2. Na janela de modelos de projeto, selecione "Visual C++" no lado esquerdo.
  3. Escolha "Empty Project" entre os modelos disponíveis.
  4. Forneça um nome e local adequados para o projeto e clique em "OK."
  5. Na janela de propriedades do projeto, navegue para "Configuration Properties" -> "General" e defina "Configuration Type" como "Dynamic Library (.dll)."
  6. Configure outras configurações do projeto conforme desejado e salve o projeto.

Passo 2: Importando Arquivos para o Projeto Visual Studio

  1. Localize a pasta "chimera_automation" contendo as imagens necessárias.
  2. Abra a pasta e identifique os seguintes arquivos: main.c, syscalls.c, syscallsstubs.std.x64.asm.
  3. No Visual Studio, clique com o botão direito no projeto no painel "Solution Explorer" e selecione "Add" -> "Existing Item."
  4. Navegue até o local de cada arquivo (main.c, syscalls.c, syscallsstubs.std.x64.asm) e selecione-os um por um. Clique em "Add" para importá-los para o projeto.
  5. Crie uma pasta chamada "header_files" dentro do diretório do projeto, se ela ainda não existir.
  6. Localize o arquivo de cabeçalho "syscalls_mem.h" na pasta "header_files" do diretório "chimera_automation".
  7. Clique com o botão direito na pasta "header_files" no painel "Solution Explorer" do Visual Studio e selecione "Add" -> "Existing Item."
  8. Navegue até o local de "syscalls_mem.h" e selecione-o. Clique em "Add" para importá-lo para o projeto.

Passo 3: Personalização de Compilação

  1. Na janela de propriedades do projeto, navegue para "Configuration Properties" -> "Build Customizations."
  2. Clique no botão "Build Customizations" para abrir a caixa de diálogo de personalização de compilação.

Passo 4: Habilitar MASM

  1. Na caixa de diálogo de personalização de compilação, marque a caixa ao lado de "masm" para habilitá-lo.
  2. Clique em "OK" para fechar a caixa de diálogo de personalização de compilação.

Passo 5: 

  1. Clique com o botão direito no arquivo de assembly → propriedades e escolha o seguinte
  2. Excluir da compilação → Não
  3. Conteúdo → Sim
  4. Tipo de item → Microsoft Macro Assembler

Configuração Final do Projeto

Otimizações do Compilador


Passo 1: Alterar otimização

  1. No Visual Studio, escolha Project → properties 
  2. C/C++ Optimization e altere para o seguinte

Passo 2: Remover Informações de Depuração

  1. No Visual Studio, escolha Project → properties 
  2. Linker → Debugging → Generate Debug Info → Não

Contribuidores

Contribuidor Original:

  • George Sotiriadis
    • Lançamento inicial e conceito.
    • Refatoração de código na versão atualizada.
    • Modificação do SysWhispers3 na versão atualizada.

Contribuidor:

  • Efstratios Chatzoglou
    • Adicionou código polimórfico, ofuscador e criptografia AES na versão atualizada.
    • Auxiliou na refatoração de código e desenvolvimento adicional.

Isenção de Responsabilidade:


Na máxima extensão permitida pela lei aplicável, eu (George Sotiriadis) e/ou afiliados que enviaram conteúdo ao meu repositório não serão responsáveis por quaisquer danos indiretos, incidentais, especiais, consequenciais ou punitivos, ou qualquer perda de lucros ou receitas, seja incorrida direta ou indiretamente, ou qualquer perda de dados, uso, boa vontade ou outras perdas intangíveis, resultantes de (i) seu acesso a este recurso e/ou incapacidade de acessar este recurso; (ii) qualquer conduta ou conteúdo de qualquer terceiro referenciado por este recurso, incluindo, sem limitação, qualquer conduta difamatória, ofensiva ou ilegal de outros usuários ou terceiros; (iii) qualquer conteúdo obtido deste recurso

Referências


https://www.ired.team/offensive-security/code-injection-process-injection/early-bird-apc-queue-code-injection

https://evasions.checkpoint.com/

https://github.com/Flangvik/SharpDllProxy

https://github.com/jthuraisamy/SysWhispers2

https://systemweakness.com/on-disk-detection-bypass-avs-edr-s-using-syscalls-with-legacy-instruction-series-of-instructions-5c1f31d1af7d

https://github.com/Mr-Un1k0d3r

Baixar ferramenta
  • --rxor ou -x: [Opcional] Substituir o nome da criptografia XOR por um nome único. O padrão é 'do_xor'.
  • --rkey ou -k: [Opcional] Substituir o nome da variável de chave por um nome único. O padrão é 'key'.
  • --rsleep ou -z: [Opcional] Tempo total de sono a ser incluído durante a execução (segundos). O padrão é 4000.
  • --size ou -f: [Opcional] Tamanho do arquivo de dados lixo em KB. Zero (0) é desabilitado e um (1) é tamanho aleatório. O padrão é 0.