[level2] Write-Up : SetUID의 취약점 2
Pwn/FTZ

[level2] Write-Up : SetUID의 취약점 2

반응형

지난번에 얻은 level2의 암호를 통해 접속해보도록 합시다.

level2 / hacker or cracker

 

cat hint 를 통해 이번은 어떤 힌트인지 보았습니다.

텍스트 파일 편집 중 쉘의 명령을 실행시킬 수 있다고 합니다.

 

텍스트 파일 편집 프로그램을 제공하는 것 같은데

어떤 건지 한 번 찾아보도록 합시다.

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

editor라는 이름의 실행파일인 것 같습니다.

 

자세히 한 번 보도록 하죠.

ls -l /usr/bin/editor

rws <- s 가 SetUID의 설정이죠.

 

/usr/bin/editor 를 통해 실행시켜보도록 합시다.

editor의 정체는 VIM(Vi IMproved)였군요!

 

저는 처음에 'i'키(insert)를 눌러서 C언어로도 코딩하여보고, 쉘 스크립트로 작성도 해봤지만

결정적으로 확장 명령어 모드(:)에서 :wq test.exe 라고 해봐도 권한이 맞지 않을 때 발생하는

E212 때문에 어떤 스크립트를 작성한다고 하더라도 저장할 수가 없었습니다.

 

다시 생각해보니 들어왔다고 하더라도

현재 저는 아직까지도 level2의 그룹 권한인 상태에서 실행만 시킨 상태였습니다.

즉 SetUID의 취약점을 이용하기 위해서는 권한을 level3로 바꿔야 했습니다.

 

다시 한번 hint를 떠올려보니 VIM 편집기의 기능 중 쉘을 실행시킬 수 있는 명령어가 있을 것 같다는 생각이 들었습니다.

그래서 구글링을 통해 VIM의 확장 명령어 모드에서 쉘 명령을 실행시킬 수 있는

:! (쉘 명령어)

가 있는 것을 알게 되었습니다.

 

그래서 바로 이걸로 배쉬 쉘을 실행시켜 봤습니다.

:! /bin/bash

윗 줄에서는 user가 level2였던 것이 level3로 바뀐 것을 보실 수 있습니다.

 

마지막으로 우리의 명령어 my-pass 를 실행시켜주면 level3의 패스워드를 얻을 수 있게 됩니다.


level3 통과!!

아직 초보자라 우여곡절이 많았지만 스스로 깼을 때 기분이 너무 좋았습니다.

다음 레벨이 기대되는군요.

반응형