LDAP未授權訪問學習

LDAP未授權訪問學習

一、LDAP

介紹

LDAP的全稱爲Lightweight Directory Access Protocol(輕量級目錄訪問協議), 基於X.500標準, 支持 TCP/IP。

LDAP目錄爲數據庫,通過LDAP服務器(相當於DBMS)處理查詢和更新, 以樹狀的層次結構來存儲數據,相對關係型數據庫, LDAP主要是優化數據讀取的性能,適用於比較少改變、跨平臺的信息。

LDAP屬性

屬性 全名 描述
dn distinguished name 唯一標識名,類似於絕對路徑,每個對象都有唯一標識名。 例如:uid=tester,ou=People,dc=example,dc=com
rdn relative 相對標識名,類似於相對路徑。 例如:uid=tester
uid user id 通常指用戶登錄名。 例如:uid=tester
sn sur name 通常指一個人的姓氏。 例如:sn: Su
giveName 通常指一個人的名字。 例如:giveName: Aldwin
I 通常指一個地方的地名。 例如:I: Beijing
objectClass objectClass是特殊屬性,包含數據存儲的方式以及相關屬性信息。
dc domain component 通常指定一個域名。 例如:dc=example,dc=com
ou organization unit 通常指定一個組織單元的名稱。 例如:ou=people,dc=example,dc=com
cn common name 通常指一個對象的名稱。如果是人,需要使用全名。
c country 一個二位的國家代碼。 例如:CN、US、HK、JP等。

二、LDAP&phpldapadmin搭建

Ubuntu系統搭建LDAP服務及web端管理服務phpldapadmin

參考文章:

https://my.oschina.net/u/2496664/blog/801996

上面文章寫的很詳細,有些步驟由於可能版本更新而有微小的差異。

比如不用選擇數據庫;注意編輯配置文件的時候不需要改註釋內的東西,改註釋外的代碼即可。下圖爲完成界面。

image-20201028221900749

三、LDIF文件

關於LDIF文件:

LDIF 完全獨立於在所有特定目錄中使用的儲存格式,LDIF 通常用於從 LDAP 服務器導出目錄信息或將數據導入 LDAP 服務器。

demo

dn: dc=Zh1z3ven,dc=com
objectclass: top
dc: Zh1z3ven

dn: ou=People,dc=Zh1z3ven,dc=com
objectclass: organizationalUnit
ou: People

dn: uid=Zh1z3ven,ou=People,dc=Zh1z3ven,dc=com
uid: Zh1z3ven
objectClass: inetOrgPerson
userPassword: 111111
sn: Zh
cn: Zh1z3ven Zh

四、LDAP未授權漏洞

0x01 產生原因

未對LDAP的訪問進行密碼驗證,導致未授權訪問。

這一般是大部分LDAP服務出現此漏洞的主要原因,導致可以使用ldapbrowser直接連接,獲取目錄內容。

0x02 簡述

比如我上面搭建好的環境明明是有密碼123456的,但是利用ldapbrowser可以直接讀取到目錄內容而跳過了web端那種密碼驗證的方式

注意Anonymous bind那裏要勾選上,因爲默認的LDAP服務都是開啓匿名訪問的,但是隻能進行read和search操作,不可以刪除和修改。

image-20201028230120087

image-20201028225928038

如需指定用戶則需要在下圖紅框內指定cn和相應的password

image-20201028230322212

五、修復建議

0)關於如何禁止LDAP匿名訪問:

https://www.cnblogs.com/rusking/p/4936341.html

1)修改ldap的acl,不允許匿名訪問。

2)根據業務設置ldap訪問白名單或黑名單。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章