Skip to content
KitploitKITPLOIT
StrumentiBlog
Invia
StrumentiBlog
Invia

Strumenti di Hacking, PenTest e Cybersecurity per il tuo Arsenale di Sicurezza!

Kitploit è una directory di strumenti di hacking, cybersecurity e pentesting. Scopri gli ultimi aggiornamenti dei progetti per trovare vulnerabilità, analizzare sistemi, automatizzare i test e rafforzare la tua sicurezza.

··Feed·Contatto·Privacy·© 2026 Kitploit

Directory degli strumenti

Categorie

Vedi tutte le categorie
Loading categories
DbgNexum — Iniezione di shellcode utilizzando l'API di debug di Windows | Kitploit
Strumenti/GitHubGitHub/dis0rder0x00/dbgnexum
Generazione di PayloadExploitShellcodePost-ExploitPenetration TestingRed TeamingGenerazione di ShellcodeSviluppo PayloadBinary Exploitation
GitHubdis0rder0x00/dbgnexum

DbgNexum

Iniezione di shellcode utilizzando l'API di debug di Windows

183397 mesi faRevisionato da Kitploit

Più Popolari

Vedi tutti →

Scopri gli strumenti più utilizzati dalla nostra community.

Esplora tutti gli strumenti

Sfoglia la nostra collezione di strumenti

Vedi tutti gli strumenti →
Condividi
Vedi Repository

DbgNexum - Iniezione di Shellcode

DbgNexum è un Proof-of-Concept per iniettare shellcode utilizzando l'API di Debug di Windows e la Memoria Condivisa (File Mapping). Evita di scrivere e leggere la memoria remota direttamente, utilizzando invece la manipolazione del contesto per forzare il processo target a caricare ed eseguire il payload stesso.

Panoramica

L'iniettore si attacca a un processo target e crea un thread sospeso. Attraverso un ciclo di debug, imposta un Hardware Breakpoint per intrappolare l'esecuzione a un indirizzo di ritorno specifico. Ad ogni trap, l'iniettore modifica i registri della CPU per imitare chiamate di funzione, orchestrando una sequenza di chiamate alle API di Windows all'interno del processo target.

Al momento della stesura di questo README, ho testato la tecnica contro MDE ed Elastic, nessuno dei quali l'ha rilevata.

Caratteristiche Principali

  • Nessun WriteProcessMemory / VirtualAllocEx: Il payload viene trasferito tramite CreateFileMapping e MapViewOfFile.
  • Nessun ReadProcessMemory: L'approccio ottiene tutte le informazioni chiave dal contesto del thread.

Utilizzo

Il PoC utilizza uno shellcode XORato di msfvenom che avvia "calc.exe". Ma per favore usa il tuo shellcode!

  1. Includi il tuo shellcode (e la chiave XOR) in shellcode.h
  2. Trova l'ID del processo target.
  3. Esegui l'iniettore:
root@kitploit:~
DbgNexum.exe <PID>

Esempio di Output:

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.

Come Funziona

Il flusso di esecuzione è un continuo andirivieni tra il Debug Loop dell'iniettore e il processo target.

Fasi di Iniezione

La funzione DebugLoop contiene la logica principale di iniezione e orchestra la "macchina a stati":

0. Preparazione:

  • L'iniettore salva il puntatore allo stack corrente per riutilizzarlo in ogni fase
  • Per ottenere l'indirizzo di ritorno dello stack ancorato, impostiamo un trap flag e impostiamo l'esecuzione su una chiamata ret istantanea.

1. Allocazione:

  • Imposta HWBP sull'indirizzo di ritorno dello stack ancorato, per essere notificato quando una funzione chiamata ritorna.
  • Prepara e forza il thread a chiamare LocalAlloc per (ovviamente) allocare un piccolo buffer.

2. Impostazione Dati:

  • Prepara e forza il thread a chiamare memcpy per copiare la stringa MZ nel buffer precedentemente allocato.

3. Preparazione Stack:

  • Forza il thread a chiamare memset per azzerare uno slot dello stack. Questo è in preparazione della fase 5, che chiamerà MapViewOfFile. Poiché la funzione userà >4 argomenti, il 5° argomento viene passato tramite lo stack (che impostiamo qui).

4. Apri Mapping:

  • Forza il thread a chiamare OpenFileMappingA usando il nome MZ, "creato" nelle fasi 2 e 3.

5. Mappa Payload:

  • Forza il target a chiamare MapViewOfFile. Questo mappa la sezione di memoria condivisa (contenente lo shellcode) nello spazio degli indirizzi del target con permessi EXECUTE.

6. Esecuzione:

  • Reindirizza RIP all'indirizzo restituito da MapViewOfFile.
  • Pulisce i registri di debug e si stacca.
Scarica lo strumento