Skip to content
KitploitKITPLOIT
ИнструментыБлог
Отправить
ИнструментыБлог
Отправить

Инструменты для хакинга, пентеста и кибербезопасности — ваш арсенал защиты!

Kitploit — это каталог инструментов для хакинга, кибербезопасности и пентестинга. Находите последние обновления проектов для поиска уязвимостей, анализа систем, автоматизации тестирования и усиления вашей безопасности.

··Ленты·Контакты·Конфиденциальность·© 2026 Kitploit

Каталог инструментов

Категории

Все категории
Loading categories
LDAP-Monitoring-Watchdog — LDAP Watchdog: Инструмент мониторинга LDAP в реальном времени, совместимый с Linux, для обнаружения изменений в каталоге, предоставляющий видимость добавлений, изменений и удалений для администраторов и исследователей безопасности. | Kitploit
Инструменты/GitHubGitHub/megamansec/ldap-monitoring-watchdog
Разведка угрозРеагирование на ИнцидентыАнализ ЖурналовArchived
GitHubmegamansec/ldap-monitoring-watchdog

LDAP-Monitoring-Watchdog

LDAP Watchdog: Инструмент мониторинга LDAP в реальном времени, совместимый с Linux, для обнаружения изменений в каталоге, предоставляющий видимость добавлений, изменений и удалений для администраторов и исследователей безопасности.

Репозиторий

Популярное

Смотреть все →

Откройте для себя самые используемые инструменты нашего сообщества.

Изучить все инструменты

Просмотрите нашу коллекцию инструментов

Смотреть все инструменты →
Поделиться
1941685 месяцев назадПроверено Kitploit

LDAP Watchdog

Обзор

LDAP Watchdog — это инструмент, предназначенный для мониторинга изменений записей в каталоге LDAP в реальном времени. Он предоставляет механизм отслеживания и визуализации модификаций, добавлений и удалений записей пользователей и групп, позволяя пользователям сопоставлять ожидаемые изменения с реальными и выявлять потенциальные инциденты безопасности. Инструмент создавался с учётом OpenLDAP и Linux, однако может работать и в других реализациях LDAP. Он написан на Python и требует только библиотеки ldap3.

Это программное обеспечение написано Джошуа Роджерсом.

Если вас интересует что-либо из перечисленного ниже, то LDAP Watchdog для вас:

  • Узнавать, что происходит в вашем каталоге LDAP по запросу с интеграцией Slack Webhook.
  • Видеть новых сотрудников, уволенных и повышения, как только они появляются в LDAP.
  • Отслеживать когда и что делает HR.
  • Обнаруживать несанкционированные изменения в LDAP.
  • Мониторить случайную утечку данных.
  • Обнаруживать вход и выход пользователей из LDAP.

Помимо мониторинга модификаций, добавлений и удалений в каталоге LDAP, можно настроить игнорирование определённых атрибутов или даже точно настроить игнорирование атрибутов в зависимости от их старых/новых значений.

Отслеживаемые изменения могут пересылаться в Slack Webhook или выводиться в терминал (или и то, и другое). Поддерживается необязательная цветная раскраска вывода.

Ранее инструмент назывался LDAP-Stalker (поскольку мониторинг изменений каталога LDAP — отличный способ следить за изменениями в компании: узнавать о повышениях до их официального объявления, о новых сотрудниках, уволенных и т.д.). Подробности и история проекта описаны в статье в блоге.

Примеры (без фильтрации)

Примечание: в приведённых ниже примерах entryCSN и modifyTimestamp можно полностью игнорировать, установив LDAP_WATCHDOG_IGNORED_ATTRIBUTES=entryCSN,modifyTimestamp.

Вывод в терминал (с цветом):

Пример вывода LDAP Watchdog

Вывод в Slack:

Пример вывода LDAP Watchdog в Slack

Возможности

  1. Мониторинг в реальном времени: LDAP Watchdog непрерывно отслеживает изменения в каталоге LDAP в записях пользователей и групп.

  2. Сравнение изменений: Инструмент сравнивает изменения между последовательными поисками в LDAP, выделяя добавления, модификации и удаления.

  3. Проверка контрольного пользователя: LDAP Watchdog поддерживает механизм контрольного пользователя, генерируя ошибку, если изменения контрольного пользователя не найдены.

  4. Гибкая фильтрация LDAP: Пользователи могут настраивать фильтр LDAP с помощью переменной окружения LDAP_WATCHDOG_SEARCH_FILTER, чтобы сосредоточиться на определённых классах объектов или атрибутах.

  5. Интеграция со Slack: Получайте уведомления в реальном времени в Slack о добавленных, изменённых или удалённых записях LDAP.

  6. Настраиваемый вывод: Консольный вывод обеспечивает чёткие и цветные индикаторы добавлений, модификаций и удалений для удобства восприятия.

  7. Игнорируемые записи и атрибуты: Пользователи могут указать UUID и атрибуты, которые следует игнорировать в процессе сравнения.

  8. Условно игнорируемые атрибуты: Условная фильтрация позволяет игнорировать определённые атрибуты в зависимости от типа изменения (добавления, модификации, удаления).

