389,636,2368,3269 - LDAP
ldapsearch
์๋ฅผ ๋ค์ด, ldapsearch๋
LDAP ํ๋กํ ์ฝ์ ์ฌ์ฉํ์ฌ ๋๋ ํฐ๋ฆฌ์ ์ ์ฅ๋ ์ ๋ณด๋ฅผ ๊ฒ์ํ๋ ๋ฐ ์ฌ์ฉ๋๋ ๋ช
๋ น์ค ์ ํธ๋ฆฌํฐ์
๋๋ค. ์ผ๋ฐ์ ์ผ๋ก LDAP ๋๋ ํ ๋ฆฌ ์๋น์ค์์ ๋ฐ์ดํฐ๋ฅผ ์ฟผ๋ฆฌํ๊ณ ๊ฒ์ํ๋ ๋ฐ ์ฌ์ฉ๋ฉ๋๋ค.
์ต์ ์ค๋ช
-x : ์ต๋ช ๋ก๊ทธ์ธ
-s base : ๊ฒ์ ๋ฒ์ ์ง์
namingcontexts
:namingcontexts
๋ LDAP ์๋ฒ์ ๋ค์์คํ์ด์ค๋ฅผ ๊ฐ์ ธ์ฌ ๋ ์ฌ์ฉ๋๋ ํน์ํ ์์ฑ์ ๋๋ค๊ธฐ๋ณธ ๋ค์ ์ปจํ ์คํธ(namingcontexts)๋ LDAP ์๋ฒ์์ ์ฌ์ฉ๋๋ ๋ฐ์ดํฐ์ ๊ตฌ์กฐ๋ฅผ ์ ์ํ๋ ๊ฐ๋ , ์ด๋ฅผ ๋น์ ํ์๋ฉด, ๊ธฐ๋ณธ ๋ค์ ์ปจํ ์คํธ๋ LDAP ์๋ฒ์ "์ต์์ ํด๋"๋ผ๊ณ ์๊ฐํ ์ ์์ต๋๋ค.
LDAP ์๋ฒ๋ ๋ฐ์ดํฐ๋ฅผ ๊ณ์ธต ๊ตฌ์กฐ๋ก ์กฐ์งํํฉ๋๋ค. ์ด ๊ตฌ์กฐ์์ ๊ธฐ๋ณธ ๋ค์ ์ปจํ ์คํธ๋ ๊ฐ์ฅ ์์์ ์์นํ๋ฉฐ, ๊ทธ ์๋์๋ ์กฐ์ง, ๋๋ฉ์ธ, ๋ถ์, ์ฌ์ฉ์ ๋ฑ์ ํ์ ํญ๋ชฉ๋ค์ด ๊ณ์ธต์ ์ผ๋ก ๊ตฌ์ฑ๋ฉ๋๋ค.
์๋ฅผ ๋ค์ด, "dc=example,dc=com"๋ผ๋ ๊ธฐ๋ณธ ๋ค์ ์ปจํ ์คํธ๋ฅผ ์๊ฐํด๋ด ์๋ค. ์ฌ๊ธฐ์ "dc"๋ '๋๋ฉ์ธ ๊ตฌ์ฑ ์์(Domain Component)'๋ฅผ ์๋ฏธํ๋ฉฐ, "example"์ ๋๋ฉ์ธ ์ด๋ฆ์ ๋ํ๋ ๋๋ค. "dc=example,dc=com"์ LDAP ์๋ฒ์ ์ ์ฅ๋ ๋ฐ์ดํฐ์ ์ต์์ ๋๋ฉ์ธ์ด "example.com"์์ ๋ํ๋ ๋๋ค.
๊ธฐ๋ณธ ๋ค์ ์ปจํ ์คํธ๋ฅผ ์ฌ์ฉํ๋ฉด LDAP ์๋ฒ์์ ํจ๊ณผ์ ์ผ๋ก ๋ฐ์ดํฐ๋ฅผ ๊ฒ์ํ๊ณ ์กฐ์งํํ ์ ์์ต๋๋ค. ์๋ฅผ ๋ค์ด, ํน์ ๊ธฐ๋ณธ ๋ค์ ์ปจํ ์คํธ์์ ์ฌ์ฉ์ ์ ๋ณด๋ฅผ ์ฐพ๊ฑฐ๋, ์กฐ์ง์ ๊ตฌ์ฑ์์ ์กฐํํ๋ ๋ฑ์ ์์ ์ ์ํํ ์ ์์ต๋๋ค.
๋ฐ๋ผ์ ๊ธฐ๋ณธ ๋ค์ ์ปจํ ์คํธ๋ LDAP ์๋ฒ์ ๋ฐ์ดํฐ ๊ตฌ์กฐ๋ฅผ ์ดํดํ๊ณ ๋ฐ์ดํฐ๋ฅผ ํจ๊ณผ์ ์ผ๋ก ๊ด๋ฆฌํ๋ ๋ฐ ์ค์ํ ์ญํ ์ ํฉ๋๋ค.
์ฆ namingcontexts ์ด๊ฑฐ๋ฅผ ํตํด ๊ฐ์ข ๋๋ฉ์ธ ๋ฐ ์ฌ์ฉ์ ์ ๋ณด๋ฅผ ์ฐพ์ ์ ์์
-b "DC=cascade,DC=local" : ๊ฒ์ ๋ฒ์ ์ง์ , DC=cascade,DC=local๋ก
ldapsearch
realblackcat@htb[/htb]$ ldapsearch -H ldap://ldap.example.com:389 -D "cn=admin,dc=example,dc=com" -w secret123 -b "ou=people,dc=example,dc=com" "(mail=john.doe@example.com)"
#๋จ์ํ ์์
ldapsearch -H LDAP://10.10.10.192 -D cn=support,dc=blackfield,dc=local -w '#00^BlackKnight' -x -b 'dc=blackfield,dc=local'
์ด ๋ช ๋ น์ ๋ค์๊ณผ ๊ฐ์ด ์ธ๋ถํํ ์ ์์ต๋๋ค:
ํฌํธ
389์์
ldap.example.com
์๋ฒ์ ์ฐ๊ฒฐํฉ๋๋ค.๋น๋ฐ๋ฒํธ
secret123์
์ฌ์ฉํ์ฌcn=admin,dc=example,dc=com์ผ๋ก
๋ฐ์ธ๋ฉ(์ธ์ฆ)ํฉ๋๋ค.๊ธฐ๋ณธ DN
ou=people,dc=example,dc=com์ผ๋ก
๊ฒ์ํฉ๋๋ค.ํํฐ
(mail=john.doe@example.com
)๋ฅผ ์ฌ์ฉํ์ฌ ์ด ์ด๋ฉ์ผ ์ฃผ์๊ฐ ์๋ ํญ๋ชฉ์ ์ฐพ์ต๋๋ค.
์๋ฒ๋ ์์ฒญ์ ์ฒ๋ฆฌํ๊ณ ๋ค์๊ณผ ๊ฐ์ด ๋ณด์ด๋ ์๋ต์ ๋ค์ ๋ณด๋ ๋๋ค:
์ฝ๋: ldap
dn: uid=jdoe,ou=people,dc=example,dc=com
objectClass: inetOrgPerson
objectClass: organizationalPerson
objectClass: person
objectClass: top
cn: John Doe
sn: Doe
uid: jdoe
mail: john.doe@example.com
result: 0 Success
์ด ์๋ต์๋ ๊ฒ์ ๊ธฐ์ค๊ณผ ์ผ์นํ๋ ํญ๋ชฉ์ DN(๊ณ ์ ์ด๋ฆ)
๊ณผ ํด๋น ์์ฑ ๋ฐ ๊ฐ์ด ํฌํจ๋ฉ๋๋ค.
์์
โโโ(b1ackcatใฟkali)-[~/Downloads/HTB_LAB]
โโ$ ldapsearch -H ldap://support.htb -x -s base namingcontexts
# extended LDIF
#
# LDAPv3
# base <> (default) with scope baseObject
# filter: (objectclass=*)
# requesting: namingcontexts
#
#
dn:
namingcontexts: DC=support,DC=htb
namingcontexts: CN=Configuration,DC=support,DC=htb
namingcontexts: CN=Schema,CN=Configuration,DC=support,DC=htb
namingcontexts: DC=DomainDnsZones,DC=support,DC=htb
namingcontexts: DC=ForestDnsZones,DC=support,DC=htb
# search result
search: 2
result: 0 Success
# numResponses: 2
# numEntries: 1
#๋ง์ฝ LDAP์ ์ต๋ช
๋ก๊ทธ์ธ์ด ํ์ฉ๋์ด์๋ค๋ฉด
ldapsearch -h 10.10.10.182 -x -b "DC=support,DC=htb" > ldap-anonymous
#์ฌ๋๋ง ๊ฐ์ง๊ณ ์ค๊ณ ์ถ๋ค๋ฉด
ldapsearch -h 10.10.10.182 -x -b "DC=cascade,DC=local" '(objectClass=person)' > ldap-people
ldapsearch
์๊ฒฉ ์ฆ๋ช ์ด ๋ฌดํจ์ด๊ฑฐ๋ ์๊ฒฉ ์ฆ๋ช ์ด ์ ํจํ์ง ํ์ธ
ldapsearch -x -H ldap://<IP> -D '' -w '' -b "DC=<1_SUBDOMAIN>,DC=<TLD>"
ldapsearch -x -H ldap://<IP> -D '<DOMAIN>\<username>' -w '<password>' -b "DC=<1_SUBDOMAIN>,DC=<TLD>"
# CREDENTIALS NOT VALID RESPONSE
search: 2
result: 1 Operations error
text: 000004DC: LdapErr: DSID-0C090A4C, comment: In order to perform this opera
tion a successful bind must be completed on the connection., data 0, v3839
"๋ฐ์ธ๋ฉ์ ์๋ฃํด์ผ ํฉ๋๋ค" ๋ผ๋ ๋ฉ์์ง๊ฐ ํ์๋๋ฉด ์๊ฒฉ ์ฆ๋ช ์ด ์ฌ๋ฐ๋ฅด์ง ์๋ค๋ ๋ป
๋ค์์ ์ฌ์ฉํ์ฌ ๋๋ฉ์ธ์์ ๋ชจ๋ ๊ฒ์ ์ถ์ถํ ์ ์์
ldapsearch -x -H ldap://<IP> -D '<DOMAIN>\<username>' -w '<password>' -b "DC=<1_SUBDOMAIN>,DC=<TLD>"
-x Simple Authentication
-H LDAP Server
-D My User
-w My password
-b Base site, all data from here will be given
์ฌ์ฉ์ ์ถ์ถ
ldapsearch -x -H ldap://<IP> -D '<DOMAIN>\<username>' -w '<password>' -b "CN=Users,DC=<1_SUBDOMAIN>,DC=<TLD>"
#Example: ldapsearch -x -H ldap://<IP> -D 'MYDOM\john' -w 'johnpassw' -b "CN=Users,DC=mydom,DC=local"
์ปดํจํฐ ์ถ์ฒ
ldapsearch -x -H ldap://<IP> -D '<DOMAIN>\<username>' -w '<password>' -b "CN=Computers,DC=<1_SUBDOMAIN>,DC=<TLD>"
๋ด ์ ๋ณด ์ถ์ถ
ldapsearch -x -H ldap://<IP> -D '<DOMAIN>\<username>' -w '<password>' -b "CN=<MY NAME>,CN=Users,DC=<1_SUBDOMAIN>,DC=<TLD>"
๋๋ฉ์ธ ๊ด๋ฆฌ์ ์ถ์ถ
ldapsearch -x -H ldap://<IP> -D '<DOMAIN>\<username>' -w '<password>' -b "CN=Domain Admins,CN=Users,DC=<1_SUBDOMAIN>,DC=<TLD>"
๋๋ฉ์ธ ์ฌ์ฉ์๋ฅผ ์ถ์ถํฉ๋๋ค:
ldapsearch -x -H ldap://<IP> -D '<DOMAIN>\<username>' -w '<password>' -b "CN=Domain Users,CN=Users,DC=<1_SUBDOMAIN>,DC=<TLD>"
์ํฐํ๋ผ์ด์ฆ ๊ด๋ฆฌ์๋ฅผ ์ถ์ถํฉ๋๋ค:
ldapsearch -x -H ldap://<IP> -D '<DOMAIN>\<username>' -w '<password>' -b "CN=Enterprise Admins,CN=Users,DC=<1_SUBDOMAIN>,DC=<TLD>"
๊ด๋ฆฌ์๋ฅผ ์ถ์ถํฉ๋๋ค:
ldapsearch -x -H ldap://<IP> -D '<DOMAIN>\<username>' -w '<password>' -b "CN=Administrators,CN=Builtin,DC=<1_SUBDOMAIN>,DC=<TLD>"
์๊ฒฉ ๋ฐ์คํฌํฑ ๊ทธ๋ฃน์ ์ถ์ถํฉ๋๋ค:
ldapsearch -x -H ldap://<IP> -D '<DOMAIN>\<username>' -w '<password>' -b "CN=Remote Desktop Users,CN=Builtin,DC=<1_SUBDOMAIN>,DC=<TLD>"
๋น๋ฐ๋ฒํธ์ ๋ํ ์ก์ธ์ค ๊ถํ์ด ์๋์ง ํ์ธํ๋ ค๋ฉด ์ฟผ๋ฆฌ ์ค ํ๋๋ฅผ ์คํํ ํ grep์ ์ฌ์ฉํ๋ฉด ๋ฉ๋๋ค:
<ldapsearchcmd...> | grep -i -A2 -B2 "userpas"
์ฌ๊ธฐ์์ ์ฐพ์ ์ ์๋ ๋น๋ฐ๋ฒํธ๋ ์ค์ ๋น๋ฐ๋ฒํธ๊ฐ ์๋ ์ ์์ต๋๋ค...
Last updated