Information Security

[FTZ] Level 1-3 본문

INTERLUDE/System Hacking

[FTZ] Level 1-3

sohexz 2021. 9. 28. 22:58

Level 1

level 1에 접속한 화면

 

파일 내용을 확인하니 hint 파일, public_html, tmp 디렉토리가 들어 있었다.

 

hint 파일의 내용을 살펴보자

 

먼저, setuid가 걸린 파일을 찾아보자

 

find / -perm -4000 

/에서부터 SetUID가 걸린 모든 파일을 찾아라

 

너무 많이 나온 관계로 다시.

 

다른 것과 다르게 생긴 애 발견

/bin/ExecuteMe

 

찾아보니 저 녀석 빼곤 오류가 난 것이고 오류를 빼고 find 하려면

find / -perm -4000 -user level2 2>/dev/null 이 명령을 쓰면 된다.

 

2>/dev/null

-> 여기서 2는 에러를 뜻하고 에러를 /dev/null은 휴지통이라는 뜻을 의미한다.

결국 에러를 휴지통에 넣으라는 뜻.

 

1>/dev/null 

-> 숫자 1은 정상출력

결국 정상출력된 것들을 휴지통에 넣으라는 뜻.

 

한 번에 찾을 수 있었다.

 

 

/bin/ExecuteMe를 살펴보자

 

/bin/ExecuteMe라는 파일은

level2 유저에게 r,w,s(x) 권한이 있고

level1 그룹에게 r,x 권한이 있고

그 외의 사람들에겐 권한이 없다.

 

=> level1인 나에게 실행 권한이 있다. 

 

실행해보자

 

 

bash에 들어가야 level2 쉘에 접근 가능하다.

 

 

쉘에 들어와서 my-pass로 Level2 비밀번호를 알아냈다.

 


Level 2

텍스트 파일 편집은 vim 사용이었던 것 같다.

 

level1에서 했던 것처럼 level3 권한에 SetUID가 걸린 파일을 찾아보자

/usr/bin/editor 실행해보자

 

vim 편집기가 떴다

 

i를 누르면 편집을 할 수 있고 이 상태에서 Esc를 누르면 vi 명령 모드로 바뀐다.

:!bash <- 편집 상태를 그대로 두고 bash 쉘 실행. 재 진입하려면 exit 후 엔터

level2 에서 level3로 바뀐 것을 확인할 수 있다. 

 

my-pass을 실행해보자.

level3 비밀번호 획득 성공!


Level 3

코드를 해석해보자

 

먼저 cmd 문자 배열 100 존재

argc가 2가 아니면 if문 실행

strcpy(a,b) <- a에 b를 복사

strcat(a,b) <- a뒤에 b 추가 (결과적으로 ab가 된다.) 

system(a) <- a 명령어 실행

 

결과적으로 dig @ argv[1] version.bind chaos txt , 실행

 

argv[1]에 우리가 실행하고 싶은 것을 써주면 된다

 

우리는 bash에 들어가서 my-pass를 쓰고 싶다

 

문자열 형태로 명령어를 전달하려면 큰 타옴표(" ")를 이용

동시에 여러 명령어를 사용하려면 세미콜론(;) 이용

 

 

level4에 권한에 SetUID가 걸린 파일을 찾아보자

 

autodig "bash; ""my-pass" 

 

argv[1]에 들어가서 cmd로 복사되고 cmd가 실행될 것이다.

 

level 4 비밀번호 획득 성공!

'INTERLUDE > System Hacking' 카테고리의 다른 글

[FTZ] Level 8  (0) 2021.11.04
[FTZ] Level 5 -7  (0) 2021.11.02
[FTZ] Level 4 - 5  (0) 2021.10.28
[Training] 5-10  (0) 2021.09.23
[Training] 1-4  (0) 2021.09.16