LDAP的學習和查詢


參考文章:https://www.anquanke.com/post/id/196238
參考文章:https://www.anquanke.com/post/id/195737

什么是LDAP

LDAP(Lightweight Directory Access Protocol),輕量目錄訪問協議,是一種用來查詢與更新 Active Directory 的目錄服務通信協議。

在AD 域服務利用 LDAP 命名路徑(LDAP naming path)來表示對象在 AD 內的位置,以便用它來訪問 AD 內的對象。

目錄服務:是由目錄服務數據庫(是樹狀結構的數據庫,和MySQL等表狀結構數據庫有差別)和一套訪問協議組成
目錄樹:在一個目錄服務系統中,整個目錄信息集可以表示為一個目錄信息樹
條目:樹中的每個節點是一個條目
DN:每個條目有自己的唯一可區別的名稱(DN),比如這一條uid=bob,ou=people,dc=acme,dc=org就是一個唯一可區別的名稱

如何進行LDAP的查詢

這里自己就單純的講下在域中的查詢,因為自己也了解這個

通過對應的LDAP的語法,我們可以在域中可以准確、單一的請求我們想要查詢的數據

這里拿adfind來進行演示

比如先查詢:adfind DC=PENTEST,DC=GOD -f"

那么就會遍歷列出DC=PENTEST,DC=GOD目錄下的所有條目,如下圖顯示,因為命令行顯示有限,所以就展覽在文本中進行顯示了

比如查詢:adfind DC=PENTEST,DC=GOD -f "(objectClass=user)"

那么就會給出對應的數據objectClass=user下面的所有條目,ObjectClass是一個內置的數據屬性,這里面的話計算機賬號和用戶賬號都存在user這個屬性,如圖中所示:

用戶常見屬性介紹:

displayName
objectSid
userPrincipalName
sAMAccountName
whenCreateds
pwdLastSet
Lastlogon

查詢adfind DC=PENTEST,DC=GOD -f "(objectclass=user)" displayName objectsid

那么給出的數據就是對應其中條目的每個displayName 和 objectsid 的屬性

什么是userAccountControl

現在繼續講關於用戶的userAccountControl屬性介紹

userAccountControl對應的介紹文章:https://support.microsoft.com/en-us/help/305144/how-to-use-useraccountcontrol-to-manipulate-user-account-properties

每個用戶自身的權限都會記錄在這個屬性值里面

最上面的查詢可以看出來每個用戶都有各自的權限,舉個例子比如自身的密碼永不過期等等的屬性,如果用上面的查詢方法是不能具體的查詢到的,這時候就需要用到文章中講的位操作查詢

adfind自身提供了便利的查詢方法,方便了AND OR INCHAIN NEST DNWDATA 的寫法

查詢密碼永不過期的用戶

密碼永不過期的flag是DONT_EXPIRE_PASSWORD 0x10000 65536,十進制為65536

那么只需要查詢語法是:adfind DC=PENTEST,DC=GOD -f "&(objectClass=user)(UserAccountControl:AND:=65536)" -bit


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM