Skip to content
KitploitKITPLOIT
ツールブログ
提出
ツールブログ
提出

ハッキング、侵入テスト、サイバーセキュリティツールをあなたのセキュリティアーセナルに!

Kitploitはハッキング、サイバーセキュリティ、ペネトレーションテストのツールディレクトリです。最新のプロジェクトアップデートを見つけて、脆弱性の発見、システム分析、テストの自動化、セキュリティの強化を行いましょう。

··フィード·お問い合わせ·プライバシー·© 2026 Kitploit

ツールディレクトリ

カテゴリ

すべてのカテゴリを見る
Loading categories
LDAP-Monitoring-Watchdog — LDAP Watchdog: リアルタイムでLinux互換のLDAP監視ツール。ディレクトリの変更を検出し、管理者やセキュリティ研究者に対して追加、変更、削除を可視化します。 | Kitploit
ツール/GitHubGitHub/megamansec/ldap-monitoring-watchdog
脅威インテリジェンスインシデントレスポンスログ分析Archived
GitHubmegamansec/ldap-monitoring-watchdog

LDAP-Monitoring-Watchdog

LDAP Watchdog: リアルタイムでLinux互換のLDAP監視ツール。ディレクトリの変更を検出し、管理者やセキュリティ研究者に対して追加、変更、削除を可視化します。

リポジトリを見る
194164ヶ月前Kitploit レビュー済み

人気

すべて見る →

コミュニティで最も使われているツールを見つけましょう。

すべてのツールを探索

ツールコレクションを閲覧

すべてのツールを見る →
共有

LDAP Watchdog

概要

LDAP Watchdogは、LDAPディレクトリ内のレコード変更をリアルタイムで監視するために設計されたツールです。ユーザーやグループエントリに対する変更、追加、削除を追跡し可視化する仕組みを提供し、期待される変更と実際の変更を関連付けて潜在的なセキュリティインシデントを特定できるようにします。このツールはOpenLDAPとLinuxを念頭に置いて作成されましたが、他のLDAP実装でも動作する可能性があります。Pythonで記述されており、ldap3ライブラリのみを必要とします。

このソフトウェアはJoshua Rogersによって作成されました。

以下のいずれかに興味があるなら、LDAP Watchdogは最適です:

  • Slack webhook統合により、LDAPディレクトリで何が起こっているかをオンデマンドで把握する。
  • LDAPに現れる新入社員、退職者、昇進を確認する。
  • HRがいつ、何をしているのかを監視する。
  • LDAP内の不正な変更を検出する。
  • 誤って漏洩したデータを監視する。
  • ユーザーがLDAPにログイン/ログアウトしているタイミングを検出する。

LDAPディレクトリ内の変更、追加、削除を監視することに加えて、特定の属性を無視するように設定したり、古い値/新しい値に応じて細かい属性を無視するように微調整することもできます。

監視された変更は、Slack webhookに転送するか、ターミナルに出力するか(あるいはその両方)することができます。オプションで色付き出力もサポートしています。

以前はLDAP-Stalkerという名前でした(LDAPディレクトリの変更を監視することは、会社内の変更をストーキングする優れた方法だからです。発表前の昇進、新入社員、退職者などを知ることができます)。このプロジェクトの詳細と歴史に関するブログ記事はこちらでご覧いただけます。

例(フィルタリングなし)

注:以下の例では、LDAP_WATCHDOG_IGNORED_ATTRIBUTES=entryCSN,modifyTimestampを設定することで、entryCSNとmodifyTimestampを完全に無視できます。

ターミナル(色付き)出力:

LDAP Watchdogからの出力例

Slack出力:

Slack上のLDAP Watchdogからの出力例

機能

  1. リアルタイム監視: LDAP Watchdogは、ユーザーおよびグループエントリの変更についてLDAPディレクトリを継続的に監視します。

  2. 変更の比較: このツールは、連続するLDAP検索間の変更を比較し、追加、変更、削除を強調表示します。

  3. コントロールユーザー検証: LDAP Watchdogはコントロールユーザー機構をサポートし、コントロールユーザーの変更が見つからない場合にエラーをトリガーします。

  4. 柔軟なLDAPフィルタリング: ユーザーはLDAP_WATCHDOG_SEARCH_FILTER環境変数を使用してLDAPフィルタリングをカスタマイズし、特定のオブジェクトクラスや属性に焦点を当てることができます。

  5. Slack統合: 追加、変更、削除されたLDAPエントリについて、Slackでリアルタイム通知を受け取ります。

  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系)

