Bandit 문제의 끝에 다가가고 있습니다
리눅스를 다룬지 얼마 안 된 거 같은데 꾸준히 노력한 보람이 있네요
오늘도 힘내서 문제를 풀어봅시다!
Bandit Level 27 → Level 28 문제 풀이
ssh bandit27@bandit.labs.overthewire.org -p 2220
password : YnQpBuifNMas1hcUFk70ZmqkhUU2EuaS
Bandit Level 27 → Level 28 문제는 ssh://bandit27-git@localhost/home/bandit27-git/repo 포트 2220 저장소의 다음 레벨의 패스워드가 있다고 합니다 추가로 저장소 패스워드는 bandit27과 동일하다고 하네요
문제에서 주어진 git 명령어를 이용하여 홈 디렉터리에 해당 주소를 복제하려고 했는데 쓰기 권한이 거부된 걸 알 수 있습니다
Tip : ssh://bandit27-git@localhost/home/bandit27-git/repo에서 포트가 2220이므로 git 명령어를 이용할 때 ssh://bandit27-git@localhost:2220/home/bandit27-git/repo으로 표현됩니다 (즉 포트가 localhost 뒤에 붙습니다)
ssh://bandit27-git@localhost:2220/home/bandit27-git/repo
그래서 따로 /tmp/musa라는 경로를 생성하여 저장소를 복제했습니다
bandit27의 패스워드를 입력했더니 패스워드를 읽을 수 없다고 나옵니다 해당 파일은 권한 설정 부여가 필요합니다(chmod 777 /tmp/musa 명령어를 이용하여 권한을 부여해 주면 됩니다)
권한 설정 후 다시 git 명령어로 저장소를 복제하니 repo라는 디렉터리가 생성된 걸 알 수 있습니다
마지막으로 repo 디렉터리 내부에 README 파일을 읽어보면 다음 레벨의 패스워드를 알 수 있습니다
Bandit Level 28 → Level 29 문제 풀이
ssh bandit28@bandit.labs.overthewire.org -p 2220
password : AVanL161y9rsbcJIsFHuw35rjaOM19nR
Bandit Level 27 → Level 29 문제도 이전 문제와 동일합니다
임의의 디렉터리를 생성 후 이전 문제와 동일하게 저장소를 복제했더니 README.md 파일이 생성된 걸 알 수 있습니다
해당 파일을 읽어보니 패스워드가 xxxxxxxxx로 표현되어 있네요... 원본 패스워드는 어떻게 확인해야 할까요?
git show라는 명령어를 사용해야 합니다 하지만 이 명령어를 사용하기 전에 git log라는 명령어를 먼저 알아봅시다
git log 명령어를 입력하면 commit이라는 문구가 뜨게 됩니다 commit 이란 변경사항을 서버에 반영하기 위한 절차 중 하나입니다 즉 임시저장과 비슷한 겁니다 현재 맨 위에 있는 commit이 최신 임시 저장입니다
그다음 git show 명령어를 입력하면 수정전 bandit29의 패스워드를 확인할 수 있습니다
맨 위에 commit도 git log에서 본 commit이랑 동일한 걸 알 수 있습니다
이렇게 git show 명령어를 이용하여 bandit29의 원본 패스워드를 찾아낼 수 있습니다
[ 참고 사이트 ]