Требования

  • Python 3.7+.
  • Пакет ldap3. Если используется Slack Webhook, также требуется пакет requests.

Установка

PyPI

root@kitploit:~
pip install LDAP-Monitor

Для добавления поддержки Slack Webhook:

root@kitploit:~
pip install LDAP-Monitor[slack]

Docker

root@kitploit:~
docker pull megamansec/ldap-monitor

Или из GitHub Container Registry:

root@kitploit:~
docker pull ghcr.io/megamansec/ldap-monitoring-watchdog

Из исходников

root@kitploit:~
git clone https://github.com/MegaManSec/LDAP-Monitoring-Watchdog.git
cd LDAP-Monitoring-Watchdog
pip install ".[slack]"

Использование

Запуск после установки через pip

root@kitploit:~
export LDAP_WATCHDOG_SERVER='ldaps://ldaps.intra.lan'
export LDAP_WATCHDOG_BASE_DN='dc=mouse,dc=com'
export LDAP_WATCHDOG_USERNAME='Emily'
export LDAP_WATCHDOG_PASSWORD='qwerty123'
ldap-watchdog

Или с помощью python -m:

root@kitploit:~
python -m ldap_watchdog

Запуск с Docker

root@kitploit:~
docker run -d \
  -e LDAP_WATCHDOG_SERVER='ldaps://ldaps.intra.lan' \
  -e LDAP_WATCHDOG_BASE_DN='dc=mouse,dc=com' \
  -e LDAP_WATCHDOG_USERNAME='Emily' \
  -e LDAP_WATCHDOG_PASSWORD='qwerty123' \
  -e SLACK_WEBHOOK_URL='https://hooks.slack.com/services/[...]' \
  -e LDAP_WATCHDOG_IGNORED_ATTRIBUTES='modifyTimestamp,phoneNumber,officeLocation,gecos' \
  megamansec/ldap-monitor

Установка systemd (Debian-based)

Предоставляется скрипт установки для Debian-based систем — install.sh. При запуске с правами root этот скрипт:

  1. Создаёт (при необходимости) виртуальное окружение Python в /opt/ldap-watchdog.
  2. Устанавливает LDAP Watchdog из PyPI в это виртуальное окружение.
  3. Создаёт файл окружения /etc/ldap-watchdog.env для конфигурации.
  4. Устанавливает и включает systemd-сервис (/etc/systemd/system/ldap-watchdog.service), который запускает ldap-watchdog в фоне.
  5. Настраивает ведение логов в /var/log/ldap-watchdog.log и /var/log/ldap-watchdog-error.log.
  6. Настраивает ротацию логов в /etc/logrotate.d/ldap-watchdog.

Вы можете передать один аргумент в install.sh, чтобы задать SLACK_WEBHOOK_URL:

root@kitploit:~
sudo ./install.sh "https://hooks.slack.com/services/[...]"

После установки отредактируйте /etc/ldap-watchdog.env, чтобы настроить параметры подключения к LDAP, затем перезапустите сервис:

root@kitploit:~
sudo systemctl restart ldap-watchdog

Конфигурация

Вся настройка выполняется через переменные окружения. Поддерживаются следующие переменные:

Общие настройки

Контрольный пользователь

Переменная окруженияОписаниеПо умолчанию
LDAP_WATCHDOG_CONTROL_UUID

Интеграция со Slack

Переменная окруженияОписаниеПо умолчанию

Игнорируемые записи и атрибуты

Условно игнорируемые атрибуты

Переменная LDAP_WATCHDOG_CONDITIONAL_IGNORED_ATTRIBUTES принимает JSON-строку, где ключи — имена атрибутов, а значения — списки значений, которые следует игнорировать:

root@kitploit:~
export LDAP_WATCHDOG_CONDITIONAL_IGNORED_ATTRIBUTES='{
  "objectClass": ["posixAccount"],
  "memberOf": ["cn=mailing-list-user,ou=Accessgroups,dc=mouse,dc=com", "cn=interns,ou=Accessgroups,dc=mouse,dc=com"],
  "organizationalStatus": ["researcher"]
}'

Пример конфигурации

