Underc0de

Programación Scripting => Python => Mensaje iniciado por: TheHackForce en Febrero 24, 2019, 05:39:27 PM

Título: DoHC2: aprovechado para comando y control a través de DNS a través de HTTPS
Publicado por: TheHackForce en Febrero 24, 2019, 05:39:27 PM
DoHC2

DoHC2 permite que la biblioteca de ExternalC2 de Ryan Hanson ( https://github.com/ryhanson/ExternalC2 ) se aproveche para 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 de operaciones del equipo rojo Cobalt Strike.

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

Diapositivas:  Jugando a Devil's Advocate to Security Initiatives con ATT & CK
Diagrama

(https://securityonline.info/wp-content/uploads/2018/10/dohc2_diagram.png)

Descargar

    git clone https://github.com/SpiderLabs/DoHC2.git

Uso

    Instalar y lanzar Cobaltstrike teamserver.
    Inicie un detector de beacon_http / beacon_https –  Gotcha.  Esto se puede desactivar con un firewall, pero lo necesita para que funcione el C2 externo.
    Cargue en el script 'external_c2.cna' para iniciar el puerto 2222 de ExternalC2 (Firewall desactivado).
    Instalar dependencias para un servidor python3.
    Permitir el puerto 53 / udp a Internet (o a los rangos de IP del proveedor de DoH).
    Cree un registro A en su dominio para que apunte a la IP del servidor teamserver / DNS, es decir, [A] entry.example.org -> 000.000.000.000
    Cree un registro NS para señalar el registro A para el canal de envío (INPUTDOMAIN), es decir, [NS] send.example.org -> entry.example.org.
    Cree un registro NS para que apunte al registro A para el canal de recepción (OUTPUTDOMAIN), es decir, [NS] receive.example.org -> entry.example.org.
    Cambie INPUTDOMAIN y OUTPUTDOMAIN en DoHC2.py. Cambiar clave de cifrado / IV: se utiliza para cifrar la ruta de Teamserver–> Sólo cliente (Encriptador de etapas).
    Inicie el servidor DNS de python3.
    Construir la biblioteca ExternalC2. Cambie la clave de cifrado / IV en DoHChannel.cs para que coincida con el servidor python3.
    Configure e inicie DoHC2 () como se indica a continuación y asegúrese de configurar INPUTDOMAIN, OUTPUTDOMAIN y un  proveedor de DoH .

Servidor

Servidor DNS Python basado en el  servidor DNS ACME

    Esto interconecta el DNS sin procesar al Cobalt Strike Teamserver en 127.0.0.1:2222 por defecto.
    Cambie INPUTDOMAIN y OUTPUTDOMAIN para que sean hosts que sean NS de la IP externa del servidor:

   pip3 install -r Requirements.txt
   sudo python3 ./DoHC2.py

Fuente:  https://github.com/SpiderLabs/

saludos y dedicacion para ANTRAX ya que aprendi mucho de el