Debian系のインストールスクリプトinstall.shが提供されています。これをrootで実行すると、以下の処理が行われます:

  1. (必要に応じて)/opt/ldap-watchdogにPython仮想環境を作成します。
  2. その仮想環境にPyPIからLDAP Watchdogをインストールします。
  3. 設定用の環境ファイルを/etc/ldap-watchdog.envに作成します。
  4. バックグラウンドでldap-watchdogを実行するsystemdサービス(/etc/systemd/system/ldap-watchdog.service)をインストールし、有効化します。
  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コントロールユーザーのUUID。このユーザーの変更が見つからない場合にエラーをトリガーします。設定した場合、LDAPディレクトリが取得されるたびにこのユーザーに何らかの変更が常にあるべきです。""
LDAP_WATCHDOG_CONTROL_USER_ATTRIBUTEコントロールユーザーの変更を確認する特定の属性。設定した場合、コントロールUUIDユーザーに対してこの属性が_必ず_変更されている必要があります。""

Slack統合

環境変数説明デフォルト
SLACK_WEBHOOK_URL通知用Slack Webhook URL。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_設定は、意図せず隠したくない重要な変更を隠してしまう可能性があります。これは、属性が単一の値を持ち、その値が変更された場合に発生する可能性があります。なぜなら、条件付き無視属性は、値が無視された値__へ__変更された場合と、無視された値__から__変更された場合の両方で属性への変更を隠してしまうからです。例えば、ユーザーが_cn=mailing-list-user,ou=Accessgroups,dc=mouse,dc=com_のmemberOfを持ち、それが_cn=super-administrator,ou=Accessgroups,dc=mouse,dc=com_に__変更__された場合、見逃されます。
  2. #1と同様に、場合によっては変更が本当に変更なのか、それとも同じ時間内での削除と追加なのかを判断する確実な方法はありません。理論上は問題になりませんが、注意すべき重要な点です。

ライセンス

このプロジェクトはGPL3.0の下でライセンスされています。

ツールをダウンロード
環境変数説明デフォルト
LDAP_WATCHDOG_SERVERLDAPサーバーのURL(例:ldaps://ldaps.intra.lan)""
LDAP_WATCHDOG_BASE_DNLDAP検索のベース識別名""
LDAP_WATCHDOG_USERNAME認証用LDAPユーザー名。匿名バインドの場合は空のままにします。""
LDAP_WATCHDOG_PASSWORD認証用LDAPパスワード。匿名バインドの場合は空のままにします。""
LDAP_WATCHDOG_USE_SSLSSLを使用するにはtrue、それ以外はfalsetrue
LDAP_WATCHDOG_SEARCH_FILTERユーザーおよびグループエントリ用のLDAPフィルター(&(|(objectClass=inetOrgPerson)(objectClass=groupOfNames)))
LDAP_WATCHDOG_SEARCH_ATTRIBUTE取得する属性のカンマ区切りリスト。操作属性を含めるためにデフォルトで*,+が使用されます。*,+
LDAP_WATCHDOG_REFRESH_RATE連続するLDAP検索の間隔(秒)60
LDAP_WATCHDOG_DISABLE_COLOR_OUTPUT色付きターミナル出力を無効にするにはtruefalse
pip install LDAP-Monitor[slack]
None
LDAP_WATCHDOG_SLACK_BULLETPOINTSlackおよびコンソール出力で使用される箇条書き文字\u2022
環境変数説明デフォルト
LDAP_WATCHDOG_IGNORED_UUIDS比較中に無視するUUIDのカンマ区切りリスト""
LDAP_WATCHDOG_IGNORED_ATTRIBUTES比較中に無視する属性のカンマ区切りリスト""
LDAP_WATCHDOG_CONDITIONAL_IGNORED_ATTRIBUTES条件付きで無視する属性のJSON文字列(下記参照){}