如何使ldap评估明文密码与DES存储的密码

时间:2018-09-04 05:05:59

标签: hash active-directory openldap des crypt

我在CentoS 6.9上使用openldap slapd 2.4.40和postgresql9.2.23作为back-sql

LDAP false Uncaught TypeError: second.hello is not a function at main.js:13 uid的用户和密码通过DES编码存储在postgresql中。

原始明文是userPassword

DES编码/加密的文本为JacicFk5,存储在数据库中。

通过存储的密码,我可以看到ldapseach的用户信息。

IfjFxsltK/MPE

但是,我无法通过原始明文密码进行ldapsearch

ldapsearch -x  -b "dc=example,dc=com" -D uid="HDZZZ0R0N,ou=people,dc=example,dc=com" -w IfjFxsltK/MPE '(&(uid= HDZZZ0R0N)(objectClass=*))'          
# extended LDIF
#
# LDAPv3
# base <dc=example,dc=com> with scope subtree
# filter: (&(uid= HDZZZ0R0N)(objectClass=*))
# requesting: ALL
#

# user01, people, example.com
dn: uid= HDZZZ0R0N,ou=people,dc=example,dc=com
objectClass: inetOrgPerson
cn:: W+aOkl3lia/nlKPnianjg6Hjg7Pjg4bjg4rjg7PjgrnvvIgzNu+8iVNURw==
sn:: W+aOkl3lia/nlKPnianjg6Hjg7Pjg4bjg4rjg7PjgrnvvIgzNu+8iVNURw==
uid: HDZZZ0R0N
userPassword:: SWZqRnhzbHRLL01QRQ==

有人告诉我如何使ldapsearch通过明文解析给定密码并通过DES编码存储密码吗?

我想知道如何从ldapseach命令行制作纯文本ldapsearch -x -b "dc=example,dc=com" -D uid="HDZZZ0R0N,ou=people,dc=example,dc=com" -w JacicFk5 '(&(uid= HDZZZ0R0N)(objectClass=*))' ldap_bind: Invalid credentials (49) 到哈希JacicFk5并使其与数据库中的IfjFxsltK/MPE匹配为IfjFxsltK/MPE

是否有适用于userPassowrdldap.conf的指令?

我已经检查了以下内容。

slapd.conf

它返回echo "SWZqRnhzbHRLL01QRQ==" |perl -MMIME::Base64 -ne 'print decode_base64($_) . "\n"'

IfjFxsltK/MPE

它返回perl -e 'print("userPassword: {crypt}".crypt("JacicFk5","If")."\n");'

更多信息。 我的ldapseach可以通过ownclod为存储在AD服务器中的用户解析密码文本。

1 个答案:

答案 0 :(得分:1)

您想要/需要的是LDAP 简单身份验证。首先请注意,以明文形式存储密码不安全

首先,您需要测试支持/允许的身份验证机制。

一个例子:

tukanos@localhost:~# ldapsearch -H ldap:// -x -LLL -s base -b "" supportedSASLMechanisms
dn:
supportedSASLMechanisms: DIGEST-MD5
supportedSASLMechanisms: CRAM-MD5
supportedSASLMechanisms: NTLM

现在,您要通过ldapmodify更改配置。准备带有配置的LDIF文件(LDIF表示LDAP数据可互换格式)。

准备配置文件,您可以将其命名为olcSaslSecProps.ldif

dn: cn=config
replace: olcSaslSecProps
olcSaslSecProps: noanonymous,minssf=0,passcred

属性的含义:

noanonymous ... no anonymous connection allowed
minssf=0 ... that defines your effective encryption strength (0 ... no encryption)
passcred ... that would allow password to work as for credentials

引用OpenLDAP security considerations

  

安全强度因素

     

服务器使用安全强度因子(SSF)来指示   相对保护强度。 SSF为零(0)表示否   保护措施到位。 SSF为一(1)表示完整性   保护到位。 SSF大约大于(1)   与有效加密密钥长度相关。例如,DES是   56、3DES是112,AES是128、192或256。

     

许多管理控制依赖与TLS相关的SSF   并在LDAP会话上提供了SASL保护。

     

在采取适当的保护措施后,安全控制措施禁止操作   不到位。例如:

    security ssf=1 update_ssf=112
     

要求对所有操作和加密进行完整性保护   保护,相当于3DES,用于更新操作(例如,添加,删除,   修改等)。有关详细信息,请参见slapd.conf(5)。

现在要应用LDIF文件:

ldapmodify -Y EXTERNAL -H ldapi:// -f ./olcSaslSecProps.ldif

现在重新启动slapd守护程序:

systemctl restart slapd

如果现在检查配置,您将获得LOGINPLAIN

ldapsearch -H ldap:// -x -LLL -s base -b "" supportedSASLMechanisms
dn:
supportedSASLMechanisms: PLAIN
supportedSASLMechanisms: LOGIN

现在您的搜索应该使用普通的测试密码:

ldapsearch -x  -b "dc=example,dc=com" -D uid="HDZZZ0R0N,ou=people,dc=example,dc=com" -w JacicFk5 '(&(uid= HDZZZ0R0N)(objectClass=*))'