# F.T.Z level1

ls를 입력해서 현재 디렉토리 안에 있는 내용을 출력하여 'hint'파일을 발견해 cat으로 열어
"level2 권한에 setuid가 걸린 파일을 찾는다."라는 힌트를 얻는다.

find / -user level2 -perm -4000을 입력해 level2 권한에 setuid가 걸린 파일을 찾으려고 했지만 에러 메시지가 출력되었다.

그래서 2>/dev/null을 추가해 에러 메시지를 지우고 출력하니 '/bin/ExecuteMe'를 발견하였다.
-user: 소유자명 또는 UID 지정
-perm mode: 파일의 접근 권한 지정 (-4000: SetUID와 SetGID가 모두 포함된 파일에서 찾기 4000: SetUID에서만 찾기)
※ SetUID: 일시적으로 자신의 ID 변경 파일 소유자의 권한 얻음 / SetGID: 파일 그룹의 권한 얻음
※ -rwsr-xr-x처럼 파일의 사용자 퍼미션 부분에 's'가 있으면 setuid 권한으로 설정된 것을 알 수 있다.

/bin/ExecuteMe를 입력하니 다음과 같은 메시지가 출력되면서 [level1@ftz level1]$가 아닌 [level2@ftz level2]$로 바뀌었다.(아래 사진)

패스워드를 구할 수 있는 'my-pass'와 권한을 부여하는 'chmod'를 제외하고 있기 때문에 'bash'를 통해 쉘을 level2로 실행하고 my-pass를 입력해 패스워드를 얻을 수 있다.
# F.T.Z level2

level1과 동일하게 힌트를 얻고 '/usr/bin/editor'를 구한다.

/usr/bin/editor를 입력하면 텍스트 에디터가 나오는데 'O'를 눌러 편집모드를 실행한다.

마지막 줄에 '--INSERT--'라는 문구가 있어 편집모드인 것을 구분할 수 있다.
편집모드에서만 텍스트를 입력할 수 있다. 여기서 "텍스트 파일 편집 중 쉘의 명령을 실행시킬 수 있다는데.."라는 힌트를 이용해 외부 명령으로 my-pass를 입력한다. ※ :!명령어

level3의 패스워드가 출력된 것을 볼 수 있다.
'Linux' 카테고리의 다른 글
How to Install meshlab in Ubuntu 18.04 (0) | 2023.03.03 |
---|---|
[LINUX] Bandit : Over the wire Level 6 ~ Level 10 (0) | 2022.05.22 |
[LINUX] Bandit : Over the wire Level 0 ~ Level 5 (0) | 2022.05.15 |
[LINUX] 리눅스 3. F.T.Z Trainer8 (시스템 해킹을 위한 리눅스 명령어) (0) | 2022.05.08 |
[LINUX] 리눅스 3. F.T.Z Trainer7 (시스템 해킹을 위한 리눅스 명령어) (0) | 2022.05.08 |