Skip to content
KitploitKITPLOIT
HerramientasBlog
Log in
Enviar
HerramientasBlog
Enviar

¡Herramientas de Hacking, PenTest y Ciberseguridad para tu Arsenal de Seguridad!

Kitploit es un directorio de herramientas de hacking, ciberseguridad y pentesting. Descubre las últimas actualizaciones de proyectos para encontrar vulnerabilidades, analizar sistemas, automatizar pruebas y fortalecer tu seguridad.

··Feeds·Contacto·Privacidad·© 2026 Kitploit

Directorio de Herramientas

Categorías

Ver todas las categorías
Loading categories
dnscat2 — Túnel cifrado de comando y control sobre el protocolo DNS. Crea canales C&C sigilosos para pruebas de penetración, con transferencia de archivos, acceso a shell y capacidades de reenvío de puertos a través de consultas DNS. | Kitploit
Herramientas/GitHubGitHub/iagox86/dnscat2
Herramientas de Cifrado/DescifradoEvasión de IDS/IPSExfiltración de DatosPruebas de PenetraciónComando y ControlRed TeamingHerramienta de Acceso RemotoAnálisis de DNSTop en Comando y Control #16Top en Exfiltración de Datos #1
4.0k65233hace 4 añosRevisado por Kitploit

Más Populares

Ver todos →

Descubre las herramientas más usadas por nuestra comunidad.

Explora todas las herramientas

Explora nuestra colección de herramientas

Ver todas las herramientas →
Compartir
Top en Evasión de IDS/IPS #12
Top en Herramienta de Acceso Remoto #20
GitHubiagox86/dnscat2

dnscat2

Túnel cifrado de comando y control sobre el protocolo DNS. Crea canales C&C sigilosos para pruebas de penetración, con transferencia de archivos, acceso a shell y capacidades de reenvío de puertos a través de consultas DNS.

Ver Repositorio

***** NOTA: ¡La contraseña para las descargas .zip es siempre "password"! *****

Introducción

¡Bienvenido a dnscat2, un túnel DNS que NO te enfermará y te matará!

Esta herramienta está diseñada para crear un canal de comando y control (C&C) cifrado sobre el protocolo DNS, que es un túnel efectivo para salir de casi cualquier red.

Este archivo README contiene todo lo que necesitas para empezar. Si estás interesado en profundizar en el protocolo, cómo está estructurado el código, planes futuros u otros temas esotéricos, consulta la carpeta doc/.

Licencia

Esto se publica bajo la licencia BSD. Consulta LICENSE.md para más información.

Resumen

dnscat2 consta de dos partes: el cliente y el servidor.

El cliente está diseñado para ejecutarse en una máquina comprometida. Está escrito en C y tiene las mínimas dependencias posibles. Debería funcionar en casi cualquier lugar (si encuentras un sistema donde no compile o funcione, por favor abre un ticket, especialmente si puedes ayudarme a obtener acceso a dicho sistema).

Cuando ejecutas el cliente, normalmente especificas un nombre de dominio. Todas las solicitudes se enviarán al servidor DNS local, que luego se redirigen al servidor DNS autoritativo para ese dominio (que, presumiblemente, tú controlas).

Si no tienes un servidor DNS autoritativo, también puedes usar conexiones directas en UDP/53 (o el que elijas). Serán más rápidas y seguirán pareciendo tráfico DNS a un observador casual, pero son mucho más evidentes en un registro de paquetes (todos los dominios tienen el prefijo "dnscat.", a menos que modifiques el código fuente). Este modo será bloqueado con frecuencia por los cortafuegos.

El servidor está diseñado para ejecutarse en un servidor DNS autoritativo. Está en Ruby y depende de varias gemas diferentes. Cuando lo ejecutas, de manera similar al cliente, especificas qué dominio(s) debe escuchar, además de escuchar mensajes enviados directamente a él en UDP/53. Cuando recibe tráfico para uno de esos dominios, intenta establecer una conexión lógica. Si recibe otro tráfico, lo ignora por defecto, pero también puede reenviarlo ascendente.

Las instrucciones detalladas para ambas partes están a continuación.

¿En qué se diferencia esto de .....?

dnscat2 se esfuerza por ser diferente de otros protocolos de túneles DNS al estar diseñado para un propósito especial: comando y control.

No está diseñado para sacarte de una red de hotel, ni para obtener Internet gratis en un avión. Y no solo tuneliza TCP.

Puede tunelizar cualquier dato, sin protocolo adjunto. Lo que significa que puede subir y descargar archivos, puede ejecutar un shell, y puede hacer esas cosas bien. También puede potencialmente tunelizar TCP, pero eso solo se agregará en el contexto de una herramienta de pentesting (es decir, tunelizar TCP hacia una red), no como una herramienta de túneles de propósito general. Eso ya se ha hecho, no es interesante (para mí).

También está cifrado por defecto. ¡No creo que ningún otro túnel DNS público cifre todo el tráfico!

Dónde conseguirlo

Aquí hay algunos enlaces importantes:

  • Código fuente en Github
  • Descargas (encontrarás versiones firmadas de Linux 32 bits, Linux 64 bits, Win32 y código fuente del cliente, además de un archivo del servidor; ten en cuenta que el archivo de firma está alojado en el mismo servidor que los archivos, así que si te preocupa, por favor verifica mi clave PGP :) )
  • Documentación de usuario Una colección de archivos, tanto para usuarios finales (como el Registro de cambios) como para desarrolladores (como el doc de Contribución)
  • Rastreador de incidencias (también puedes enviarme incidencias por correo electrónico, solo pon mi nombre (ron) delante de mi nombre de dominio (skullsecurity.net))

Cómo jugar

La teoría detrás de dnscat2 es simple: crea un túnel sobre el protocolo DNS.

¿Por qué? Porque DNS tiene una propiedad increíble: viajará de servidor a servidor hasta que descubra a dónde se supone que debe ir.

Eso significa que para que dnscat saque tráfico de una red segura, simplemente tiene que enviar mensajes a un servidor DNS, que reenviará felizmente las cosas a través de la red DNS hasta que llegue a tu servidor DNS.

Eso, por supuesto, asume que tienes acceso a un servidor DNS autoritativo. dnscat2 también admite conexiones "directas", es decir, ejecutar un cliente dnscat que se conecta directamente a tu dnscat en tu dirección IP y puerto UDP 53 (por defecto). El tráfico sigue pareciendo tráfico DNS y podría pasar por sistemas IDS/IPS más tontos, pero aún es probable que sea detenido por cortafuegos.

Si no tienes claro cómo configurar un servidor DNS autoritativo, es algo que debes configurar con un proveedor de dominios. izhan amablemente escribió uno para ti.

Compilación

Cliente

Compilar el cliente debería ser bastante sencillo: todo lo que necesitas para compilar es make/gcc (para Linux) o Cygwin o Microsoft Visual Studio (para Windows). Aquí están los comandos en Linux:

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

En Windows, carga client/win32/dnscat2.vcproj en Visual Studio y haz clic en "build". Lo creé y probé en Visual Studio 2008; hasta que consiga una copia legal gratuita de una versión más nueva, probablemente me quedaré con esa. :)

Si la compilación falla, ¡por favor reporta un error en mi página de github! Por favor, envía detalles sobre tu sistema.

Puedes verificar que dnscat2 se ha compilado correctamente ejecutándolo sin banderas; verás que intenta iniciar un túnel DNS con el servidor DNS que tengas configurado (lo que fallará):

$ ./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

Servidor

Descargar herramienta