FTZ level1

Wargame/FTZ 2018. 1. 3. 23:14

hint 파일 내용을 확인해보면 다음과 같이 level2 권한에 setuid가 걸린 파일을 찾으라고 한다.

 

 

 

간단하게 다음과 같은 명령어로 찾으면 된다.

 

 

실행파일하나가 검색되는데 무슨기능을 하는지 파악하기 위해 gdb로 분석을 해봤다.

먼저 Main 함수를 보면 다음과 같다.

 

 

전체적인 흐름을 간단하게 보면 다음과 같다.

1. 스택 프레임 구성 후 system 함수 실행을 통해 명령어 실행.

2. chdir 함수를 통해 디렉터리 경로 이동.

3. printf 함수를 통해 문자열 출력.

4. fgets 함수를 통해 입력값을 받음.

5. strstr함수를 통해 특정문자열을 2번 검사하여 존재하면 종료 루틴 존재하지 않으면 정상 루틴으로 이동.

6. 정상루틴으로 왔을 시 setreuid함수를 통해 level2의 권한3002(0xbba)으로 변환 후 system 함수로 명령어 실행.

 

대충 이정도 까지 파악해 놓고 실제로 실행해보면 다음과 같은 바이너리인 것을 확인할 수 있다.

 

 

프로그램을 보면 my-pass와 chmod를 strstr함수를 통해 검증했던 것을 알 수 있고 입력값 중 해당 명령어를 제외한 경우에는 정상루틴을 타면서 setreuid 함수를 통해 level2권한으로 변환 후 system함수를 통해 입력한 명령어 실행 후 종료되는 것을 확인할 수 있다.

 

그렇다면 level2권한으로 my-pass를 실행시켜야하기 때문에 쉘을 하나띄워서 level2 권한을 유지한 후 my-pass 명령어를 통해 패스워드를 구하면 된다.

 

 

잘나온당.

 

 

 

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

FTZ level6  (0) 2018.01.05
FTZ level5  (0) 2018.01.05
FTZ level4  (0) 2018.01.04
FTZ level3  (0) 2018.01.04
FTZ level2  (0) 2018.01.03
블로그 이미지

JeonYoungSin

메모 기록용 공간

,