Skip to content
KitploitKITPLOIT
StrumentiExploitsBlog
Log in
Invia
StrumentiExploitsBlog
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
dnscat2 — Tunnel di comando e controllo crittografato tramite protocollo DNS. Crea canali C&C furtivi per test di penetrazione, con trasferimento file, accesso shell e capacità di port forwarding attraverso query DNS. | Kitploit
Strumenti/GitHubGitHub/iagox86/dnscat2
Strumenti di Crittografia/DecrittografiaEvasione IDS/IPSEsfiltrazione DatiPenetration TestingCommand and ControlRed TeamingStrumento di Accesso RemotoAnalisi DNSTop in Command and Control n.16Top in Esfiltrazione Dati n.1
4.0k652334 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
Top in Evasione IDS/IPS n.12
Top in Strumento di Accesso Remoto n.20
GitHubiagox86/dnscat2

dnscat2

Tunnel di comando e controllo crittografato tramite protocollo DNS. Crea canali C&C furtivi per test di penetrazione, con trasferimento file, accesso shell e capacità di port forwarding attraverso query DNS.

Vedi Repository

***** NOTA: La password per i download .zip è sempre "password"! *****

Introduzione

Benvenuti in dnscat2, un tunnel DNS che NON vi farà ammalare e uccidere!

Questo strumento è progettato per creare un canale di comando e controllo (C&C) crittografato tramite il protocollo DNS, che rappresenta un tunnel efficace al di fuori di quasi tutte le reti.

Questo file README dovrebbe contenere tutto ciò che serve per iniziare! Se siete interessati ad approfondire il protocollo, come è strutturato il codice, piani futuri o altri argomenti esoterici, consultate la cartella doc/.

Licenza

Questo software è rilasciato sotto licenza BSD. Per maggiori informazioni, consultare LICENSE.md.

Panoramica

dnscat2 è composto da due parti: il client e il server.

Il client è progettato per essere eseguito su una macchina compromessa. È scritto in C e ha le minime dipendenze possibili. Dovrebbe funzionare quasi ovunque (se trovate un sistema in cui non compila o non viene eseguito, per favore aprite un ticket, soprattutto se potete aiutarmi ad ottenere l'accesso a quel sistema).

Quando eseguite il client, di solito specificate un nome di dominio. Tutte le richieste verranno inviate al server DNS locale, che verranno poi reindirizzate al server DNS autoritativo per quel dominio (che, presumibilmente, controllate).

Se non disponete di un server DNS autoritativo, potete anche usare connessioni dirette su UDP/53 (o qualsiasi altra porta). Saranno più veloci e sembreranno comunque traffico DNS a un osservatore occasionale, ma saranno molto più evidenti in un registro dei pacchetti (tutti i domini sono preceduti da "dnscat.", a meno che non modifichiate il sorgente). Questa modalità sarà spesso bloccata dai firewall.

Il server è progettato per essere eseguito su un server DNS autoritativo. È scritto in Ruby e dipende da diverse gemme. Quando lo eseguite, simile al client, specificate quali domini deve ascoltare, oltre ad ascoltare i messaggi inviati direttamente ad esso su UDP/53. Quando riceve traffico per uno di questi domini, tenta di stabilire una connessione logica. Se riceve altro traffico, lo ignora per impostazione predefinita, ma può anche inoltrarlo a monte.

Di seguito sono riportate le istruzioni dettagliate per entrambe le parti.

In che modo è diverso da .....

dnscat2 si sforza di essere diverso dagli altri protocolli di tunneling DNS essendo progettato per uno scopo speciale: comando e controllo.

Non è progettato per farvi uscire da una rete di hotel, o per ottenere Internet gratuito su un aereo. E non si limita a fare tunneling TCP.

Può fare tunneling di qualsiasi dato, senza protocollo allegato. Ciò significa che può caricare e scaricare file, può eseguire una shell e può fare queste cose bene. Può anche potenzialmente fare tunneling TCP, ma questo verrà aggiunto solo nel contesto di uno strumento di penetration testing (cioè, tunneling TCP in una rete), non come strumento di tunneling generico. È già stato fatto, non è interessante (per me).

Inoltre, è crittografato per impostazione predefinita. Non credo che nessun altro tunnel DNS pubblico crittografi tutto il traffico!

Dove trovarlo

Ecco alcuni link importanti:

  • Codice sorgente su Github
  • Download (troverete versioni firmate Linux 32-bit, Linux 64-bit, Win32 e codice sorgente del client, più un archivio del server - tenete presente che il file di firma è ospitato sullo stesso server dei file, quindi se siete preoccupati, verificate la mia chiave PGP :) )
  • Documentazione utente Una raccolta di file, sia per utenti finali (come il Changelog) che per sviluppatori (come il documento Contributing)
  • Issue tracker (potete anche segnalarmi problemi via email, basta mettere il mio nome (ron) davanti al mio nome di dominio (skullsecurity.net))

