해커스쿨의 ftz는 쉽게말해 리눅스로 해킹연습을 한다고 보시면 됩니다. 여러가지로 리눅스를 익히고 보안의 기본을 익힐 수
있다고 생각합니다.
해커스쿨 사이트와 ftz 사이트 입니다.
http://www.hackerschool.org/main.html
http://www.hackerschool.org/Sub_Html/HS_FTZ/index.html
환경은 vmware에 ftz로컬을 구축하고 putty로 ssh해서 접근하였습니다. 요청이 있으면 하는방법 올리겠습니다.
level1을 해보겠습니다. 하기전에 트레이닝존을 다 익히고 오셔야 level에 진입 가능합니다.
level1은 들어가서 level2의 비밀번호를 알아내는 것으로 시작합니다.
level1의 비밀번호는 level1 입니다.
로그인이 되었으면 일단.. ls를 해봅니다. hint라고 된 파일이 눈에 띄네요. cat으로 읽어 주면 다음 level로 가는 힌트임을
알 수 있습니다.
level2권한에 setuid가 걸린 파일을 찾으라네요.. setuid의 권한을 부여하게 되면 부여된 파일을 실행할때, 실행시킨
사용자의 권한이 아닌 그 해당 파일의 소유자의 권한으로 인식하게 됩니다.
예를들어 /etc/shadow 파일은 일반 사용자가 읽기조차 못한다는 것을 알고 계실 겁니다. 궁금하면 한번 들어가 보세요.
그래서 shadow 파일에 접근하기 위해 일시적으로 root 권한이 필요한데 setuid가 설정되 있으면 일시적으로 받아서
일반 사용자도 접근이 가능하다는 것입니다. 운영에 필요한 점이지만 보안에 취약하다는것이 단점입니다.
지금 힌트로봐서 level2 권한의 setuid가 걸린 파일을 찾으라는 것 입니다. 일단 find 명령어로 찾아 보겠습니다.
find 명령은 linux기본 명령어에서 다룬적이 있습니다.
2016/11/08 - [Linux] - 6. Linux 기본 명령어(파일관련 ls, mv, cp, rm, touch, file, find)
우선 허가권으로 검색전에 소유자가 level2인것으로 검색해 보았습니다.
find / -user level2 2>/dev/null
/ 경로 아래에 소유자가 level2 인것을 찾는다는 명령입니다. 그뒤에 "2>/dev/null"은 에러메세지가 나는것은 휴지통(?)에 보낸
다고 생각하시면 쉽습니다. 저 옵션을 뒤에 안붙이면 level1사용자로 조회할 수 없는 파일이 많기 때문에 허가권 거부
라는 메세지가 주루룩 뜰 것입니다. / 는 최상위 경로이기 때문에.. 일단 조회 결과 /bin/ExecuteMe 라는 파일? 디렉터리?
가 하나 나왔습니다. cd 명령으로 이동이 안되는 것을 보니 파일임을 알 수 있습니다. 실행 시켜 보겠습니다.
실행 시키니 아래와 같은 창이 나왔습니다. 다음 패스워드를 알기 위해서는 my-pass 라는 명령을 써야 하는데 쓰질 못하게
합니다. chmod로 허가권을 바꾸지도 못하게 합니다.
passwd 도 root권한에서 사용가능하고, 남은 방법은 셸을 실행시키는 것입니다.
**셸은 쉽게 말해서 사용자와 커널의 다리역할을 합니다. 사용자로부터 받은 명령을 해석하고 프로그램을 실행시키는
역할입니다.**
셸도 여러 종류가 있는데 bash셸을 제일 많이 사용하기 때문에 그리고 여기서 사용하는 셸도 bash셸이기 때문에
**셸조회 : echo $SHELL
bash 를 입력해 줍니다. 그러면 level2로 바뀐것을 알 수가 있습니다.
이제 여기서 my-pass 명령을 실행시켜 줍니다. 지금 level2 권한을 가졌기 때문에 level2로가는 password가 나오게 됩니다.
level1을 풀어 봤습니다.
'Hack > ftz' 카테고리의 다른 글
ftz 풀이 level6 (0) | 2016.11.28 |
---|---|
ftz 풀이 level5 (0) | 2016.11.27 |
ftz 풀이 level4 (0) | 2016.11.23 |
ftz 풀이 level3 (0) | 2016.11.21 |
ftz 풀이 level2 (0) | 2016.11.19 |
댓글