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
AsmLdr — Carregador dinâmico de shellcode com capacidades sofisticadas de evasão | Kitploit
Ferramentas/GitHubGitHub/0xninjacyclone/asmldr
Geração de PayloadsEvasão de IDS/IPSShellcodePós-ExploraçãoRed TeamingDesenvolvimento de Payloads
GitHub0xninjacyclone/asmldr

AsmLdr

Carregador dinâmico de shellcode com capacidades sofisticadas de evasão

Ver Repositório
34651há 10 mesesRevisado 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

AsmLdr: Um Loader de Shellcode Dinâmico para Windows x64

Visão Geral

AsmLdr é um loader de shellcode avançado implementado em linguagem assembly x64, projetado para ambientes Windows x64. Seu propósito principal é executar payloads criptografados enquanto minimiza a detecção por softwares antivírus avançados, sistemas de detecção e resposta de endpoint (EDR), sandboxes e depuradores. Ele consegue isso resolvendo módulos, APIs e chamadas de sistema dinamicamente em tempo de execução, eliminando dependências estáticas como tabelas de importação ou endereços fixos. Essa abordagem cria um binário compacto com baixo perfil de detecção.

O loader usa module stomping para colocar o shellcode em uma seção executável de uma DLL existente, descriptografa o payload na memória e o executa via syscalls indiretas com stack spoofing. Ele inclui recursos de evasão, como medidas anti-debugging, ajustes de temporização para imitar padrões normais de aplicativos e bypass do rastreamento de eventos do Windows (ETW). Essas capacidades o tornam uma ferramenta para red teaming e pesquisa de segurança. Aviso Ético: Este projeto é apenas para fins educacionais e de pesquisa. Ele demonstra internals de baixo nível do Windows, incluindo travessia do PEB, parsing da tabela de exportação, unhooking de syscalls e manipulação da proteção de memória. Use em ambientes controlados (ex.: VMs). O uso indevido para atividades maliciosas é ilegal e antiético. O autor se isenta de responsabilidade por qualquer uso indevido.

Principais Capacidades

AsmLdr oferece uma gama de recursos para execução furtiva de payloads e evasão. Cada um é descrito abaixo, com foco em sua função e benefícios:

Inicialização e Bootstrapping

  • Descoberta de PEB e ntdll: O loader localiza o PEB sem métodos de acesso padrão para evitar detecção.
    • Método Principal (Varredura de Pilha): Ele examina endereços de retorno da pilha para identificar um ponteiro válido que leve ao PEB. Uma vez encontrado, ele recupera o endereço base da ntdll na lista de módulos e configura o tratamento de syscalls.
    • Método Alternativo (Varredura de Cabeçalho PE): Se o método principal falhar, ele procura na memória por assinaturas de arquivos PE para encontrar ntdll.dll e então usa uma chamada de sistema para confirmar a localização do PEB.

Mecanismos de Resolução Dinâmica

  • Resolução de Módulos via Travessia do PEB: O loader lista os módulos em execução seguindo a cadeia de módulos do PEB. Ele compara nomes de módulos usando comparações Unicode para encontrar e retornar o endereço base da DLL desejada. Esse método ignora funções de carregamento padrão, reduzindo o risco de interceptação.

  • Resolução de APIs a partir de Tabelas de Exportação: O loader examina o diretório de exportação de uma DLL para localizar funções. Ele combina APIs usando hashing ou, opcionalmente, verificações diretas de nome com validação de comprimento para evitar confusão entre nomes de funções semelhantes. Isso fornece o endereço da função sem depender de importações pré-vinculadas.

Técnicas de Evasão

  • Proteções Anti-Debugging: O loader detecta depuração por meio de múltiplas verificações e sai de forma limpa se qualquer uma indicar análise.

    • Verificações de APIs da Kernel32: Ele consulta a presença de depuradores e anexações remotas, encerrando se detectado.
    • Inspeção de Flags do PEB: Ele revisa os flags do processo em busca de sinais de depuração, como modos de depuração habilitados, e para se estiverem definidos.
    • Detecção de Breakpoints de Hardware: Ele recupera os registradores de depuração da thread para verificar se há breakpoints definidos, interrompendo se algum estiver ativo.
    • Consulta de Porta de Depuração: Ele inspeciona o processo em busca de uma porta de depuração anexada, encerrando se existir uma.
    • Saída ao Detectar: Em qualquer alerta, ele restaura a pilha e retorna antecipadamente para evitar revelar o comportamento.
  • Geração de Código Lixo para Resistência à Análise: O loader executa sequências de operações não essenciais para criar padrões confusos na desmontagem, dificultando a análise estática sem impactar a eficiência em tempo de execução.

  • Normalização de Temporização e Comportamento: O loader mede a velocidade do sistema para executar cargas de trabalho simuladas que correspondem aos padrões normais de aplicativos, ajudando a se misturar com processos legítimos. Ele também pausa brevemente antes de ações-chave para normalizar o tempo de execução.

  • Bypass de Registro do ETW: O loader configura breakpoints de hardware em APIs de registro do ETW para interceptar e pular chamadas de registro de eventos, prevenindo rastros nos logs do sistema.

Tratamento de Syscalls

  • Unhooking em Múltiplas Camadas: O loader recupera dinamicamente números de chamadas de sistema válidos (SSNs) verificando funções diretamente, varrendo o código próximo se estiver com hook, ou contando padrões na ntdll para estimar o número, ajustando para exceções conhecidas.

    Técnicas utilizadas:

    • Hell's Gate
    • (Halo's/Tartarus) Gate
    • Veles' Reek
  • Syscall Indireto e Stack Spoofing: O loader encontra caminhos de código limpos na ntdll para chamadas de sistema e encadeia até 32 operações, ocultando a pilha de chamadas para evitar rastreamento. Ele restaura o estado original após a conclusão.

Injeção e Execução de Payload

  • DLL Hollowing: O loader carrega uma DLL alvo, permite temporariamente escrita em sua seção de código, insere o shellcode criptografado, descriptografa e redefine as proteções para somente execução.

  • Descriptografia em Memória: O loader descriptografa o shellcode aplicando um padrão de chave repetida diretamente na memória injetada.

  • Funções Utilitárias: O loader inclui ferramentas para medir comprimentos de strings, comparar strings (caracteres padrão ou largos), gerar hashes de nomes para buscas, validar ponteiros de memória e ler timestamps para controles de temporização.

Mais Recursos

  • Nenhuma permissão de memória RWX é usada, apenas alternância entre RW e RX para furtividade.
  • Sem IAT, nem mesmo uma única API vinculada estaticamente, para evitar hooks e análise estática.
  • O AsmLdr é executado silenciosamente em segundo plano, sem mostrar um console ou qualquer coisa suspeita.
  • Todas as chamadas de API necessárias são resolvidas usando hashes para ofuscação.

Metodologia de Preparação do Shellcode

O script Python generate.py criptografa o arquivo de shellcode bruto. Ele adiciona padding para alinhamento, cria ou usa uma chave e aplica XOR em cada byte com a chave em um ciclo repetido. O arquivo de saída shellcode.asm define tamanhos, arrays para os dados criptografados e a chave, e uma rotina para carregar os dados em tempo de execução. A descriptografia do loader corresponde a esse processo na memória. Observe que chaves mais longas aumentam o tempo de espera.

Uso

Preparação

Prepare um binário de shellcode bruto (ex.: payload.bin). Execute python generate.py payload.bin [optional_key] para produzir shellcode.asm.

Personalização

Modifique szDllName (palavras hexadecimais Unicode em evader.asm) para DLLs alternativas como urlmon.dll. Recalcule os hashes DJB2 para novas APIs usando a lógica str_hash. Comente as macros (ex.: KILL_DEBUGGERS) para depuração.

Limitações e Considerações

AsmLdr é otimizado para Windows 10 e 11 x64; atualizações do kernel podem alterar offsets (ex.: PEB+0x18) ou padrões da NTDLL (ex.: 0xb8d18b4c), exigindo validação. O tratamento de erros depende de retornos NTSTATUS (ex.: <0 indica falha), sem registro em log integrado. Operações lixo e falsas consomem ciclos de CPU, podendo alertar monitores de recursos em sistemas limitados. Use somente em ambientes controlados.

Baixar ferramenta