WAR GAME/Bandit

[OverTheWire: Bandit] level28 -> level29

jir4vvit 2020. 3. 9. 16:40

사용 툴: cygwin

 

1) 문제

level28 -> level29 문제

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

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

 

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

 

 

2) 문제풀이

 

bandit28@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
bandit28@bandit:~$ cd /tmp
bandit28@bandit:/tmp$ mkdir ./mybandit28
bandit28@bandit:/tmp$ cd ./mybandit28
bandit28@bandit:/tmp/mybandit28$ ls -al
total 305924
drwxr-sr-x 2 bandit28 root      4096 Mar  9 08:27 .
drwxrws-wt 1 root     root 313204736 Mar  9 08:27 ..
bandit28@bandit:/tmp/mybandit28$ git clone ssh://bandit28-git@localhost/home/bandit28-git/repo
Cloning into 'repo'...
Could not create directory '/home/bandit28/.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/bandit28/.ssh/known_hosts).
This is a OverTheWire game server. More information on http://www.overthewire.org/wargames

bandit28-git@localhost's password:
remote: Counting objects: 9, done.
remote: Compressing objects: 100% (6/6), done.
remote: Total 9 (delta 2), reused 0 (delta 0)
Receiving objects: 100% (9/9), done.
Resolving deltas: 100% (2/2), done.
bandit28@bandit:/tmp/mybandit28$
bandit28@bandit:/tmp/mybandit28$

 전 문제랑 똑같이 진행한다.

git clone 명령어를 이용하여 명령어를 복제하였다.

 

bandit28@bandit:/tmp/mybandit28$ ls -al
total 305928
drwxr-sr-x 3 bandit28 root      4096 Mar  9 08:27 .
drwxrws-wt 1 root     root 313204736 Mar  9 08:28 ..
drwxr-sr-x 3 bandit28 root      4096 Mar  9 08:27 repo
bandit28@bandit:/tmp/mybandit28$ cd ./repo
bandit28@bandit:/tmp/mybandit28/repo$ ls -al
total 16
drwxr-sr-x 3 bandit28 root 4096 Mar  9 08:27 .
drwxr-sr-x 3 bandit28 root 4096 Mar  9 08:27 ..
drwxr-sr-x 8 bandit28 root 4096 Mar  9 08:27 .git
-rw-r--r-- 1 bandit28 root  111 Mar  9 08:27 README.md
bandit28@bandit:/tmp/mybandit28/repo$ file README.md
README.md: ASCII text
bandit28@bandit:/tmp/mybandit28/repo$ cat README.md
# Bandit Notes
Some notes for level29 of bandit.

## credentials

- username: bandit29
- password: xxxxxxxxxx

bandit28@bandit:/tmp/mybandit28/repo$

repo 디렉터리 안에 README.md 파일을 읽어보았다.

 

bandit level29에 대한 것이 적혀있다.

username은 bandit29이고 password도 적혀있는데 xxxx라고 적혀있다...

password는 어떻게 확인할 수 있을까?

 

bandit28@bandit:/tmp/mybandit28/repo$ git log
commit 073c27c130e6ee407e12faad1dd3848a110c4f95
Author: Morla Porla <morla@overthewire.org>
Date:   Tue Oct 16 14:00:39 2018 +0200

    fix info leak

commit 186a1038cc54d1358d42d468cdc8e3cc28a93fcb
Author: Morla Porla <morla@overthewire.org>
Date:   Tue Oct 16 14:00:39 2018 +0200

    add missing data

commit b67405defc6ef44210c53345fc953e6a21338cc7
Author: Ben Dover <noone@overthewire.org>
Date:   Tue Oct 16 14:00:39 2018 +0200

    initial commit of README.md
bandit28@bandit:/tmp/mybandit28/repo$ 

git log 명령어를 이용해야한다.

git log라고 치면 저렇게 commit이 뜨게 된다.

 

commit이란 변경사항을 서버에 반영하기 위한 절차 중 하나인데, 쉽게 말해서 임시저장 비슷한 것이다.

 

제일 위에가 최신의 commit(임시저장)이다.

fix info leak이라고 적혀있는데, 뭘 자세히 고쳤는지 보기 위해 git show 명령을 보도록 하겠다.

 

bandit28@bandit:/tmp/mybandit28/repo$ git show 073c27c130e6ee407e12faad1dd3848a110c4f95
commit 073c27c130e6ee407e12faad1dd3848a110c4f95
Author: Morla Porla <morla@overthewire.org>
Date:   Tue Oct 16 14:00:39 2018 +0200

    fix info leak

diff --git a/README.md b/README.md
index 3f7cee8..5c6457b 100644
--- a/README.md
+++ b/README.md
@@ -4,5 +4,5 @@ Some notes for level29 of bandit.
 ## credentials

 - username: bandit29
-- password: bbc96594b4e001778eee9975372716b2
+- password: xxxxxxxxxx

bandit28@bandit:/tmp/mybandit28/repo$

git show [commit] 

해당 commit의 자세한 내용을 볼 수 있다.

저기 보면 -라고 passwordpassword: bbc96594b4e001778eee9975372716b2를 지우고 +로 password: xxxxxxxxxx를 추가시킨 것을 볼 수 있다.

 

저 password가 bandit29의 password인 것 같다.

 

bandit28@bandit:/tmp/mybandit28/repo$ ssh bandit29@localhost
bandit29@bandit:~$ id
uid=11029(bandit29) gid=11029(bandit29) groups=11029(bandit29)
bandit29@bandit:~$

인증 완료!