[level1] Write-Up : SetUID의 취약점 1
Pwn/FTZ

[level1] Write-Up : SetUID의 취약점 1

반응형

FTZ(Free Training Zone)의 트레이닝(1~10)을 완료하고 맞이하는 첫 번째 문제입니다.

 

이제 PuTTY를 실행시키고, level1 / level1 으로 접속해봅시다.

 

ls -l 명령어로 무엇이 존재하는지 살펴보도록 합시다.

 

hint 라고 저긴 파일을 cat 명령어를 통해 알아보도록 합시다.

(혹시 한글이 나오지 않고 깨져 보인다면 -> 여기로)

level2 권한에 setuid가 걸린 파일을 찾으라는군요.

 

그럼 'level2' 권한(user)에 'setuid(4000)' (perm)을 가진 파일을 다 찾아봐야겠군요.

find 명령어를 통해 찾아보도록 합시다.

find / -user level2 -perm -4000  (-perm 뒤에 - 는 '최소한'이라는 의미를 가집니다.)

정보가 너무 많군요. 오류는 쓰레기통(/dev/null)에 버리고 다시 보도록 하죠.

( 2> : 표준 오류(STDERR)를 뜻하는 이 리다이렉션을 통해서 말이죠)

 

find / -user level2 -perm -4000 2> /dev/null

딱 하나의 파일이 나왔군요.

파일 이름이 '저를 실행해'... 라는군요. 바로 실행해보러 갑시다.

 

먼저 cd /bin; ls -l ExecuteMe 을 통해 한 번 더 확인해 줍시다.

권한이 level2이면서 실행 권한(x)을 포함하는 권한인 setuid권한(s)을 가진 파일입니다.

 

한 번 실행시켜봅시다.

./ExecuteMe

했더니 이런 화면이 나타나네요.

'my-pass(FTZ에서 제공하는 다음 레벨 패스워드 제공 툴)'과

권한 변경이 가능한 'chmod' 명령은 제한하고 있네요.

 

하지만 setuid 명령으로 인해 저희는 현재 일시적인 root 권한을 얻었습니다.

그러므로 뭐든지 할 수 있습니다!!

이제 어떤 명령이든지 실행시킬 수 있는 환경인 bash shell로 이동해보죠.

권한이 'level2'로 변경된 것을 확인할 수 있습니다.

 

이제 my-pass 명령어를 통해 level2의 패스워드를 얻어봅시다.


level1 통과!! 이제 level2로 넘어가봅시다.

반응형