Кратко: LDAP (Lightweight Directory Access Protocol) — протокол доступа к каталогам, используемый для хранения и поиска информации о пользователях, компьютерах и других объектах в сети. В Active Directory (AD) это «язык», на котором приложения общаются с каталогом. Хакеры активно используют LDAP для разведки, а при уязвимостях — для LDAP-инъекций, кражи данных или обхода аутентификации.

▫️ Что такое LDAP LDAP — открытый протокол прикладного уровня, обеспечивающий доступ к распределённым каталогам через TCP/IP. Основная задача — хранить информацию и давать к ней быстрый доступ. Это как телефонная книга компании, но намного умнее: логины, пароли, права доступа, настройки приложений. Данные организованы в иерархическое дерево — DIT (Directory Information Tree). Каждый объект имеет уникальное имя — DN (Distinguished Name): cn=Иван Иванов, ou=Отдел продаж, dc=company, dc=com. LDAP используется во всех крупных системах: Active Directory (Microsoft), OpenLDAP, Oracle Internet Directory.

▫️ Как хакеры используют LDAP для разведки Получив доступ к LDAP-запросам (через уязвимость в веб-приложении), хакер может: · Вытащить всех пользователей и группы — список сотрудников, должности, email, телефоны. · Изучить структуру компании — отделы, филиалы, группы администраторов. · Найти привилегированные учётные записи — цели для Kerberoasting. · Собрать данные для социальной инженерии — фишинг, звонки от лица сотрудников. Инструменты: BloodHound, ldapsearch, PowerShell с модулями AD.

▫️ LDAP-инъекции: SQL-инъекция для каталога Если приложение подставляет пользовательский ввод в LDAP-запрос без фильтрации, злоумышленник может изменить этот запрос.

Пример из OWASP: Логин-форма строит фильтр: searchlogin = "(&(uid=" + user + ")(userPassword=" + password + "))" Хакер вводит в user: *)(uid=*))(|(uid=* , в password: password. Фильтр превращается в: (&(uid=*)(uid=*))(|(uid=*)(userPassword=password)) Этот запрос всегда истинен. Хакер зайдёт в систему без пароля. Основные операторы LDAP-инъекций: · & — логическое И · | — логическое ИЛИ · ! — логическое НЕ · = — равно · * — любой символ (wildcard) · () — группировка

▫️ Как защититься · Экранирование и валидация ввода — экранируйте спецсимволы: (, ), \, *, /, &, |, !, =, <, >, ;, ,, +, ", '. · Allowlist — если параметр может принимать только определённые значения, проверяйте это. · Параметризованные запросы — если LDAP-библиотека поддерживает, это надёжный способ. · Минимизируйте права — учётная запись приложения должна иметь только необходимый минимум прав.

Главный вывод: LDAP — фундамент, хранящий ключи от королевства Active Directory. Валидация ввода и строгие права доступа — не опция, а обязательное требование.

#ldap #activedirectory #infosec #owasp #ldapinjection

Кратко:
LDAP (Lightweight Directory Access Protocol) — протокол доступа к каталогам, используемый для хранения и поиска информации о пользователях, компьютерах и других объектах в сети | Сетка — социальная сеть от hh.ru