id : level1
pw : level1
<나의 풀이 기록>
training 단계와 다르게 로그인해도 아무것도 나타나지 않아 조금 당황했지만...
1. 우선 가장 먼저 할 수 있는 파일목록 출력 명령 ls를 통해 hint 파일을 찾았다.
2. cat hint로 파일 내용을 출력했더니 'level2 권한에 setuid가 걸린 파일을 찾는다'라고 나왔다.
대박! 이땐 거의 다 푼 줄 알았다...
숨겨진 파일 목록들을 출력해 해당 파일을 찾아봤는데 level2권한은 커녕 setuid가 걸린 파일도 하나도 없었다.
경로가 여기가 아닌가 싶어 위로 이동해 ls -al을 실행했지만 마찬가지로 해당 파일을 찾을 수 없었다.
3. training10에서 공부했던 find명령어로 find / -user level2 -perm -4000를 했더니 많은 오류들이 출력됐다.
수많은 오류들 사이에서 /bin/ExecuteMe파일만 오류 없이 찾아진 것을 볼 수 있다.
그러나 처음엔 이걸 못보고 다시 디렉토리 왔다갔다... 숨긴파일 출력해보고... 하다가 인터넷의 도움을 받았다.
+)
인터넷 검색 결과 알아낸 정보에 의하면
/dev/null = 1>/dev/null : 정상 출력을 null로 출력
2>/dev/null : 에러를 null로 출력 이라고 한다.
따라서 find / -user level2 -perm -4000 2>/dev/null을 입력하면
수많은 오류메세지들은 출력되지 않고
바로 정상출력인 /bin/ExecuteMe파일만 나오는 것을 볼 수 있다.
4. /bin/ExecuteMe 파일을 실행하면 원하는 명령어를 실행시켜준다고 한다.
'단,' 하고 제외되어 있는 두개가 해결의 실마리임을 짐작할 수 있다.
5. 제외된 명령어를 실행하기 위해 level2의 권한으로 들어간다. /bin/bash나 sh명령을 통해 쉘을 실행시킨다.
level2의 쉘로 들어왔으니 my-pass명령이 실행되는 것을 알 수 있다.
+) chmod : (change mode) 파일들이나 디렉터리의 파일 시스템 모드들을 바꾼다.
이렇게 하면 level1이 끝나고 level2의 비밀번호를 얻게 된다.
<풀이요약>
1. ls 파일 목록 확인
2. cat hint : hint 파일 내용 확인
3. find / -user level2 -perm -4000 2>/dev/null 로 hint파일 내용에 해당하는 파일 찾기
4. /bin/ExecuteMe 파일 실행
5. /bin/bash로 level2의 쉘로 진입, my-pass 실행
끝
처음 문제를 풀어보려니 어디서부터 손을 대야 할지 감도 오지 않아 당황스러웠다. 그러나 가장 기본인 파일 목록을 살펴보는 것 부터 시작하면 되는 것 같다. 중간에 풀리지 않는 부분이 있어 인터넷 검색의 도움을 받았다. 리눅스 명령어에 대해서도 혼자서 더 공부해야 문제 푸는 것이 조금 수월해질 것 같다.
'해킹 공부 > 시스템 해킹' 카테고리의 다른 글
FTZ 해커스쿨 level4 - backdoor파일, finger (0) | 2021.10.02 |
---|---|
FTZ 해커스쿨 level3 - 다중명령어 (0) | 2021.10.02 |
FTZ 해커스쿨 level2 - VIM (0) | 2021.09.26 |
FTZ 해커스쿨 training 1~5 (0) | 2021.09.19 |
FTZ 해커스쿨 training 6~10 (0) | 2021.09.19 |