YeoPEVA

해커스쿨 FTZ level1 본문

#Pwn, Crypto/해커스쿨

해커스쿨 FTZ level1

YeoPEVA 2018. 1. 29. 23:42

원래 FTZ는 한번씩 풀었지만, 다시 정리할 겸, 재풀이하면서 좀 더 세부적으로 살펴보기로 했습니다.


문제를 먼저 풀고, 그에 따른 문제에서 요구했던 지식 정리, FTZ 서적 참고해서 좀 더 정리를 추가하고 마무리할 예정이며..


이런 식으로 FTZ를 공략할 예정이며.. 시간 날때 마다 차츰차츰 할려고 합니다. 





힌트 확인


힌트를 확인해보니, setuid가 걸린 파일을 찾으라고 한다.


find 명령을 통해 setuid 걸린 파일을 찾았다.


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

위 명령어를 해석하자면


/ [최상위] 경로에서 

-perm -4000 setuid가 걸린 모든 파일을

-user level2 유저와 일치하는 파일을 찾아라


2>/dev/null

해당하지 않는 결과 값은 출력 x [/dev/null이 일종의 휴지통이라고 생각하면 편하겠네요..]


[위 프로그램 실행시]


위 프로그램을 실행하니 이렇게 뜨네요.

한가지 원하는 명령어를 실행시켜준다 하나, my-pass나 chmod는 제외라고 하네요.


그렇다면 어떠한 명령어를 친다면, level2의 암호 혹은, 쉘을 얻을 수 있을까요?


[/bin/sh]


정답은 리눅스 쉘의 경로입니다. 

저 같은 경우, /bin/sh 쉘을 사용하였습니다. sh[ Bourne Shell]

그 외에도 다양한 쉘이 존재 합니다.


oh-my-zsh 때 소개한 zsh 라던지.. ksh, csh, bash 등과 같은 다양한 쉘이 존재합니다.


쉘은 운영 체제 상에서 다양한 운영 체제 기능과 서비스를 구현하는 인터페이스를 제공하는 프로그램이라고 하며,

사용자와 운영 체제의 내부 사이의 인터페이스를 감싸는 층이라서 이러한 이름이 붙여졌다고 합니다.


정리하자면, 해당 프로그램은 level2의 권한으로 원하는 명령어를 한가지 실행시켜주니,

쉘의 경로를 입력하게 되면, 경로에 있는 쉘을 level2의 쉘을 실행시켜주므로,

level2의 권한인 쉘을 사용 가능하다는 것이지요. 


그 이후로는 my-pass 를 통해 간단히 패스워드를 얻을 수 있었습니다.



Clear




참고 문헌 및 링크 


http://unabated.tistory.com/entry/LinuxUnix%EC%89%98-Shell-%EC%9D%98-%EC%A0%95%EC%9D%98%EC%99%80-%EC%A2%85%EB%A5%98


http://www.leafcats.com/222


https://ko.wikipedia.org/wiki/%EC%85%B8



'#Pwn, Crypto > 해커스쿨' 카테고리의 다른 글

해커스쿨 FTZ level3  (0) 2018.02.04
해커스쿨 FTZ level2  (0) 2018.02.04
해커스쿨 공략 전 계획  (0) 2017.07.23
해커스쿨 ftz - level1 공략  (0) 2016.12.03
해커스쿨 ftz - 트레이닝 공략  (0) 2016.11.08