Come giocare

La teoria alla base di dnscat2 è semplice: crea un tunnel attraverso il protocollo DNS.

Perché? Perché il DNS ha una proprietà sorprendente: si farà strada da server a server fino a quando non capisce dove deve andare.

Ciò significa che, affinché dnscat possa portare il traffico fuori da una rete sicura, deve semplicemente inviare messaggi a un server DNS, che inoltrerà felicemente le cose attraverso la rete DNS fino a raggiungere il vostro server DNS.

Ciò, ovviamente, presuppone che abbiate accesso a un server DNS autoritativo. dnscat2 supporta anche connessioni "dirette" - cioè, eseguire un client dnscat che si connette direttamente al vostro dnscat sul vostro indirizzo IP e sulla porta UDP 53 (per impostazione predefinita). Il traffico sembra ancora traffico DNS e potrebbe superare sistemi IDS/IPS meno intelligenti, ma è ancora probabile che venga bloccato dai firewall.

Se non sapete come configurare un server DNS autoritativo, dovete configurarlo con un provider di domini. izhan ha gentilmente scritto una guida per voi!

Compilazione

Client

La compilazione del client dovrebbe essere abbastanza semplice - tutto ciò che serve per compilare è make/gcc (per Linux) o Cygwin o Microsoft Visual Studio (per Windows). Ecco i comandi su Linux:

$ git clone https://github.com/iagox86/dnscat2.git
$ cd dnscat2/client/
$ make

Su Windows, caricate client/win32/dnscat2.vcproj in Visual Studio e premete "build". L'ho creato e testato su Visual Studio 2008 - finché non ottengo una copia legittima gratuita di una versione più recente, probablemente continuerò con quella. :)

Se la compilazione fallisce, per favore segnalate un bug sulla mia pagina GitHub! Inviate dettagli sul vostro sistema.

Potete verificare che dnscat2 sia stato compilato correttamente eseguendolo senza flag; vedrete che tenta di avviare un tunnel DNS con il vostro server DNS configurato (che fallirà):

$ ./dnscat
Starting DNS driver without a domain! This will only work if you
are directly connecting to the dnscat2 server.

You'll need to use --dns server=<server> if you aren't.

** WARNING!
*
* It looks like you're running dnscat2 with the system DNS server,
* and no domain name!*
* That's cool, I'm not going to stop you, but the odds are really,
* really high that this won't work. You either need to provide a
* domain to use DNS resolution (requires an authoritative server):
*
*     dnscat mydomain.com
*
* Or you have to provide a server to connect directly to:
*
*     dnscat --dns=server=1.2.3.4,port=53
*
* I'm going to let this keep running, but once again, this likely
* isn't what you want!
*
** WARNING!

Creating DNS driver:
 domain = (null)
 host   = 0.0.0.0
 port   = 53
 type   = TXT,CNAME,MX
 server = 4.2.2.1
[[ ERROR ]] :: DNS: RCODE_NAME_ERROR
[[ ERROR ]] :: DNS: RCODE_NAME_ERROR
[[ ERROR ]] :: DNS: RCODE_NAME_ERROR
[[ ERROR ]] :: DNS: RCODE_NAME_ERROR
[[ ERROR ]] :: DNS: RCODE_NAME_ERROR
[[ ERROR ]] :: DNS: RCODE_NAME_ERROR
[[ ERROR ]] :: DNS: RCODE_NAME_ERROR
[[ ERROR ]] :: DNS: RCODE_NAME_ERROR
[[ ERROR ]] :: DNS: RCODE_NAME_ERROR
[[ ERROR ]] :: DNS: RCODE_NAME_ERROR
[[ ERROR ]] :: The server hasn't returned a valid response in the last 10 attempts.. closing session.
[[ FATAL ]] :: There are no active sessions left! Goodbye!
[[ WARNING ]] :: Terminating

Server

Scarica lo strumento