Write-Up/FTZ

FTZ: Level1

NONE_31D 2019. 9. 19. 09:23

FTZ 서버는 root/hackerschool로 들어갈 수 있다. Xshell, ssh, putty 등등을 이용하여 해당 서버에 접속할 수 있도록 환경구축 한 후 시작.


level1은 시작인만큼 아이디와 패스워드가 주어진다.

 

ID: level1

PW: level1

 

로그인하면 유저 기본 폴더로 들어가지는데, ls를 통해 확인해보면 다음과 같은 파일들이 있는 것을 확인할 수 있다.

여기서 hint 파일은 매 레벨의 진행 방향을 알려주는 제일 중요한 파일이다. level1에서 힌트 파일을 열어보면 다음과 같은 설명글이 나온다.

 

setuid는 간단하게, 내가 a로 로그인하고 있어도 b의 setuid가 설정된 프로그램을 실행한다면 그동안에는 b의 권한으로 실행할 수 있게 하는 개념이다. 특정 유저의 setuid가 설정된 프로그램은 find명령어를 통해 찾을 수 있는데, 옵션을 정리해서 다음과 같이 실행하면 된다. 

 

-user와 -perm은 어떤 유저의 권한인지, 그리고 어떤 권한인지를 물어보는 옵션이고 2> /dev/null은 앞의 명령어를 통해 나온 에러 출력 값을 /dev/null 안에 저장하겠다는 의미이다. 

결과적으로, 출력 값은 정상적으로 level2의 setuid를 가진 값만 남게 된다.

 

보이는 것 처럼 ExecuteMe라는 파일을 실행해보면 다음과 같은 화면이 나온다. 딱 한번만 level2의 권한으로 명령어를 실행할 수 있게 해준다는데, my-pass와 chmod는 허락되지 않았다. 그렇다면 계속해서 level2의 권한을 사용할 수 있는 방법은 없을까?

 

다음과 같이 sh, /bash, /bin/sh 등을 이용하면 해당 쉘로 진입할 수 있다. 우리는 level2의 권한을 가진 상태에서 쉘을 진입한 것이기 때문에 level2의 권한으로 명령어를 계속해서 사용할 수 있게 된다. 

 

여기서 level2의 비밀번호를 알기 위해 my-pass 명령어를 사용하면 다음과 같이 비밀번호를 얻을 수 있다.

 

쉘을 벗어나는 것은 exit을 통해서 할 수 있고, 그럼 level1의 권한으로 돌아가기 때문에 level2로 로그인하면 된다.

'Write-Up > FTZ' 카테고리의 다른 글

FTZ: Level6  (0) 2019.09.26
FTZ: Level 5  (0) 2019.09.19
FTZ: level4  (0) 2019.09.19
FTZ: level2  (0) 2019.09.19
FTZ : level3  (0) 2019.09.19