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
DbgNexum — Injeção de shellcode usando a Windows Debugging API | Kitploit
Ferramentas/GitHubGitHub/dis0rder0x00/dbgnexum
Geração de PayloadsExploraçãoShellcodePós-ExploraçãoTestes de PenetraçãoRed TeamingGeração de ShellcodeDesenvolvimento de PayloadsExploração de Binários
GitHubdis0rder0x00/dbgnexum

DbgNexum

Injeção de shellcode usando a Windows Debugging API

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

DbgNexum - Injeção de Shellcode

DbgNexum é uma Prova de Conceito para injetar shellcode usando a API de Depuração do Windows e Memória Compartilhada (Mapeamento de Arquivo). Ele evita escrever e ler memória remota diretamente, utilizando manipulação de contexto para forçar o processo alvo a carregar e executar o payload por conta própria.

Visão Geral

O injetor anexa a um processo alvo e cria uma thread suspensa. Por meio de um loop de depuração, ele define um Ponto de Interrupção de Hardware (HWBP) para capturar a execução em um endereço de retorno específico. A cada captura, o injetor modifica os registradores da CPU para simular chamadas de função, orquestrando uma sequência de chamadas de função da API do Windows dentro do processo alvo.

No momento em que este README foi escrito, testei a técnica contra o MDE e o Elastic, e nenhum deles a detectou.

Principais Características

  • Sem WriteProcessMemory / VirtualAllocEx: O payload é transferido via CreateFileMapping e MapViewOfFile.
  • Sem ReadProcessMemory: A abordagem obtém todas as informações principais do contexto da thread.

Uso

A PoC usa um shellcode XORado do msfvenom que abre "calc.exe". Mas use seu próprio shellcode!

  1. Inclua seu shellcode (e chave XOR) em shellcode.h
  2. Encontre o ID do processo (PID) do alvo.
  3. Execute o injetor:
root@kitploit:~
DbgNexum.exe <PID>

Exemplo de Saída:

root@kitploit:~
[i] Section 'MZ' created and shellcode copied
[+] Bait thread created. Setting HWBP on FileTimeToSystemTime
[i] Execution Redirected:
|-> [0] Preparation & anchoring stack
|-> [1] Setting HWBP & buffer alloc
|-> [2] Copying File-Mapping name
|-> [3] Zeroing stack slot
|-> [4] Opening handle to named file mapping
|-> [5] Mapping payload into mem. with exec. perm.
|-> [6] Cleanup & shellcode execution
[+] Successfully detached from process 19256
[i] Orchestration complete.

Como Funciona

O fluxo de execução é uma constante troca entre o Loop de Depuração do injetor e o processo alvo.

Estágios da Injeção

A função DebugLoop contém a lógica principal da injeção e orquestra a "máquina de estados":

0. Preparação:

  • O injetor salva o ponteiro de pilha atual para reutilizar em cada estágio.
  • Para obter o endereço de retorno da pilha ancorada, definimos uma flag de trap e definimos a execução para uma chamada ret instantânea.

1. Alocação:

  • Define HWBP no endereço de retorno da pilha ancorada, para ser notificado quando uma função chamada retornar.
  • Prepara e força a thread a chamar LocalAlloc para (obviamente) alocar um pequeno buffer.

2. Configuração de Dados:

  • Prepara e força a thread a chamar memcpy para copiar a string MZ para o buffer previamente alocado.

3. Preparação da Pilha:

  • Força a thread a chamar memset para zerar um slot da pilha. Isso é preparação para o estágio 5, que chamará MapViewOfFile. Como a função usará mais de 4 argumentos, o 5º argumento é passado pela pilha (que definimos aqui).

4. Abrir Mapeamento:

  • Força a thread a chamar OpenFileMappingA usando o nome MZ, "criado" nos estágios 2 e 3.

5. Mapear Payload:

  • Força o alvo a chamar MapViewOfFile. Isso mapeia a seção de memória compartilhada (contendo o shellcode) no espaço de endereçamento do alvo com permissões EXECUTE.

6. Execução:

  • Redireciona RIP para o endereço retornado por MapViewOfFile.
  • Limpa os registradores de depuração e desanexa.
Baixar ferramenta