关于msldap
msldap是一款用于审计MS AD的LDAP库,广大研究人员可以利用该工具轻松执行针对MS AD的安全审计任务。
功能介绍
1、配有内置控制台 LDAP 客户端;
2、所有参数都可以通过方便的 URL 进行控制;
3、支持与 NTLM 和 KERBEROS 集成的 Windows 身份验证 (SSPI);
4、支持通道绑定(适用于 ntlm 和 kerberos,不适用于 SSPI);
5、支持加密(针对 NTLM/KERBEROS/SSPI);
6、支持 LDAPS(TODO:实际验证证书);
7、支持SOCKS5代理,无需额外的代理程序;
8、最小占用空间;
9、大量预建查询,方便信息轮询;
10、轻松集成到您的项目中;
工具要求
asn1crypto
asysocks
aiocmd
asciitree
工具安装
由于该工具基于Python 3.6开发,因此我们首先需要在本地设备上安装并配置好最新版本的Python 3.6+环境。
接下来,广大研究人员可以直接使用下列命令将该项目源码克隆至本地:
git clone https://github.com/skelsec/msldap.git
然后切换到项目目录中,使用工具安装脚本完成安装:
cd msldap python3 setup.py install
pip安装
pip install msldap
工具使用
<protocol>+<auth>://<username>:<password>@<ip_or_host>:<port>/<tree>/?<param>=<value> <protocol> sets the ldap protocol following values supported: - ldap - ldaps - gc - gc_ssl <auth> 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) - kerberos-pfx (dc option param must be used) - kerberos-pem (dc option param must be used) - kerberos-certstore (dc option param must be used, windows only) - sspi-ntlm (windows only!) - sspi-kerberos (windows only!) - anonymous - plain - simple - sicily (same format as ntlm-nt but using the SICILY authentication) <tree>: OPTIONAL. Specifies the root tree of all queries <param> 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:<password>@10.10.10.2 (defaults to SASL GSSAPI NTLM) ldap+simple://TEST\\victim:<password>@10.10.10.2 (SASL SIMPLE auth) ldap+plain://TEST\\victim:<password>@10.10.10.2 (SASL SIMPLE auth) ldap+ntlm-password://TEST\\victim:<password>@10.10.10.2 ldap+ntlm-nt://TEST\\victim:<nthash>@10.10.10.2 ldap+kerberos-password://TEST\\victim:<password>@<hostname>/?dc=10.10.10.2 ldap+kerberos-rc4://TEST\\victim:<rc4key>@<hostname>/?dc=10.10.10.2 ldap+kerberos-aes://TEST\\victim:<aes>@<hostname>/?dc=10.10.10.2 ldap://TEST\\victim:[email protected]/DC=test,DC=corp/ ldap://TEST\\victim:[email protected]/DC=test,DC=corp/?timeout=99&proxytype=socks5&proxyhost=127.0.0.1&proxyport=1080&proxytimeout=44
模块使用
import asyncio from msldap.commons.factory import LDAPConnectionFactory url = 'ldap+simple://TEST\\victim:[email protected]' async def client(url): conn_url = LDAPConnectionFactory.from_url(url) ldap_client = conn_url.get_client() _, err = await ldap_client.connect() if err is not None: raise err user = await ldap_client.get_user('Administrator') print(str(user)) if __name__ == '__main__': asyncio.run(client(url))
工具运行演示
许可证协议
本项目的开发与发布遵循MIT开源许可协议。
项目地址
msldap:【GitHub传送门】
参考资料
本文为 独立观点,未经允许不得转载,授权请联系FreeBuf客服小蜜蜂,微信:freebee2022