Wargame/Bandit
-
[Bandit] Level 33Wargame/Bandit 2022. 9. 13. 02:39
Level 33으로 가는 방법은 마지막 문제답게 새로운 개념이 필요하다. 우선 Level 32로 접속을 하면 WELCOME TO THE UPPERCASE SHELL이라는 문구가 반긴다. 명령어를 입력하면 아래의 사진처럼 대문자로 인식을 해 아무런 입력도 출력하지 못한다. 혹시나 힌트가 될까 싶어 다시 bandit31에서 bandit32에 대해 확인을 해봐도 접근이 불가하다. 다시 홈페이지에서 문제의 힌트로 돌아가 man sh를 입력해본다. 대문자로도 작동하는 명령어가 있는지 확인을 해보았지만 없다.. 이 문제는 어떻게 푸는지 감이 오지 않아 결국 구글링을 했다. 아래 사진을 보면 답의 명령은 간단하다. 그런데, 그 개념이 이해가 잘 가지 않는다. sh 매뉴얼을 살펴봐도 $와 0의 의미는 셸의 이름으로 확..
-
[Bandit] Level 32Wargame/Bandit 2022. 9. 12. 07:39
Level 32로 가기 위해서는 git 명령어의 새로운 기능을 사용할 줄 알아야 한다. 앞의 문제들과 마찬가지로 git clone으로 저장소를 복제한 다음 README.md 파일을 읽어본다. 이번에는 원격 저장소에 파일을 push 하라고 한다. 파일의 이름과 내용, branch에 대해서는 README.md 파일에 적혀있다. README.md 파일에 적혀있는 내용으로 key.txt 파일을 생성한다. 앞으로의 작업을 시작하기 전 현재 branch를 확인한다. 또, git remote 명령어로 원격 저장소를 확인한다. branch는 master, 원격 저장소는 origin인 것을 확인할 수 있다. git에서 push를 하는 과정은 세 단계로 진행된다. (git clone으로 원격 저장소를 복제해 왔을 때) 우..
-
[Bandit] Level 31Wargame/Bandit 2022. 9. 11. 05:31
Level 31로 가는 문제는 조금 수월하게 풀렸다. (추후 다른 명령어를 알게 되었다.) 우선, 역시 마찬가지로 git clone으로 저장소를 복사한다. 그 후 repo 디렉터리의 README.md 파일을 읽어보면 빈 파일이라고 한다. (웃음소리가 들리는 듯..) 앞의 문제들에서 했던 방법인 log나 branch를 살펴봐도 하나뿐이고, 다른 방법이 필요한 것 같다. 그래서 숨겨진 디렉터리인 .git의 여러 디렉터리들에 들어가며 많은 파일들을 읽어 보았다. 그 중 packed-refs 파일을 읽으니 secret이라고 하는 수상한 내용이 나타났다. 앞의 commit을 복사해 git show 명령어로 확인을 하니 비밀번호가 나타났다. 사실 이 문제는 숨겨진 branch를 찾는 것이라고 한다. (왜 답이 나왔..
-
[Bandit] Level 30Wargame/Bandit 2022. 9. 11. 05:00
Level 30으로 가기 위해서는 git의 새로운 기능을 알아야 했다. 하지만 git에 대해 잘 몰라서 구글링을 할 수 밖에 없었고, 많은 정보를 참고했다. 이번 문제에서 가장 중요한 것은 git의 Branch라는 개념이다. 간략하게 말하자면, Branch는 독립적인 작업 공간이라고 하면 될 것 같다. 이번 Level도 이전처럼 git clone 명령으로 저장소를 복사해온다. 그리고 repo 디렉터리 내에 README.md 파일을 읽어보니, 비밀번호 자체도 없다. 그 후 구글링을 통해 알아낸 branch라는 개념을 적용해본다. 현재 master branch에서 작업을 하고 있으니 다른 branch를 지정해 보기로 한다. 우선 존재하는 branch를 알아보기 위해 git branch -a 명령을 사용한다...
-
[Bandit] Level 29Wargame/Bandit 2022. 9. 11. 01:39
Level 29는 Level 28의 문제를 풀 때와 비슷하다. 우선 앞의 git clone으로 저장소를 복사하는 과정까지는 똑같으니 생략했다. ls -al 명령어로 조사해보니 repo라는 디렉터리가 있다. repo 디렉터리에 들어가 다시 ls -al 명령어를 사용하니 README.md 파일과 .git 디렉터리가 있다. README.md 파일을 읽어보니 Level29에 대한 노트인데 비밀번호가 xxxxxxxxxx으로 나와 있다.. 이걸 어떻게 해야 하는지 생각을 해봤지만, 잘 모르겠다. bandit 문제에는 해당 Level의 문제를 풀기 위해 알아야 할 명령어의 종류를 제시해준다. 이 문제에는 git 명령어만 있으므로 git --help로 도움을 얻어야 할 것 같다고 생각했다. 그런데 examine the..
-
[Bandit] Level 28Wargame/Bandit 2022. 9. 11. 00:15
Level 28로 가기 위해서는 git 명령어를 사용해 저장소를 복사해야 한다. 우선 git 저장소를 복사해 올 디렉터리를 생성한다. 그리고 git clone 명령얼 사용해 문제에서 제시한 경로를 복사하는데 port를 지정해줘야 한다. git clone --help | grep port 명령어로 port 번호를 적는 방법을 찾아서 아래의 사진처럼 작성했다. 문제에서 bandit27-git의 비밀번호와 bandit27의 비밀번호가 같다고 했으니 해당 비밀번호를 입력한다. 그러면 무언가 완료했다는 안내가 나타나며 object를 받았다는 것을 확인할 수 있다. 디렉터리에서 목록을 조회해보면 repo라는 디렉터리가 생성된 것을 알 수 있다. 해당 디렉터리로 이동하여 파일을 조회하면 README 파일이 있고, 이..
-
[Bandit] Level 27Wargame/Bandit 2022. 9. 10. 02:29
Level 27로 가는 비밀번호는 Level 26에서 빠르게 획득을 하면 된다. 문제가 이 한줄이 끝이다.. Level 26은 직접 접속 시 연결이 바로 끊기기 때문에 Level 25부터 접속을 해야 한다. Level 26에 접속해 연결이 바로 끊기지 않으려면 Shell을 설정해야 한다. 이전 풀이의 vi 편집기 부분에서 명령어를 다르게 입력해보자. :set shell=/bin/bash :sh 이렇게 명령어를 입력해 Shell을 /bin/bash로 바꾸고 vi 편집기에서 바로 Shell을 실행한다. 그러면 Level 26의 접속이 종료되지 않고 작업을 진행할 수 있다. 이제 작업을 진행해보면 bandit27-do라는 이름의 setuid가 설정된 실행 가능한 파일이 있다. 해당 파일을 실행하면 이전에 풀었..
-
[Bandit] Level 26Wargame/Bandit 2022. 9. 10. 02:10
Level 26으로 가는 방법은 쉬울 수도 있단다. (과연 사실일까?) 우선 ls 명령어로 살펴보면 bandit26.sshkey 파일이 있다. file 명령어로 해당 파일의 종류를 보면 private key이다. 이 private key를 이용해 ssh로 접속을 할 때 -i 옵션으로 바로 bandit26에 접속을 할 수 있다. ssh 명령으로 옵션을 넣고 bandit26으로 접속을 해본다. 하지만, 접속은 바로 끊기는 것을 알 수 있다. 문제에서 bandit26의 Shell은 /bin/bash가 아니라고 한다. /etc/passwd의 마지막 필드는 사용자가 기본으로 지정하는 Shell을 나타내므로 cat 명령으로 조회를 해본다. bandit26의 Shell이 /usr/bin/showtext라고 나온다. ..