[FTZ] Level 4

Dinah·2024년 7월 31일

ID: level4
Password: suck my brain

find / -user level5 -perm -4000


일단 level5 유저의 SetUID 권한이 있는 파일을 찾아봤는데, 전부 Permission denied 되어있다.

cat hint

백도어

시스템이나 소프트웨어의 보안 메커니즘을 우회하여 비인가자가 시스템에 접근할 수 있도록 허용하는 숨겨진 경로

cd /etc/xinetd.d


힌트에서 알려준 위치로 이동해 파일 목록을 살펴보니, backdoor라는 이름의 파일이 있다!

cat backdoor

finger

원격 사용자 정보 프로그램에 대한 인터페이스를 제공하는 프로토콜
호스트에 현재 접속해있는 사용자의 정보를 출력함

finger service의 코드를 보니 /home/level4/tmp/backdoor 경로로 실행되는 것 같다.

cd /home/level4/tmp


/home/level4/tmp로 이동했는데 backdoor 파일이 없다. finger service를 실행하면 /home/level4/tmp/backdoor가 실행되도록 파일을 생성해보자.

vi backdoor.c


system 함수로 my-pass 명령어를 실행하도록 코드를 만들었다.

gcc -o backdoor backdoor.c


gcc 명령어로 backdoor.c를 컴파일해 backdoor라는 실행 파일을 생성했다.

finger


이제 finger service를 시작하면 만들어둔 코드가 실행될 것이라고 생각해서 finger 명령어를 입력했더니 비밀번호는 안 알려주고 Login, Name 등의 정보를 알려준다.
왜 그런가 해서 finger 명령어를 검색해보니, finger @localhost 형태로 로컬에 위치한 finger service를 실행해야 원하는 결과가 나온다는 것을 알 수 있었다.

finger @localhost

코드가 실행되어 level5의 비밀번호를 획득했다!

0개의 댓글