389 — LDAP
:::tip Формат страницы
Порядок действий описан по‑русски. В методике сохранены заголовки (частично локализованы типовые термины), таблицы, иллюстрации и блоки кода: команды и параметры на английском, без перевода синтаксиса.
:::
Порядок действий
- Убедитесь, что целевой сервис и порт входят в согласованный scope.
- Выполните перечисление: версия, баннеры, доступные команды и скрипты.
- Проверьте типовые слабости и сценарии из раздела, документируя каждый шаг.
- Команды в блоках кода используйте без перевода синтаксиса.
Методика
Введение
FILTER=(<ATTRIBUTE><COMPARISON_OPERATOR><VALUE>)(cn=*Marmeus*)
(&(objectClass=user)(cn=*Marmeus*))
General Enumeration
nmap -n -sV -p389 --script="ldap* not brute" <DC_IP>ldapsearch -LLL -x -h <IP> -s sub -b 'DC=<DOMAIN>' # Obtain data starting from the domain
Impacket
GetADUsers.py -all <DOMAIN.LOCAL>/<USER>:<PASSWORD> -dc-ip <DC_IP>
Ldapsearch
ldapsearch -LLL -x { -h <IP|DOMAIN> | -H ldap://<DOMAIN> } [-D '<DOMAIN/USERNAME>' -w '<PASSWORD>'] [-s <SCOPE>] [-b '<FILTER>']
Useful base dn for search
ldapsearch -LLL -x -h <TARGET> -s base namingcontextsldapsearch -LLL -x -h <TARGET> -b '' -s base '(objectclass=*)'
ldapsearch -x -h <IP> -s sub -b 'DC=<DOMAIN>,DC=com' | awk '{print $1}' | sort | uniq -c | sort -nr
LDAP To Bloodhound
bofhound -i ~/.pyldapsearch/logs/pyldapsearch_20250313.log [-o file.json] --properties-level All