WAR GAME/Bandit

[OverTheWire: Bandit] level30 -> level31

jir4vvit 2020. 3. 9. 18:33

사용 툴: cygwin

 

1) 문제

level30 -> level31 문제

ssh://bandit30-git@localhost/home/bandit30-git/repo에 git 저장소가 있다. 사용자 bandit30-git의 암호는 사용자 bandit30과 동일하다.

저장소를 복제하고 다음 수준의 암호를 찾아라.

 

이전 문제랑 문제가 똑같다.........................

계속 git에 대한 문제다.

이전문제 보려면 여기 클릭!

 

 

2) 문제풀이

bandit30@bandit:~$ ls -al
total 20
drwxr-xr-x  2 root root 4096 Oct 16  2018 .
drwxr-xr-x 41 root root 4096 Oct 16  2018 ..
-rw-r--r--  1 root root  220 May 15  2017 .bash_logout
-rw-r--r--  1 root root 3526 May 15  2017 .bashrc
-rw-r--r--  1 root root  675 May 15  2017 .profile
bandit30@bandit:~$ mkdir /tmp/mybandit30
bandit30@bandit:~$ cd /tmp/mybandit30
bandit30@bandit:/tmp/mybandit30$ ls -al
total 305924
drwxr-sr-x 2 bandit30 root      4096 Mar  9 10:20 .
drwxrws-wt 1 root     root 313204736 Mar  9 10:20 ..
bandit30@bandit:/tmp/mybandit30$ git clone ssh://bandit30-git@localhost/home/bandit30-git/repo
Cloning into 'repo'...
Could not create directory '/home/bandit30/.ssh'.
The authenticity of host 'localhost (127.0.0.1)' can't be established.
ECDSA key fingerprint is SHA256:98UL0ZWr85496EtCRkKlo20X3OPnyPSB5tB5RPbhczc.
Are you sure you want to continue connecting (yes/no)? yes
Failed to add the host to the list of known hosts (/home/bandit30/.ssh/known_hosts).
This is a OverTheWire game server. More information on http://www.overthewire.org/wargames

bandit30-git@localhost's password:
remote: Counting objects: 4, done.
remote: Total 4 (delta 0), reused 0 (delta 0)
Receiving objects: 100% (4/4), done.
bandit30@bandit:/tmp/mybandit30$
bandit30@bandit:/tmp/mybandit30$

이전 문제들이랑 똑같이 홈디렉터리를 살펴보았으나 별다른 힌트가 없어서

바로 /tmp 밑에 새로운 디렉터리를 만들고 git clone 명령을 이용하여 저장소를 복제하였다.

 

bandit30@bandit:/tmp/mybandit30$ ls -al
total 305928
drwxr-sr-x 3 bandit30 root      4096 Mar  9 10:20 .
drwxrws-wt 1 root     root 313204736 Mar  9 10:25 ..
drwxr-sr-x 3 bandit30 root      4096 Mar  9 10:21 repo
bandit30@bandit:/tmp/mybandit30$ cd repo
bandit30@bandit:/tmp/mybandit30/repo$ ls -al
total 16
drwxr-sr-x 3 bandit30 root 4096 Mar  9 10:21 .
drwxr-sr-x 3 bandit30 root 4096 Mar  9 10:20 ..
drwxr-sr-x 8 bandit30 root 4096 Mar  9 10:21 .git
-rw-r--r-- 1 bandit30 root   30 Mar  9 10:21 README.md
bandit30@bandit:/tmp/mybandit30/repo$ cat README.md
just an epmty file... muahaha
bandit30@bandit:/tmp/mybandit30/repo$

repo 디렉터리 안에 README.md 파일을 읽어보았는데, 빈 파일이라고 한다...

어떡하지..?;

 

bandit30@bandit:/tmp/mybandit30/repo$ git branch -a
* master
  remotes/origin/HEAD -> origin/master
  remotes/origin/master
bandit30@bandit:/tmp/mybandit30/repo$

git branch -a를 이용하여 브랜치들을 살펴보았다.

저기 보이면 두개의 브랜치가 있는데 HEAD는 현재 작업중인 브랜치를 가리키는 브랜치 이다.

 

결론은 지금 브랜치가 master 하나인 것이다.

 

혹시 누락된 브랜치가 있나? 살펴보았다.

bandit30@bandit:/tmp/mybandit30/repo$ git show-ref
3aa4c239f729b07deb99a52f125893e162daac9e refs/heads/master
3aa4c239f729b07deb99a52f125893e162daac9e refs/remotes/origin/HEAD
3aa4c239f729b07deb99a52f125893e162daac9e refs/remotes/origin/master
f17132340e8ee6c159e0a4a6bc6f80e1da3b1aea refs/tags/secret
bandit30@bandit:/tmp/mybandit30/repo$

맨 마지막 secret이 조금 수상하다. 처음봤다

저기 왼쪽의 문자열은 제일 최신의 commit이다.

사실 git show-ref는 reference를 보는 명령인데, rerference는 branch와 거의 똑같다고 생각하면 된다

 

브랜치가 논리적 명칭이라면, 레퍼런스는 파일 구조상의 명칭이라고 한다.

 

그래서 누락된 정보(secret)을 확인해보았다.

bandit30@bandit:/tmp/mybandit30/repo$ git show f17132340e8ee6c159e0a4a6bc6f80e1da3b1aea
47e603bb428404d265f59c42920d81e5
bandit30@bandit:/tmp/mybandit30/repo$

뭔가 password같다.

 

bandit30@bandit:/tmp/mybandit30/repo$ ssh bandit31@localhost
bandit31@bandit:~$ id
uid=11031(bandit31) gid=11031(bandit31) groups=11031(bandit31)
bandit31@bandit:~$

인증 끝!