2016년 7월 7일 목요일

해커스쿨 FTZ Level2 문제풀이

이번엔 Level1에 이어서 Level2도 해보도록 하겠습니다. FTZ에 접속해서 이번엔 ID:level2, Password:hacker or cracker로 로그인을 해보고 힌트를 확인해보겠습니다.
텍스트 파일 편집 중 쉘을 명령을 실행시킬 수 있다고 합니다. 우선 리눅스에서 보편적으로 많이 쓰이는 에디터가 뭐였죠? Vi였죠? 한번 vi를 확인해보도록 하겠습니다.
Vi의 기능중 :를 붙여서 명령을 실행할 수 있습니다. 예를 들어 ls라는 명령을 쓰고 싶으면 Vi에서 ESC를 눌러 명령모드로 가서:!ls -al를 치면 ls -al 명령을 쓸 수 있습니다.
 
그리고 ENTER를 치면 다시 Vi로 돌아가게 됩니다. 하지만 이 Vi로는 뭘 할 수 없겠죠? 일단 level3로 SetUID가 들어 있는 파일을 찾아보겠습니다.
/usr/bin/editor라는 파일을 확인할 수 있습니다. 이 파일을 실행해보면 Vi가 실행되는 것을 확인할 수 있습니다. 이것을 통해 이 파일은 level3의 권한으로 Vi를 실행시키는 파일임을 유추할 수 있습니다. 이제 이것을 통해 my-pass 명령을 실행시킬 수 있습니다.
Level3의 비밀번호는 can you fly?입니다.

해커스쿨 FTZ Level1 문제풀이

이번 시간에는 해커스쿨 FTZ의 Level1 문제를 풀어보도록 하겠습니다. 우선 FTZ에 접속하여 ID:level1, Password:level1로 로그인하도록 하겠습니다.
로그인이 된 것을 확인하였으면 본격적으로 문제를 풀어보겠습니다. Level1 계정의 홈디렉토리에는 hint라는 파일이 있습니다. 한번 열어보면 힌트가 있음을 확인할 수 있습니다.
level2 권한에 setuid가 걸린 파일을 찾으라고 되어 있습니다. 여기서 SetUID가 무엇인지 잠깐 살펴보도록 하겠습니다. SetUID는 특정 작업을 할 때 소유자가 아닌 다른 사용자에게 소유가의 권한을 잠깐 부여하는 것으로 위의 경우 해당 파일을 실행할 때 자기의 권한은 일시적으로 level2가 된다는 것을 알 수 있습니다. 그럼 그 파일을 찾는 방법을 알아보도록 하겠습니다.
위에 사진 처럼 find라는 명령어를 통해 /bin/ExecuteMe라는 파일을 찾을 수 있었습니다. 그런데 위 명령어가 잘 이해가 안되는 분들을 위해 조금 설명을 해보자면 /는 루트 디렉토리, 즉 최상위 디렉토리를 기준으로 찾는 것이고 -perm +4000은 SetUID가 걸려 있는 권한이 있는 파일을 찾겠다는 뜻이고, -user level2는 소유가가 level2인 파일을 찾겠다는 것입니다. 2> /dev/null은 표준에러가 나는 경우는 /dev/null 즉, 출력하지 않도록 리다이렉션을 한다는 의미입니다. 자세한 것은 직접 검색을 해보시는 것을 추천드립니다. 한번 방금 찾은 파일을 실행시켜 보겠습니다.
ExecuteMe 파일을 실행시키면 level2 프롬프트가 뜨는 것을 볼 수 있습니다. 다만 계정을 비밀번호를 볼수 있는 my-pass 명령어가 막혀있음을 볼 수 있습니다. 하지만 이 상태에서 셸을 실행시킬 수 있다면 어떨까요? my-pass는 물론이요, level2 권한으로 계속 있을 수 있겠죠? 현재 우리가 보통 알고 있는 셸은 /bin/bash에 있습니다. 한번 실행시켜 보겠습니다.
level2 셸이 성공적으로 띄울수 있게 되었습니다. id 명령을 통해 확실히 level2 권한이 생긴 것을 확인할 수 있습니다. 이 상태에서 my-pass를 하면 level2의 비밀번호를 확인할 수 있습니다.
 
비밀번호를 확인할 수 있습니다. level2의 비밀번호는 hacker or cracker가 되겠습니다.

2016년 7월 6일 수요일

해커스쿨 FTZ 로컬 환경 구축하기

안녕하세요. Procker입니다. 오늘은 해커스쿨에서 제공하는 시스템 해킹 워게임인 FTZ(Free Training Zone)을 자기 컴퓨터에 구축을 해보는 실습을 해보겠습니다. 우리가 잘 아는 텔넷 클라이언트(Putty)에서 해커스쿨 FTZ 주소인 ftz.hackerschool.org는 공개되어 있는 무료 서버라서 공격을 많이 받기도 하는데요, 그래서 접속이 안될 때가 있습니다.

공부를 하는 입장에서는 많이 불편하죠. 이것을 해결하기 위해 할 수 있는 방안으로는 자기 컴퓨터에 FTZ 서버를 구축한 다음 SSH를 통해 접속하는 방법이 있겠습니다. 이제 하나씩 절차를 안내해 드릴테니 잘 따라 오시기 바랍니다.

우선 사전적으로 준비하셔야 할 게 있습니다.
1.VMware(무료로 공개되어 있는 Workstation Player나 상용 버전인 Workstation Pro를 구하시길 바랍니다.)
2.SSH(Putty나 Xterm 등을 사용하시면 되겠습니다.)
3.해커스쿨 FTZ 이미지(https://goo.gl/cshlWB)

위의 준비물을 다 구비하셨으면 시작하도록 합니다.
1.해커스쿨 FTZ 이미지의 압축을 풉니다.
 
적절한 곳에 압축을 풀어서 VMware에서 이미지를 불러올 수 있도록 합니다.
 
2.VMware로 FTZ 이미지를 불러온다.
FTZ 폴더에서 .vmx 파일 더블 클릭하거나 VMware에서 불러오도록 합니다.
 
 
3.FTZ서버를 시작한다.
ID:root, Password:hackerschool로 로그인 합니다.
그리고 ifconfig 명령어를 통해 서버의 IP 주소를 확인합니다.
여기서는 192.168.8.11로 되어 있음을 확인할 수 있습니다.
 
4.SSH로 접속한다.
아까 확인한 IP와 연결 방식을 SSH로 설정하고 Open을 엽니다.
ID:level1, Password:level1으로 로그인이 잘 되는지 확인합니다.
 
여기까지 잘 따라오셨으면 이제 해커스쿨 FTZ에 접속하지 않더라도 집에서 마음껏 실습을 할 수 있는 환경이 구축되었습니다. 내일부터는 level1부터 level20까지 다 풀어보도록 하겠습니다.