WriteUp/Root-me.org

LDAP - null bind

vared 2020. 5. 31. 23:03

개인적으로 엄청 어렵게 풀었다….

 

LDAP 뭔지 먼저 알아보도록 하자.

 

LDAP(Lightweight Directory Access Protocol)

TCP/IP 위에서 디렉토리 서비스를 조회, 수정하는 응용 프로토콜 이라고 한다.

 

ldap://host:port/DN?attributes?scope?filter?extensions

 

보통 위와 같은 형식으로 사용된다고 한다.

여기서 디렉토리 자료는 속성- 페어로 표현된다.

 

ㅇㅋ 대충 감이 오는데, null 바인드라는 개념이 서비스를 조회하는데, 익명으로 조회하게 해주는 같다. LDAP DB 정도로 보면 될듯.

 

 

https://wiki.kldp.org/wiki.php/LDAP-Tips#s-7.1

사이트에 ldap 관련 설정부문 설명이 자세히 나와있다.

 

여기서 정보를 검색할때, ldapsearch 라는 명령어를 사용하는것을 확인했다. 이걸 활용해주면 되겠다.

매뉴얼 페이지에서 하나씩 이해해서 적어보자

 

 

 우리가 필요한 옵션 위주로 보면,

 

-b : use searchbase as the starting point for the search instead of default

     문제에서 부분을 베이스로 검색해야 하니까 필요하다.

-x : use simple authentication -> 비밀번호를 모르니까 옵션이 필요하다.

-p 포트 정보.

-h : specify an alternate host on which the ldap server is running -> 로컬을 볼건 아니니까 필요.

 

대충 이렇게 넣어주면 되겠다.

 

ldapsearch -h ldap://challenge01.root-me.org -p 54013 -x -b "dc=challenge01,dc=root-me,dc=org"

 

음…. NO such object 라는게 뜨는데 문제점을 찾아보자.

문제가 생길만한 부분은 -b searchbase 부분밖에 없다.

searchbase 포함하는 object 다음과 같다고 한다.

 

그러니까 쿼리가 응답이 없었던 이유가 h H 혼동한데에 있었다. ldap url 형식으로 써줄거면 -H 사용해야 한다.

바꿔서 넣어보자.(근데 무슨 차인지는 모르겠다만,,,)

-> 나중에 알아보니까 같은건데, ldap:// 형식으로 나타낼 때는 H 쓰고 그냥 쓸때는 h p 함께 써주는 거라고 한다.

실질적으로는 같은거ㅇㅇ

 

ldapsearch -H ldap://challenge01.root-me.org:54013 -x -b "dc=challenge01,dc=root-me,dc=org"

 

무언가는 나오는데, 원하는 값인 이메일값은 나오질 않는다.

ㅇㅋ 이유를 알았다. 하나의 DC 그룹에 대해서 OU 지정이 되어있지 않아서 그런거 같다.

 

이런 식인데, 지금 최상위에서 화살표가 없는 셈이다.

 

ou 값을 지정해줘야 하는데, 아무거나 지정해 줄수 있으면 좋겠다.

null bind 찾아보니까 이걸 의미하는 거였다. 아무 값이나 바인드 해서 값을 끌어내는 것인 하다.

이때 주는 값은 anonymous 라고 한다.

그러면 문제가 LDAP-anonymous bind 여야 하는거 아닌가…

 

일단 명령어는 다음과 같이 주면 된다.

 

ldapsearch -H ldap://challenge01.root-me.org:54013 -x -b "ou=anonymous,dc=challenge01,dc=root-me,dc=org"

 

오케이 원하는 이메일이 나왔다.

 

 

pw : sabu@anonops.org