FTZ_level1

해킹/FTZ 1~10 2016. 1. 11. 16:00

level1의 패스워드는 level1이다.




들어가서 level1폴더안의 내용을 보니 hint가 보인다. 읽어보니 level2 권한에 setuid가 걸린 파일을 찾으란다.

find명령어를 사용할 수 있는가를 묻는듯.


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


find 다음의 /는 루트 디렉토리 '/'로부터 모든 파일을 찾겠다는 것이고

-user level2는 파일의 소유자가 level2인 파일을 찾겠다는 것이다.

-perm -4000은 스티키비트에 조건을 줘서 검색하는 것인데

쓰고는 있지만 이것에 대해서 아직까지도 정확히 모르고 있었다는게 부끄럽다..


일반적인 파일의 권한은 3자리로 뒷쪽의 000 세개의 비트는 각각 유저, 그룹, 아더의 세가지 권한을 나타낸다.

이것들을 각각 4, 2, 1 세 숫자의 덧셈의 결과로 나타낼 수 있는데. 4는 읽기, 2는 쓰기, 1은 실행 권한을 말한다.

즉 권한이 600이라면 소유자 자신에 대하여는 6=4+2이므로 읽기와 쓰기의 권한만 있고 실행권한은 없는 것이다. 나머지 두비트가 00이기 때문에 그룹과 아더 유저들은 이 파일에 대하여 어떠한 권한도 가지지 않는 것이다.

이부분이야 뭐 알고 있었던 것인데... 어렴풋이만 알고 있었던 부분은 바로 네자리 권한에 관한 것.


-perm -4000에서 제일 첫번째 비트인 4, 저 자리가 특수권한을 나타낸다.

이것도 마찬가지로 4,2,1 세가지의 조합으로 나타나는데 4는 SUID, 2는 GUID, 1은 stickbit를 나타낸다.

4와 2는 알고있던 대로 권한을 파일을 사용하는 일반사용자에게 유저나 그룹의 권한을 양도하는 기능을 뜻한다.

1 스티키비트는 소유자인 자신과 root에게만 파일의 삭제/변경 권한을 주겠다는 뜻이다.

저기서 -4000인 이유는 setuid를 찾아야 하기 때문에고 '-'가 붙은 이유는 최소 4000, 즉 4000보다 큰 권한을 가지는 파일을 찾겠다는 뜻이다.


추가로 생각없이 쓰던 2>/dev/null에 관해서인데.

먼저 앞의 숫자의 2는 표준 에러를 나타낸다. fd관련해서 공부할때

0:표준입력

1:표준출력

2:표준에러

이런걸 공부했던 적이 있는데 아마 같은 의미일듯.

그리고 /dev/null은 이 파일에 쓰는 모든 출력들을 null로 바꿔주는 역할을 한다고 한다.

'>'를 통해서 표준에러인 2를 /dev/null로 보내준다는 것은 즉 에러메세지를 전부 화면에 표시하지 않고 넘어가겠다는 뜻이다.

그래서 그냥 찾으면 ~~~~ permission denied 처럼 찾았지만 권한이 없다고 출력하는 필요없는 에러메시지를 보지 않을 수 있다.


가볍게 하려고 시작한FTZ인데 첫문제부터 공부를 좀 설렁설렁 하고 넘어갔다는 생각이 들었다.




아무튼 위 명령어를 실행해서 찾아보니 파일이 하나 나왔다. 실행시켜보자.




해당파일을 실행시키니 my-pass와 chmod를 제외하고 명령어를 실행시켜주겠단다.

처음 풀때는 my-pass가 리눅스에서 기본으로 제공하는 프로그램인줄 알았다..; 알고보니 ftz에서 비밀번호를 알려주기 위해 따로 만들어 놓은 프로그램이었다...허허

아무튼 비밀번호를 알기 위해서는 my-pass가 필요한데 실행할 수 없으니 쉘을 여는 명령어인 sh를 입력하면 된다.

프로그램에서 열어준 쉘은 my-pass를 사용할 수 없지만 새로 열린 쉘은 그런 제약이 없으니 my-pass를 입력해주면 level2의 패스워드가 출력된다.

끝-



ps. chmod를 명령어에서 제외한 이유에 대해서 좀 생각해봤는데 예컨데 /tmp 밑에 system("my-pass");라는 명령어를 실행하는 파일을 만들어 놓고 이것을 chmod를 통해 권한상승을 할 수 있기 때문인것 같다. 문제의 의도가 쉘을 열수 있는가를 묻는 것이기 때문에 그런거는 같은데.. 조금 째째하다는 생각도 든다.



'해킹 > FTZ 1~10' 카테고리의 다른 글

FTZ_level6  (0) 2016.01.11
FTZ_level5  (0) 2016.01.11
FTZ_level4  (0) 2016.01.11
FTZ_level3  (0) 2016.01.11
FTZ_level2  (0) 2016.01.11
Tags
Social