IT/Linux
[FTZ] Level 1: SetUID로 찾은 백도어 이용하기
GRACE_MJ
2020. 8. 30. 00:18
level1으로서 로그인을 하고 (ID: level1 / PW: level1)
홈디렉터리를 확인해보면 hint라는 파일이 있습니다
파일 내용을 확인해보니,
level2 권한에 SetUID가 걸린 파일을 찾으라고 합니다
리눅스에서 찾기 명령어인 find를 이용하여
현재 힌트에서 요구하는 사항은 아래와 같습니다
$ find / -user level2 -perm -4000 2>/dev/null
사용자가 level2이면서
권한이 4000인 (= SetUID가 걸린) 파일을 찾는데
에러 출력은 /dev/null로 보냄으로서 화면에 출력하지 않는 명령어입니다
그에 해당하는 파일을 /bin/ExecuteMe라는 파일 하나 밖에 존재하지 않았고
이 파일은 level1이 읽고 실행할 수 있으며
level2에 SetUID가 걸려있는 실행파일이었습니다
level1인 우리도 실행가능한 파일이기에 실행해보니
level2의 권한으로 명령어를 실행할 수 있는 기회가 주어졌습니다
하지만 패스워드를 볼 수 있는 my-pass와 권한을 변경할 수 있는 chmod는 제외되어 있었습니다
이 둘을 제외한 모든 명령어가 가능하다면
쉘을 실행시키는 것 또한 가능할 것입니다
그리고 일단 쉘을 실행시키면 level2의 권한으로 쉘이 실행된 것이기 때문에
그 이후에는 어떤 명령어도 실행시킬 수 있을 것으로 예상됩니다
sh 명령어로 정상적으로 쉘이 실행되었고, 이때 my-pass를 입력하니
level2로서 쉘을 실행한 것이었기 때문에 성공적으로 Level2의 패스워드를 알려주고 있음을 확인할 수 있습니다