Msldap – это инструмент (LDAP) библиотеки LightWeight Directory Acess Protocol для MS AD.
Функции
- Поставляется со встроенным консольным LDAP-клиентом.
- Всеми параметрами можно управлять через удобный URL (см. ниже)
- Поддерживает встроенную проверку подлинности Windows (SSPI) как с NTLM, так и с KERBEROS
- Поддерживает привязку каналов (для ntlm и kerberos, кроме SSPI)
- Поддерживает шифрование (NTLM/KERBEROS/SSPI)
- Поддерживает LDAPS (TODO: фактически проверить сертификат)
- Поддерживает прокси SOCKS5
- Легковесный
- Множество готовых запросов для удобного опроса информации
- Легко интегрировать в ваш проект
Предпосылки
- модуль winsspi. Только для Windows. Это поддерживает аутентификацию на основе SSPI.
- asn1crypto модуль. Некоторые запросы LDAP включают структуры ASN1 для отправки поверх транспортного XD ASN1.
- модуль asysocks. Для поддержки проксирования socks.
- aiocmd Для интерактивного клиента
- asciitree Для построения красивых деревьев в интерактивном клиенте.
Установка
через git
python3 setup.py install
или
pip install msldap
Применение
Обратите внимание, что это библиотека и не предназначена для использования в качестве программы командной строки.
Несмотря на это, проект включает полнофункциональный интерактивный клиент LDAP.
При установке модуля msldap с помощью setup.py install появится новый двоичный файл с именем msldap (шокирующие соглашения об именах)
URL-адрес подключения LDAP
В версии 0.2.0 потребовалось существенное изменение, чтобы объединить различные параметры подключения в одну строку без дополнительных переключателей командной строки.
Новая строка подключения формируется следующим образом:
<протокол>+<auth_method>://<домен>\<имя пользователя>:<пароль>@<ip>:<порт>/?<параметр>=<значение>&<параметр>=<значение>& …
Подробное объяснение с примерами:
+://:@://?= sets the ldap protocol following values supported: – ldap – ldaps can be omitted if plaintext authentication is to be performed (in that case it default to ntlm-password), otherwise: – ntlm-password – ntlm-nt – kerberos-password (dc option param must be used) – kerberos-rc4 / kerberos-nt (dc option param must be used) – kerberos-aes (dc option param must be used) – kerberos-keytab (dc option param must be used) – kerberos-ccache (dc option param must be used) – sspi-ntlm (windows only!) – sspi-kerberos (windows only!) – anonymous – plain – simple – sicily (same format as ntlm-nt but using the SICILY authentication) : OPTIONAL. Specifies the root tree of all queries can be: – timeout : connction timeout in seconds – proxytype: currently only socks5 proxy is supported – proxyhost: Ip or hostname of the proxy server – proxyport: port of the proxy server – proxytimeout: timeout ins ecodns for the proxy connection – dc: the IP address of the domain controller, MUST be used for kerberos authentication Examples: ldap://10.10.10.2 (anonymous bind) ldaps://test.corp (anonymous bind) ldap+sspi-ntlm://test.corp ldap+sspi-kerberos://test.corp ldap://TEST\victim:@10.10.10.2 (defaults to SASL GSSAPI NTLM) ldap+simple://TEST\victim:@10.10.10.2 (SASL SIMPLE auth) ldap+plain://TEST\victim:@10.10.10.2 (SASL SIMPLE auth) ldap+ntlm-password://TEST\victim:@10.10.10.2 ldap+ntlm-nt://TEST\victim:@10.10.10.2 ldap+kerberos-password://TEST\victim:@10.10.10.2 ldap+kerberos-rc4://TEST\victim:@10.10.10.2 ldap+kerberos-aes://TEST\victim:@10.10.10.2 ldap://TEST\victim:password@10.10.10.2/DC=test,DC=corp/ ldap://TEST\victim:password@10.10.10.2/DC=test,DC=corp/?timeout=99&proxytype=socks5&proxyhost=127.0.0.1&proxyport=1080&proxytimeout=44