
Monitorea ataques DCSYNC y DCSHADOW y crea Eventos de Windows personalizados para estos eventos.
Esta herramienta es una aplicación/servicio que se puede implementar en controladores de dominio para alertar sobre intentos de sincronización de Controladores de Dominio. Cuando se detecta un intento, la herramienta escribe un evento en el Registro de Eventos de Windows. Estos eventos se pueden correlacionar en un SIEM. Además, esta herramienta puede tomar una lista de IPs de DC válidas y, en esta configuración, solo alertar cuando un intento de sincronización de DC proviene de una IP que no es DC. Esta herramienta está diseñada para proporcionar a los Blue Teams una forma de combatir ataques de sincronización de DC y DC SHADOW sin herramientas comerciales como Microsoft ATA o sistemas IDS/IPS sofisticados.
Breve video en YouTube: https://www.youtube.com/watch?v=oLND9QZfaJc
Para instalar esta herramienta, puede usar los binarios precompilados o compilar la herramienta usted mismo. El enlace para los binarios precompilados está aquí:
Servicio de 32 bits: https://github.com/shellster/DCSYNCMonitor/raw/master/Release/DCSYNCMONITORSERVICE.exe
Servicio de 64 bits: https://github.com/shellster/DCSYNCMonitor/raw/master/x64/Release/DCSYNCMONITORSERVICE.exe
Necesitará tener Winpcap o Npcap instalado en su controlador de dominio. Winpcap debería funcionar, pero no se recomienda ya que los métodos de captura de paquetes no son tan eficientes o exhaustivos como NPcap. Esta herramienta solo se ha probado brevemente con Winpcap.
Para instalar Npcap, descargue el instalador desde aquí:
Debe asegurarse de que las siguientes opciones estén marcadas:
Después de la instalación, deberá reiniciar el controlador de dominio.
Npcap no instala las DLL de la biblioteca de soporte en la ruta de búsqueda de DLL del sistema, por lo que deberá realizar las siguientes tareas después de la instalación:
copy "%WINDIR%\System32\Npcap\*.dll" "%WINDIR%\System32\"
#Si aplica (Servicio de 32 bits en sistema de 64 bits):
copy "%WINDIR%\SYSWOW64\Npcap\*.dll" "%WINDIR%\SYSWOW64\"
nota: Si no se completa el paso anterior, recibirá errores sobre la falta de wpcap.dll o Packet.dll al intentar ejecutar la herramienta.
Ahora copie DCSYNCMONITOR.EXE de este proyecto en una ubicación adecuada. Recomendamos %WINDIR%\SYSTEM32 para sistemas de 32 bits o sistemas de 64 bits con un servicio de 64 bits, o %WINDIR%\SYSWOW64 si está utilizando el servicio de 32 bits en un sistema de 64 bits.
La herramienta ahora se puede ejecutar. Sin embargo, puede ejecutarla de una de dos maneras:
En este modo, la herramienta escribirá un evento de Advertencia DCSYNCALERT en el Registro de Eventos de Aplicaciones de Windows cada vez que una nueva IP (no vista en los últimos cinco minutos) intente realizar una sincronización de DC contra el controlador de dominio. Esto incluirá actividades de sincronización legítimas entre controladores de dominio.
Se puede colocar un archivo de configuración llamado "dc_ip_list.conf" en el mismo directorio que la herramienta. Si este archivo existe, debe contener una dirección IPv4 (o IPv6 en formato largo) por línea. La herramienta leerá esta lista al iniciarse. En este modo, no se escribirán eventos para intentos de sincronización de DC desde direcciones IP coincidentes. Sin embargo, si ocurre un intento de sincronización de DC desde cualquier otra dirección IP, se escribirá un evento de Error DCSYNCALERT en el Registro de Eventos de Aplicaciones de Windows.
nota Los cambios en el archivo dc_ip_list.conf no surtirán efecto hasta que el servicio se detenga y reinicie.
La forma habitual de usar esta herramienta es instalarla como un servicio. Una vez que la herramienta se coloca en la carpeta correcta, esto se puede lograr fácilmente ejecutando:
DCMONITORSERVICE.exe -install
Una vez que haya instalado el servicio, deberá iniciarlo manualmente desde el menú Services.msc o usando los comandos net o sc adecuados. Se iniciará automáticamente en futuros reinicios.
Si necesita desinstalar el servicio, ejecute el siguiente comando:
DCMONITORSERVICE.exe -remove
Finalmente, para ejecutar la herramienta en modo independiente, sin instalar un servicio (especialmente útil para depuración):
DCMONITORSERVICE.exe -standalone
Los eventos de Advertencia de sincronización de DC ocurren cuando no se proporciona una lista de IPs de DC válidas, o cuando ocurre una sincronización de DC desde una IP de DC válida:

Los eventos de Error de sincronización de DC ocurren cuando se proporciona una lista de IPs de DC válidas y ocurre una sincronización de DC desde cualquier otra dirección IP:

Necesitará Visual Studio 2015 o posterior. La edición Community (gratuita) es perfectamente aceptable. Una vez que abra el proyecto, debería poder compilar inmediatamente las versiones Dev y Release tanto en variantes de 32 bits como de 64 bits. Las ediciones Debug no deben implementarse en un entorno de producción. Estas generan información extensa de errores y depuración, incluidos volcados de paquetes TCP (si descomenta la siguiente línea en el archivo monitor.cpp):
#ifdef _DEBUG
//debug_print("TCP SRC IP: %s\nData:\n", tcppacket.source_ip.address.c_str());
//print_payload((const u_char *)tcppacket.data, tcppacket.data_length);
#endif
Las versiones Release son mucho más pequeñas y eliminan automáticamente las declaraciones de depuración.
Esta herramienta tiene las siguientes limitaciones conocidas:
Esta herramienta se proporciona bajo la Licencia MIT (Ver LICENCIA)
Herramienta escrita por Shelby Spencer:
FusionX me proporcionó generosamente tiempo para actualizar y refinar esta herramienta, así como una plataforma para anunciarla. Sin embargo, este proyecto es de mi exclusiva propiedad y desarrollo.
Las sugerencias, comentarios y pull requests son bienvenidos y alentados.