접속 정보
ID : level4
PW : level3 결과 (suck my brain)
문제 해결
앞의 level들 처럼 level5의 권한으로 쉘명령을 실행해 level5의 비밀번호를 알아내면 될 것이라 생각해서 앞의 문제들처럼 setuid가 level5로 설정된 파일을 찾아봤다. 하지만 아무것도 나오지 않아 바로 hint를 출력해봤다.
백도어??
백도어란 시스템에 비인가적인 접근을 시도하는 프로그램을 의미한다. 즉, 정상적인 인증 과정을 거치지 않고 운영체제나 프로그램 등에 접근할 수 있도록 만든 일종의 뒷구녕같은 개념이다. 여태 setUID로 다음 레벨의 쉘명령을 실행하던 것도 백도어의 개념으로 볼 수 있다. 넓은 의미에서 익스플로잇을 뜻하기도 한다고 한다. 권한없는 쉘을 따는 것이라 이해하면 될 것 같다.(개인적인 생각이다...)
다시 문제 풀이로 돌아가서
/etc/xinetd.d/에 백도어를 심어놨다고 하니 /etc/xinetd.d/를 확인한다.
backdoor이라는 파일이 있다. 해당 내용을 확인해본다.
오.. 뭐라는지 모르겠다. 이 문제를 풀기 전 필요한 개념을 먼저 학습할 필요가 있다.(/etc/xinetd.d/라던가, service finger라던가...) → [Linux] 데몬이란?
이제 앞의 사전 공부내용을 토대로 위 백도어 설정을 해석하면 아래와 같다.
service finger {
user = level5 //level5의 권한으로
server = /home/level4/tmp/backdoor //이 파일을 실행
}
그럼 이 설정에 따라
- finger 명령 실행
- /etc/xinetd.d/backdoor의 설정에 따라 finger명령이 실행되면 level5의 권한으로 server의 파일이 실행된다.
의문점
backdoor에서도 finger 서비스가 실행될 때의 설정들이 정의되어 있고, finger에도 finger 서비스가 실행될 때의 설정들이 정의되어있다. 그럼 둘중에 어떤 설정이 실행되는지 의문이다.
아마 disable 때문에 backdoor의 설정이 실행된 것 같다. finger의 disable이 yes로 설정되어있다. 앞의 사전 공부에 따르면 disable은 데몬의 비활성화 여부에 관한 값이다. finger의 설정에 disble=yes로 되어있는 것으로 보아 finger 데몬은 비활성화 되어있다.
다시 문제로 돌아와서
finger 명령을 실행해보면 아무일도 일어나지 않는다. tmp 폴더를 확인해보니 아무 내용이 없어 실행되지 않은 것 같다.
이제 tmp에 실행하고자 하는 파일을 만들면 finger를 실행했을 때 그 파일이 실행될 것이다.
tmp에 backdoor라는 이름으로 my-pass를 출력하는 파일을 만든다.
끄으으읕
참고
https://tar-cvzf-studybackup-tar-gz.tistory.com/54
'wargame - system > FTZ' 카테고리의 다른 글
[FTZ] 해커스쿨 FTZ Level5 - Write Up (0) | 2022.05.08 |
---|---|
[FTZ] 해커스쿨 FTZ level3 - Write Up (0) | 2022.05.05 |
[FTZ] 해커스쿨 Level2 - Write Up (0) | 2022.05.03 |
[FTZ] 해커스쿨 Level1 - Write Up (0) | 2022.05.03 |