389, 636, 3268, 3269 - Pentesting LDAP
LDAP(轻量级目录访问协议)主要用于在公共和私人网络中定位各种实体,如组织、个人和资源(如文件和设备)。与其前身 DAP 相比,LDAP 提供了一种更简化的方法,代码占用空间更小。
LDAP 目录被结构化,允许它们分布在多个服务器上,每个服务器都有一个称为目录系统代理(DSA)的复制和同步版本。处理请求的责任完全由 LDAP 服务器承担,它可能根据需要与其他 DSA 通信,以向请求者提供统一的响应。
LDAP 目录的组织类似于树形层次结构,从顶部的根目录开始。这向下分支到国家,进一步分为组织,然后到代表各个部门或部门的组织单位,最终达到个体实体级别,包括人员和共享资源,如文件和打印机。
**默认端口:**389 和 636(ldaps)。全局目录(ActiveDirectory 中的 LDAP)默认在端口 3268 上提供,LDAPS 则在端口 3269 上提供。
PORT STATE SERVICE REASON
389/tcp open ldap syn-ack
636/tcp open tcpwrappedLDAP数据交换格式
LDIF(LDAP数据交换格式)将目录内容定义为一组记录。它还可以表示更新请求(添加、修改、删除、重命名)。
dn: dc=local
dc: local
objectClass: dcObject
dn: dc=moneycorp,dc=local
dc: moneycorp
objectClass: dcObject
objectClass: organization
dn ou=it,dc=moneycorp,dc=local
objectClass: organizationalUnit
ou: dev
dn: ou=marketing,dc=moneycorp,dc=local
objectClass: organizationalUnit
Ou: sales
dn: cn= ,ou= ,dc=moneycorp,dc=local
objectClass: personalData
cn:
sn:
gn:
uid:
ou:
mail: [email protected]
phone: 23627387495第1-3行定义了顶级域local
第5-8行定义了第一级域moneycorp(moneycorp.local)
第10-16行定义了2个组织单位:dev和sales
第18-26行创建了一个域对象,并分配了带有值的属性
写入数据
请注意,如果您可以修改值,您可能能够执行非常有趣的操作。例如,想象一下,您可以更改您的用户或任何用户的"sshPublicKey"信息。如果存在这个属性,那么ssh很可能正在从LDAP读取公钥。如果您可以修改用户的公钥,即使在ssh中未启用密码身份验证,您也将能够以该用户身份登录。
嗅探明文凭证
如果LDAP在没有SSL的情况下使用,您可以在网络中嗅探到明文凭证。
此外,您可以在LDAP服务器和客户端之间的网络中执行中间人攻击。在这里,您可以进行降级攻击,使客户端使用明文凭证进行登录。
如果使用SSL,您可以尝试进行中间人攻击,就像上面提到的那样,但提供一个伪证书,如果用户接受它,您可以降级认证方法并再次查看凭证。
匿名访问
绕过TLS SNI检查
根据这篇文章,只需使用任意域名(如company.com)访问LDAP服务器,他就能够以匿名用户的身份联系LDAP服务并提取信息:
LDAP匿名绑定
LDAP匿名绑定允许未经身份验证的攻击者从域中检索信息,例如完整的用户、组、计算机列表,用户帐户属性和域密码策略。这是一个传统配置,从Windows Server 2003开始,只有经过身份验证的用户才被允许发起LDAP请求。 然而,管理员可能需要设置特定应用程序以允许匿名绑定并提供比预期更多的访问权限,从而使未经身份验证的用户可以访问AD中的所有对象。
有效凭据
如果您有有效凭据登录LDAP服务器,您可以使用以下命令dump有关域管理员的所有信息:
枚举
自动化
使用此方法,您将能够查看公共信息(如域名):
Python
windapsearch
Windapsearch 是一个使用 LDAP 查询来枚举 Windows 域中的用户、组和计算机的 Python 脚本。
ldapsearch
检查空凭据或验证您的凭据是否有效:
如果发现有关“bind必须完成”的内容,意味着凭据不正确。
您可以使用以下方法提取域中的所有内容:
提取用户:
提取计算机:
提取我的信息:
提取 Domain Admins:
提取域用户:
提取Enterprise Admins:
提取管理员:
提取远程桌面组:
要查看是否有访问密码,您可以在执行以下查询之后使用grep:
pbis
您可以从这里下载pbis:https://github.com/BeyondTrust/pbis-open/,通常安装在/opt/pbis目录中。
Pbis允许您轻松获取基本信息:
图形界面
Apache Directory
从这里下载Apache Directory。您可以在这里找到如何使用此工具的示例。
jxplorer
您可以在此处下载带有LDAP服务器的图形界面:http://www.jxplorer.org/downloads/users.html
默认安装在:/opt/jxplorer

Godap
您可以在https://github.com/Macmod/godap访问它
通过kerberos进行身份验证
使用ldapsearch,您可以通过使用参数-Y GSSAPI来对kerberos进行身份验证,而不是通过NTLM进行身份验证
POST
如果您可以访问包含数据库的文件(可能在_/var/lib/ldap_中)。您可以使用以下方法提取哈希值:
配置文件
通用
containers.ldif
ldap.cfg
ldap.conf
ldap.xml
ldap-config.xml
ldap-realm.xml
slapd.conf
IBM SecureWay V3 服务器
V3.sas.oc
Microsoft Active Directory 服务器
msadClassesAttrs.ldif
Netscape Directory Server 4
nsslapd.sas_at.conf
nsslapd.sas_oc.conf
OpenLDAP 目录服务器
slapd.sas_at.conf
slapd.sas_oc.conf
Sun ONE Directory Server 5.1
75sas.ldif
最后更新于