Wargame/FTZ

[FTZ]level2

D4tai1 2019. 9. 3.

level2계정으로 접속을 했으면

확인을 해봅시다.

 

[그림1] hint 파일확인

 

텍스트 파일 편집기라...

 

Windows 사용자가 메모장을 알고있다면

Linux 사용자는 vi나 gedit정도는 알고 있겠죠?

 

shell을 실행시킬 수 있다..?

 

그러면 level1과 동일하게

SetUID가 적용된 편집기에서 shell을 실행시키면

level3의 권한으로 실행되겠네요!!!

 

벌써 다 푼 것 같지만

 

[그림2] SetUID가 설정되어 있고 소유자가 level3인 파일찾기

 

찾았으면 열어봅시다.

 

[그림3] [/usr/bin/editor] 실행

누가봐도

vi editor네요??

 

아 맞다

vi editor의 명령모드에서

 shell로 잠시 빠져나갈 수 있죠?

 

:sh

실행해 줍시다.

 

참고로 

:!id와 같이 느낌표를 치고 명령어를 실행할 수 도 있습니다.

 

[그림4] editor에서 잠시 터미널로 빠져나온 화면

editor이 답답한지

터미널에 바람쎄러 나왔습니다.

 

나는 누구일까요?

level3입니다.

 

그 전에 우리가 아는 vim이랑

/usr/bin/editor이랑

어떤차이가 있을까요?

 

[그림5] 원래 vim과 editor의 비교

 

용량이 많이 차이가 나네요.

갑자기 궁금증이 생기지 않나요?

 

궁금하면 잠을 못 자고 

잠을 못 자면 내일을 

망칠 수 있으니

잠을 자지 말고 조금 더 확인해 봅시다.

 

[그림6] /usr/bin/editor 확인

빨간네모박스가 있는 곳에 보니

setreuid(0xbbb, 0xbbb);

를 호출하고 있네요.

 

setreuid()

간단하게 알고 넘어갑시다.

이미 작성해 놓았기 때문에

아래 클릭해서 보시면 됩니다!!

https://ccurity.tistory.com/176

 

접근권한[퍼미션]

1. 접근권한 1) chmod(Change Mode) 명령어 - 접근권한을 부여 혹은 제거할 수 있는 명령어이다. # chmod [퍼미션] [파일 및 디렉터리] # chmod [대상][조작][종류] [1] 옵션 ▶ -R = 해당 디렉터리의 모든 하위..

ccurity.tistory.com

그래서 보통

setreuid(geteuid(), geteuid())

이런식으로 사용합니다.

 

추가적으로 

systemcall 번호는 

getuid = 49

setreuid = 70

입니다.

 

노란박스를 보면 

p 0xbbb 를 입력해서 출력합니다.

p는 print의 약자입니다.

3003?? level3의 UID네요.

 

setreuid(3003, 3003);

을 실행해서 

리얼유저ID를 level3로 변경하고 있어요!!

 

파란박스를 보면

system(0x08048444);

와 같이 구성되어 있는데

 

0x08048444에 어떤문자열이 

들어있는지 궁금궁금 할 것 같습니다.

 

x/s 0x08048444와 같이 입력을 하면 

/bin/vi가 나오네요.

 

이 말은!!!!!!!!

level3의 권한으로 vi를 실행한다는 말과 동일하죠?

 

my-pass를 입력하고

넘어갑시다.

 

[그림7] my-pass

 

Level3 Password is "can you fly?".

 

이제 level3로 이동!!

'Wargame > FTZ' 카테고리의 다른 글

[FTZ]level6  (0) 2019.09.05
[FTZ]level5  (0) 2019.09.05
[FTZ]level4  (0) 2019.09.04
[FTZ]level3  (0) 2019.09.03
[FTZ] level1  (0) 2019.09.03

댓글