안녕하세요. 오늘은 hackschool의 level 1을 풀어보겠습니다.
서버로 접속하여 level 1로 갑시다. level 1의 패스워드는 ftz트레이닝 10단계를 완료하시면 얻을 수 있습니다.
파일목록을 확인합시다. hint파일이 있군요. hint파일을 확인해보겠습니다.

setuid가 걸린 파일을 찾으라는군요.setuid란 파일 실행시 다른 권한으로 파일을 실행시켜준다는 것을 의미합니다. 그러면 파일을 찾기 위해 명령어를 입력해 보겠습니다.

find / -user level2 -perm -4000 2>/dev/null 를 입력해줍시다.

find : 파일을 찾을때 쓰는 명령어입니다.

-user level2 : level2 권한인 것을 의미합니다.

-perm -4000 : perm은 퍼미션으로 찾아라는 뜻입니다. 퍼미션이란 해당 파일이나 폴더의 권한을 의미합니다. 4000이란 것은 앞의 4는setuid이고 뒤의 000은 rwx입니다. rwx는 읽고 쓰고 실행이 가능한 파일을 의미합니다. 즉 setuid가 걸린 파일이나 폴더를 의미합니다.

2>/dev/null : 앞의 숫자2는 접근거부(에러메세지)를 의미합니다. /dey/null은 보여주지 않겠다 라는 소리입니다. 즉 접근거부된 파일은 보여주지 말라 라는 뜻이지요.

명령어를 적어주시면 다음과 같이 하나의 파일이 나옵니다. ExecuteMe 나를 실행시키라는 뜻을 가진 파일이네요. 실행을 위해 cd /bin을 입력하여 bin으로 이동한 후 ExecuteMe를 실행시켰습니다.

setuid를 갖고있는 파일이 맞는 모양이군요. level2의 권한으로 명령어를 하나 실행시켜준답니다. 다만 my-pass와 chmod는 제외라는군요.

my-pass는 현재 권한의 패스워드를 알려달라는 명령어입니다. 해커스쿨에서의 전용 명령어이지요. 그리고 chmod는 파일 및 디렉토리의 권한을 변경하는 명령어입니다. 암튼 이두개의 명령어는 제외라는군요. 그리고 레벨2의 권한으로 명령어를 하나만 실행시켜준다는군요. my-pass가 막힌 이상 하나의 명령어로 패스워드를 알아내기는 매우 힘듭니다. 그렇기 때문에 여기서 단 하나의 명령어로 권한을 지속하여 유지시켜야 합니다. 그 방법은 쉘을 부르는 것입니다. 쉘은 우리가 여기 level1로 들어올때 사용한 그 쉘을 의미합니다. 그러면 쉘을 불러봅시다. 명령어는 bash 쓰셔도 되고 sh쓰셔도 됩니다.
level2가 유지가 됐으며 제약도 풀렸습니다. 패스워드를 알아냅시다.

이것으로 문제풀이를 마치겠습니다.


ㅇ[출처] [해커스쿨] ftz level1 풀이|작성자 도마 우마루파일 및 디렉토리의 권한을 변경하는 명령어입니다. 암튼 이 두개의 명령어는 제외라는군요. 흠. 뭘 입력해야 할까요? 




'HackerSchool' 카테고리의 다른 글

HackerSchool - trainer  (0) 2015.07.22
HackerSchool - F.T.Z 로컬환경 구축  (0) 2015.07.22
HackerSchool - ftz level6  (0) 2015.07.15
Hacker school ftz level5  (0) 2015.07.15
hacker school - ftz level4  (0) 2015.07.15
Posted by englishmath
,