专栏名称: FreeBuf
国内关注度最高的全球互联网安全新媒体
目录
相关文章推荐
macrozheng  ·  Java就业市场是真癫了。。 ·  2 天前  
macrozheng  ·  Java就业市场是真癫了。。 ·  2 天前  
学习强国  ·  警方建议:关闭手机这项功能! ·  3 天前  
学习强国  ·  警方建议:关闭手机这项功能! ·  3 天前  
硅星GenAI  ·  ChatGPT ... ·  5 天前  
硅星GenAI  ·  ChatGPT ... ·  5 天前  
科技日报  ·  前所未见!发现宇宙“烟花” ·  5 天前  
科技日报  ·  前所未见!发现宇宙“烟花” ·  5 天前  
51好读  ›  专栏  ›  FreeBuf

msldap:一款用于审计MS AD的LDAP库

FreeBuf  · 公众号  · 互联网安全  · 2024-10-27 09:30

正文



关于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


工具使用


+://:@://?=


sets the ldap protocol following values supported:
- ldap
- ldaps
- gc
- gc_ssl

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)

:
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:@/?dc=10.10.10.2
ldap+kerberos-rc4://TEST\\victim:@/?dc=10.10.10.2
ldap+kerberos-aes://TEST\\victim:@/?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

https://github.com/skelsec/msldap


FreeBuf粉丝交流群招新啦!
在这里,拓宽网安边界
甲方安全建设干货;
乙方最新技术理念;
全球最新的网络安全资讯;
群内不定期开启各种抽奖活动;
FreeBuf盲盒、大象公仔......
扫码添加小蜜蜂微信回复「加群」,申请加入群聊

https://msldap.readthedocs.io/en/latest/
https://live.octopwn.com/