2016년 7월 7일 목요일
이번엔 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에 접속하여 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에 있습니다. 한번 실행시켜 보겠습니다.
로그인이 된 것을 확인하였으면 본격적으로 문제를 풀어보겠습니다. 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일 수요일
안녕하세요. 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 이미지의 압축을 풉니다.
공부를 하는 입장에서는 많이 불편하죠. 이것을 해결하기 위해 할 수 있는 방안으로는 자기 컴퓨터에 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까지 다 풀어보도록 하겠습니다.
피드 구독하기:
글 (Atom)