Herramienta para implementar y detectar el uso de honeytokens en Active Directory.

DCEPT (Domain Controller Atticing Password Tripwire) es un tripwire basado en honeytokens para Active Directory de Microsoft. Los Honeytokens son piezas de información intencionadamente esparcidas en el sistema para que puedan ser descubiertas por un intruso. En el caso de DCEPT, los honeytokens son credenciales que solo serían conocidas por alguien que las extraiga de la memoria. Un intento de inicio de sesión usando estas credenciales falsas significaría que alguien estaba dentro de la red y está intentando la escalada de privilegios al administrador del dominio.

Esta prueba de concepto se publica como código abierto para beneficiar a los administradores de sistemas de Windows. El objetivo de este proyecto es proporcionar una herramienta de implementación gratuita y sencilla, así como educar a los administradores sobre la naturaleza de estos ataques.

DCEPT está formado por tres componentes:

  • El primero es un agente escrito en C # que almacena honeytokens en memoria en los puntos finales. Los tokens en sí mismos, son credenciales no válidas y no representan ningún riesgo de compromiso de la seguridad del sistema. Los Honeytokens se solicitan a intervalos regulares y están asociados de manera única con una estación de trabajo para una ventana de tiempo particular; Por lo tanto, proporcionar una línea de tiempo forense. En el caso de que se use un honeytoken en una estación de trabajo diferente en una fecha posterior, su punto de origen aún se conoce, lo que podría limitar el alcance de una investigación.
  • El segundo es un componente de servidor que genera y emite honeytokens para solicitar a los puntos finales. Los tokens generados se almacenan en una base de datos junto con la marca de tiempo y el punto final que lo solicitaron.
  • Un tercer componente actúa como un monitor que escucha pasivamente los intentos de inicio de sesión. Para capturar los paquetes necesarios, la interfaz DCEPT debe estar en la misma red que el controlador de dominio.

Se proporciona una compilación de contenedor de Docker para los componentes del servidor, lo que hace que la implementación sea un proceso simple. Antes de poder utilizar DCEPT, debe tener Docker instalado en su sistema. Consulte el sitio web de Docker para las instrucciones de instalación.

Configuración.

El archivo de configuración se llama “dcept.cfg” y debe modificarse antes de ejecutar el contenedor Docker. Actualmente solo se admiten notificaciones a través de rsyslog. Configure syslog_host para que apunte al servidor de syslog de su SIEM.

Arquitectura multiservidor.

DCEPT se puede ejecutar en una configuración independiente o de varios servidores. De forma predeterminada, DCEPT se ejecuta como un nodo maestro donde es responsable de generar credenciales y detectar las solicitudes de autenticación. El tráfico de múltiples DC puede ser monitoreado por una sola instancia de DCEPT usando conexiones de red. Alternativamente, DCEPT puede ejecutarse como un nodo esclavo configurando la opción “master_node” para que apunte a un nodo maestro. En esta configuración, los nodos esclavos rastrean y luego transmiten los datos relevantes al nodo maestro donde se comparan con la base de datos de credenciales.

Construyendo la imagen de Docker.

root@host:~#cd server
root@host:~#./docker_build.sh

Ejecutando la imagen de Docker como un contenedor.

Ejecute el contenedor Docker interactivamente con el siguiente comando:

root@host:~# cd server
root@host:~#./launcher.sh

Ejecute el contenedor en segundo plano con el siguiente comando:

root@host:~# cd server
root@host:~# ./daemon.sh

Construyendo el agente.

El agente se proporciona solo como código fuente de C #, diseñado para ser auditado y compilado por el administrador de la red antes de implementarlo en los puntos finales. Si está compilando en un sistema de Windows, Microsoft proporciona Visual Studio Express de forma gratuita que se puede descargar aquí.

Configurando el agente.

La configuración del agente está codificada y debe modificarse antes de la compilación. Hacia la parte superior del código, encontrará dos constantes, URL y PARAM . La URL debe apuntar al servidor de generación DCEPT. La URL también puede contener cualquier número de directorios / subdirectorios arbitrarios. Esto es simplemente cosmético y está destinado a intrigar a un pirata informático en caso de que encuentren la URL. La constante PARAM es cómo el agente pasa el nombre de host del punto final al servidor de Generación. El nombre del parámetro también se puede cambiar con fines estéticos, pero asegúrese de que se refleje en el archivo de configuración del servidor de generación.

IMPORTANTE: el uso de nombres como “honeytoken” o cualquier otra cosa que pueda sugerir que está utilizando DCEPT a un pirata informático es contradictorio y altamente desalentador.

// Edita esto para que apunte a la URL de tu servidor Honeytoken
static string URL=”http://not-a-dcept-server-wink.domain.lan/backup/auth/nonsense”;
static string PARAM=”machine”;

Compilando en Ubuntu.

Si prefieres compilar desde un sistema Ubuntu, puedes usar mono. Si aún no lo tiene instalado, puede ejecutar el siguiente comando para instalar los paquetes de desarrollo mono y el compilador de C #.

root@host:~# apt-get install monodevelop mono-mcs

Una vez que instale mono, cambie su directorio de trabajo y luego ejecute lo siguiente para compilar el código fuente.

root@host:~# mcs ht-agent.cs -r: System.Data.dll -r: System.Web.Extensions.dll -r: System.Web.Services

Despliegue del agente.

La forma en que se despliega el agente variará de una organización a otra y depende totalmente de quien lo despliegue. El despliegue de una manera que deje las credenciales de administrador de dominio válidas en caché en los puntos finales (por ejemplo, psexec) es altamente desaconsejable.

Pruebas.

Ejecute el siguiente comando para obtener un shell interactivo dentro del contenedor.

root@host:~# docker exec -it dcept /bin/bash

tcpreplay se instala dentro del contenedor de la ventana acoplable junto con un pcap de muestra para fines de prueba. Mientras se ejecuta DCEPT, ejecute lo siguiente desde dentro del contenedor:

root@host:~# tcpreplay -i <interfaz> /opt/dcept/example.pcap

Más información y descarga de DCEPT:
https://github.com/secureworks/dcept

Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión /  Cambiar )

Google photo

Estás comentando usando tu cuenta de Google. Cerrar sesión /  Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión /  Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión /  Cambiar )

Conectando a %s