root@kitploit:~
export LDAP_WATCHDOG_CONTROL_UUID='a71c6e4c-8881-4a03-95bf-4fc25d5e6359'
export LDAP_WATCHDOG_SERVER='ldaps://ldaps.intra.lan'
export LDAP_WATCHDOG_BASE_DN='dc=mouse,dc=com'
export LDAP_WATCHDOG_USERNAME='Emily'
export LDAP_WATCHDOG_PASSWORD='qwerty123'
export LDAP_WATCHDOG_USE_SSL='true'
export LDAP_WATCHDOG_REFRESH_RATE='60'
export LDAP_WATCHDOG_DISABLE_COLOR_OUTPUT='false'
export LDAP_WATCHDOG_IGNORED_UUIDS='e191c564-6e6d-42c1-ae51-bda0509fe846,8655e0d9-ecdc-46ce-ba42-1fa3dfbf5faa'
export LDAP_WATCHDOG_IGNORED_ATTRIBUTES='modifyTimestamp,phoneNumber,officeLocation,gecos'
export LDAP_WATCHDOG_CONDITIONAL_IGNORED_ATTRIBUTES='{"objectClass":["posixAccount"],"memberOf":["cn=mailing-list-user,ou=Accessgroups,dc=mouse,dc=com","cn=interns,ou=Accessgroups,dc=mouse,dc=com"],"organizationalStatus":["researcher"]}'
export SLACK_WEBHOOK_URL='https://hooks.slack.com/services/[...]'

ldap-watchdog

Ограничения

  1. Настройка LDAP_WATCHDOG_CONDITIONAL_IGNORED_ATTRIBUTES может, к сожалению, скрывать важные изменения, которые не intended to be hidden. Это может произойти, если атрибут имеет одно значение, которое изменяется. Это связано с тем, что условно игнорируемые атрибуты скрывают изменения атрибута как при изменении значения на, так и с игнорируемого значения; например, если пользователь является memberOf cn=mailing-list-user,ou=Accessgroups,dc=mouse,dc=com, которое меняется на cn=super-administrator,ou=Accessgroups,dc=mouse,dc=com, это будет пропущено.
  2. Аналогично пункту #1, в некоторых случаях невозможно однозначно определить, является ли изменение действительно изменением, или это удаление и последующее добавление за один и тот же период. Теоретически это не имеет значения, однако важно отметить.

Лицензия

Этот проект лицензирован под GPL3.0.

Скачать инструмент
Переменная окруженияОписаниеПо умолчанию
LDAP_WATCHDOG_SERVERURL сервера LDAP (например, ldaps://ldaps.intra.lan)""
LDAP_WATCHDOG_BASE_DNБазовое отличительное имя (Base DN) для поиска в LDAP""
LDAP_WATCHDOG_USERNAMEИмя пользователя LDAP для аутентификации. Оставьте пустым для анонимного подключения.""
LDAP_WATCHDOG_PASSWORDПароль LDAP для аутентификации. Оставьте пустым для анонимного подключения.""
LDAP_WATCHDOG_USE_SSLУстановите true для использования SSL, иначе falsetrue
LDAP_WATCHDOG_SEARCH_FILTERLDAP-фильтр для записей пользователей и групп(&(|(objectClass=inetOrgPerson)(objectClass=groupOfNames)))
LDAP_WATCHDOG_SEARCH_ATTRIBUTEСписок атрибутов для получения через запятую. По умолчанию используется *,+ для включения операционных атрибутов.*,+
LDAP_WATCHDOG_REFRESH_RATEИнтервал времени в секундах между последовательными поисками в LDAP60
LDAP_WATCHDOG_DISABLE_COLOR_OUTPUTУстановите true для отключения цветного вывода в терминалеfalse
UUID контрольного пользователя, изменения которого генерируют ошибку, если не найдены. Если задано, у этого пользователя всегда должно быть какое-то изменение при получении каталога LDAP.
""
LDAP_WATCHDOG_CONTROL_USER_ATTRIBUTEКонкретный атрибут для проверки изменений у контрольного пользователя. Если задано, этот атрибут обязательно должен измениться у пользователя с контрольным UUID.""
SLACK_WEBHOOK_URL
URL Slack Webhook для уведомлений. Требует дополнительного пакета slack (pip install LDAP-Monitor[slack]).
None
LDAP_WATCHDOG_SLACK_BULLETPOINTСимвол маркера списка, используемый в Slack и консольном выводе\u2022
Переменная окруженияОписаниеПо умолчанию
LDAP_WATCHDOG_IGNORED_UUIDSСписок UUID через запятую для игнорирования при сравнении""
LDAP_WATCHDOG_IGNORED_ATTRIBUTESСписок атрибутов через запятую для игнорирования при сравнении""
LDAP_WATCHDOG_CONDITIONAL_IGNORED_ATTRIBUTESJSON-строка атрибутов для условного игнорирования (см. ниже){}