SECURITY/System | Wargame

[Hackerschool] FTZ level 4

yuujoeng 2022. 10. 3. 10:53

_

ls 명령어로 hint가 있는 것을 확인하였고 cat으로 읽어보았다.

/etc/xinetd.d/에 누군가 백도어를 심어놓았다고 한다.

* 백도어란 ?

서비스 기술자나 유지 보스 프로그래머들의 액세스 편의를 위해 만든 보안이 제거된 통로

또는 프로그래머의 실수로 만들어진 취약점을 일컷는 말

정상적인 인증 과정을 거치지 않고 운영체제나 프로그램에 접근 할 수 있게 함

level3까지 사용했던 find를 사용하여 setUID 권한을 가지고

소유자가 level5인 파일을 우선 찾아보았으나 찾지 못했다.

cd 명렁어로 /etc/xindtd.d 디렉토리로 이동했고

ls -al 명령어로 backdoor 파일이 있는 것을 확인했다.

모두에게 읽기 권한만 부여되어 있고 소유자는 root 그룹은 level4이다.

cat 명령어로 backdoor를 읽어보았다.

level5의 유저 권한으로 /home/level4/tmp/backdoor을 실행시키며

이 서비스는 finger 명령어로 실행되는 것을 알 수 있다.

*finger 명령어

리눅스 상에서 사용자의 계정정보를 확인할 수 있는 명령어

/home/level4/tmp/backdoor로 이동하려 하였으나 없다고 나와서

/home/levle4/tmp 디렉토리로 이동하였다.

ls -al 명령어로 확인해보아도 backdoor은 없다.

직접 만들어야 하는 거 같다.

vi로 backdoor.c 파일을 생성했고

gcc 명령어로 컴파일하여 실행파일을 만들었다.

이제 ls를 해보면 /tmp에 backdoor가 생긴 것을 알 수 있다.

finger 명령어로 level4, root, localhost를 모두 해보았으나

my-pass가 작동하는 방법을 모르겠어서 finger 명령어 사용법을 찾아봤다.

*finger 명령어 사용법

finger : 현재 시스템에 로그인 되어있는 사용자들을 보여줌

finger user : user를 적고 host를 명시하지 않으면 finger은 로컬에 접속함

finger @host : host명을 적고 user을 명시하지 않으면 해당 서버에 접속해 있는 모든 유저의 정보를 출력

finger user @host : 유저와 호스트명을 기입하면 원격서버의 사용자 계정 정보 확인

 

호스트 명을 적을 때 @를 붙여야 한다기에

@localhost로 바꾸었더니 my-pass가 동작하였고

level5의 패스워드를 얻을 수 있었다.