이번 단계는 레벨 5에서 레벨 6로 넘어가는 과정입니다 이전 게시물을 못 봤다면 반드시 이전 단계의 패스워드를 알아야 넘어갈 수 있으니 순서대로 따라와 주세요
필자는 root계정에서 명령을 입력합니다 만약 root계정이 아니라 오류 나는 경우 명령어 앞에 sudo를 붙여주세요
이번 포스팅에서 진행할 단계는 Bandit Level 5입니다
CTF Bandit 문제를 확인하기 위해서 bandit overthewire 사이트에 접속해주세요
Level 5 - > Level 6 단계의 문제입니다 다음 단계로 넘어가기 위해서는 패스워드를 찾아야 하는데 패스워드 파일은 inhere 디렉터리 아래에 저장되어 있다고 합니다
그리고 패스워드 파일은 아래와 같은 조건이 있다고 합니다
<암호가 담긴 파일의 조건>
사람이 읽을수 있는 파일
1033 bytes 사이즈로 구성된파일
실행이 불가한 파일
우선 터미널을 열어서 아래 명령을 입력한 뒤 bandit 서버에 접속해줍니다
ssh -p 2220 bandit5@bandit.labs.overthewire.org
서버 접속 시 패스워드는 이전 단계에서 찾은 패스워드를 입력해줍니다
bandit5로 사용자명이 나오면서 정상적으로 문제 서버에 접속된 걸 확인하실 수 있습니다
ls 명령을 입력하여 현재 디렉터리의 파일들을 보니 inhere라는 디렉터리가 발견되었습니다
ls -la명령으로 현재 디렉터리의 파일들을 조금 더 자세히 볼 수 있는데요 inhere의 좌측에 drwxr이라고 권한이 표시되어있는 부분에 첫 번째 d는 디렉터리를 의미합니다 r는 read(읽기) w는 write(쓰기) x는 execute(실행)을 의미합니다
리눅스 권한에 대한 자세한 내용은 구글을 통해 배우는 걸 권장하고 해당 문제를 풀기 위해서는 당장은 몰라도 됩니다
cd명령을 통해 inhere 디렉터리로 이동해보겠습니다
inhere디렉터리로 이동하니 maybehere00부터 19까지 디렉터리가 있는데
각각의 디렉터리 안에는 또 여러 파일들이 있습니다
아까 문제에서 파일의 사이즈가 1033 bytes라고 했으니 ls -la명령으로 각각의 파일들 중에 해당하는 파일 사이즈가 있는지 확인할 수 있습니다 하지만 maybehere00부터 19까지 전부 확인하려면 많은 시간이 들기 때문에 조금 더 빠르게 패스워드를 찾을 수 있는 방법을 알려드리겠습니다
문제 파일의 커맨드란에 있었던 find라는 명령을 사용하면 됩니다
find명령에 대해 자세히 알고 싶으시면 터미널에 man find를 입력하시면 됩니다
https://linux.die.net/man/1/find
다만 터미널에선 가독성이 다소 떨어지기에 위 페이지에서 보시는 걸 권장합니다
find명령을 사용하면 조건에 맞는 파일들을 검색할 수 있습니다./* 하위 디렉터리에 있는 모든 파일 들을 대상으로 잡고
-size 옵션을 사용하여 1033c 여기서 c는 1033 bytes를 의미합니다
앞서 설명해드린 man size의 내용 중 일부인데 'c'는 bytes를 검색할 때 사용한다고 나와있습니다 Megabytes의 경우 M을 사용하면 되겠죠?
명령을 입력하고 나온./maybehere07/. file2를 확인해보겠습니다
해당하는 디렉터리로 이동하여 파일을 확인해보니 저의가 찾으려고 했던 조건에 맞는 걸 확인할 수 있습니다
해당 파일을 cat으로 터미널에 출력해보니 다음 단계로 넘어가는 패스워드를 얻을수 있었습니다
23.05.01 bandit사이트의 암호가 변경되었습니다 아래 코드박스를 참고해주세요
P4L4vucdmLnm8I7Vl7jG1ApGSfjYKqJU
위에 주어진 패스워드를 이용하여 다음단계로 접속되나 확인해보겠습니다
정상적으로 다음단계로 로그인이 되며 bandit6에 접속된 걸 확인할 수 있습니다