
Мониторит атаки DCSYNC и DCSHADOW и создаёт пользовательские события Windows для этих событий.
Этот инструмент представляет собой приложение/службу, которое может быть развернуто на контроллерах домена для оповещения о попытках синхронизации контроллеров домена. При обнаружении попытки инструмент записывает событие в журнал событий Windows. Эти события могут быть скоррелированы в SIEM. Кроме того, этот инструмент может принимать список допустимых IP-адресов контроллеров домена и в такой конфигурации оповещать только в том случае, если попытка синхронизации домена поступает с IP-адреса, не являющегося контроллером домена. Инструмент предназначен для предоставления командам Blue Team способа борьбы с атаками DC SYNC и DC SHADOW без коммерческих инструментов, таких как Microsoft ATA или сложных IDS/IPS.
Краткое видео на Youtube: https://www.youtube.com/watch?v=oLND9QZfaJc
Для установки этого инструмента вы можете использовать либо предварительно собранные бинарные файлы, либо собрать инструмент самостоятельно. Ссылка на предварительно собранные бинарные файлы здесь:
32-битный сервис: https://github.com/shellster/DCSYNCMonitor/raw/master/Release/DCSYNCMONITORSERVICE.exe
64-битный сервис: https://github.com/shellster/DCSYNCMonitor/raw/master/x64/Release/DCSYNCMONITORSERVICE.exe
Вам потребуется установленный Winpcap или Npcap на вашем контроллере домена. Winpcap должен работать, но не рекомендуется, так как методы захвата пакетов не так эффективны и полны, как NPcap. Этот инструмент был лишь кратко протестирован с Winpcap.
Чтобы установить Npcap, загрузите установщик отсюда: https://nmap.org/npcap/
Убедитесь, что отмечены следующие параметры:
После установки необходимо перезагрузить контроллер домена.
Npcap не устанавливает библиотеки поддержки DLL в путь поиска DLL системы, поэтому после установки необходимо выполнить следующие задачи:
copy "%WINDIR%\System32\Npcap\*.dll" "%WINDIR%\System32\"
#Если применимо (32-битный сервис на 64-битной системе):
copy "%WINDIR%\SYSWOW64\Npcap\*.dll" "%WINDIR%\SYSWOW64\"
Примечание: Если предыдущий шаг не выполнен, вы будете получать ошибки об отсутствии wpcap.dll или Packet.dll при попытке запуска инструмента.
Теперь скопируйте DCSYNCMONITOR.EXE из этого проекта в подходящее место. Мы рекомендуем %WINDIR%\SYSTEM32 для 32-битных систем или 64-битных систем с 64-битным сервисом, или %WINDIR%\SYSWOW64, если вы используете 32-битный сервис на 64-битной системе.
Теперь инструмент можно запустить. Однако вы можете запустить его одним из двух способов:
В этом режиме инструмент будет записывать событие предупреждения DCSYNCALERT в журнал событий Windows Application каждый раз, когда новый IP-адрес (не наблюдавшийся в течение последних пяти минут) пытается выполнить DC SYNC против контроллера домена. Это будет включать легитимные действия синхронизации между контроллерами домена.
Файл конфигурации с именем "dc_ip_list.conf" может быть размещен в том же каталоге, что и инструмент. Если этот файл существует, он должен содержать один IPv4 (или длинную форму IPv6) адрес на строку. Инструмент загружает этот список при запуске. В этом режиме события не будут записываться для попыток DC Sync с совпадающих IP-адресов. Однако, если попытка DC Sync происходит с любого другого IP-адреса, будет записано событие ошибки DCSYNCALERT в журнал событий Windows Application.
Примечание: Изменения в файле dc_ip_list.conf не вступят в силу до остановки и повторного запуска службы.
Обычный способ использования этого инструмента — установить его как службу. После размещения инструмента в правильной папке это легко можно сделать, выполнив:
DCMONITORSERVICE.exe -install
После установки службы вам необходимо запустить ее вручную из меню Services.msc или с помощью соответствующих команд net или sc. Она будет автоматически запускаться при последующих перезагрузках.
Если вам нужно удалить службу, выполните следующую команду:
DCMONITORSERVICE.exe -remove
Наконец, чтобы запустить инструмент в автономном режиме без установки службы (особенно полезно для отладки):
DCMONITORSERVICE.exe -standalone
События предупреждения DC SYNC возникают, когда не предоставлен список допустимых IP-адресов DC, или когда DC SYNC происходит с допустимого IP-адреса DC:

События ошибки DC SYNC возникают, когда предоставлен список допустимых IP-адресов DC и DC SYNC происходит с любого другого IP-адреса:

Вам потребуется Visual Studio 2015 или более поздняя версия. Подойдет Community (бесплатная) версия. После открытия проекта вы сможете сразу собрать версии Dev и Release как в 32-битном, так и в 64-битном вариантах. Версии Debug не следует развертывать в производственной среде. Они выводят обширную информацию об ошибках и отладке, включая дампы TCP-пакетов (если раскомментировать следующую строку в файле 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
Версии Release значительно меньше и автоматически удаляют отладочные операторы.
Этот инструмент имеет следующие известные ограничения:
Этот инструмент предоставляется под лицензией MIT (см. LICENSE)
Инструмент написан Shelby Spencer:
FusionX любезно предоставил мне время для обновления и доработки этого инструмента, а также платформу для его анонсирования. Однако этот проект полностью принадлежит мне и разработан мной.
Предложения, отзывы и запросы на слияние приветствуются и поощряются.