CTF Bandit Level 3 → Level 4 강좌 - 패스워드 탐색

안녕하세요 CTF Bandit Level 3 → Level 4 단계로 넘어가는 풀이를 같이해봅시다

 

필자는 root계정에서 명령을 입력합니다 만약 root계정이 아니라 오류 나는 경우 명령어 앞에 sudo를 붙여주세요

문제의 내용은 아래와 같습니다

The password for the next level is stored in a hidden file in the inhere directory.

다음 레벨의 패스워드는 inhere 디렉터리의 숨겨진 파일에 저장되어있다고 합니다


초보자도 천천히 따라할수 있습니다 이번 단계에서 패스워드를 찾기 위해서는 inhere디렉터리로 이동한 뒤에 ls명령으로 파일 리스트를 보고 hidden파일을 찾아 cat명령으로 hidden파일에 담긴 패스워드를 출력하면 되는 간단한 문제입니다 히든 파일을 보기 위해서는 ls명령 옵션을 함께 사용하면 되는데 우선 bandit 서버에 ssh연결을 해주세요

 

┌──(root💀kali)-[~]
└─# ssh -p 2220 bandit3@bandit.labs.overthewire.org

로그인 시 패스워드는 지난 단계에서 찾은 패스워드를 입력하시면 됩니다

 

 

bandit3@bandit:~$ pwd
/home/bandit3

pwd 명령을 사용하면 현재 작업 중인 디렉터리를 알려줍니다

pwd는 print working directory의 약자로 현재의 위치가 궁금할 때 자주 사용됩니다

 

 

bandit3@bandit:~$ ls
inhere

이제 현재 경로에 어떤 파일들이 있는 확인하기 위해 ls 명령을 입력해주세요

칼리 리눅스 2020.4 zshl shell 기준 ls명령을 사용하였을 때 디렉터리는 파란색 색상 파일은 하얀색 색상으로 터미널에 출력됩니다 

 

 

파일, 폴더 구별 TIP

리눅스 유형이나 커스텀 마이징으로 인해 색상구분이 어렵다면 색상으로 구분하는 방법 말고도 ls -l 명령을 입력하면 디렉터리의 자세한 내용을 출력해줍니다

왼쪽에 drwxr 이라고 표시되어있는데 여기서 d는 directory를 의미하고 rwx는 읽기, 쓰기, 실행 등의 권한을 의미합니다

쉽게 생각해서 폴더와 파일의 유형을 보고 폴더의 경우 drwxr 파일의 경우 -rw 이런 식으로 보면 구분하기가 쉽습니다

 

 

 

bandit3@bandit:~$ cd inhere
bandit3@bandit:~/inhere$ 

문제의 내용을 확인했으니 inhere 디렉터리로 이동해봅시다

디렉터리 이동시에는 cd 명령을 사용하여 이동합니다

 

 

bandit3@bandit:~/inhere$ ls
bandit3@bandit:~/inhere$ 

디렉토리 이동후 다시 한번 ls 명령을 사용해봅시다

문제에선 분명히 inhere 디렉터리에 숨겨진 파일에 있다고 했지만 ls 명령을 사용해보니 아무 파일도 보이지 않습니다

ls에 대한 자세한 옵션을 보려면 man ls를 터미널 창에 입력하면 됩니다

ls 옵션 중 -a 옵션은 숨겨진 파일이나 디렉터리를 보여줍니다 즉 ls -a 명령을 사용하면 숨겨진 파일도 함께 출력됩니다

 

bandit3@bandit:~/inhere$ ls -a
.  ..  .hidden
bandit3@bandit:~/inhere$ ls -la
total 12
drwxr-xr-x 2 root    root    4096 May  7  2020 .
drwxr-xr-x 3 root    root    4096 May  7  2020 ..
-rw-r----- 1 bandit4 bandit3   33 May  7  2020 .hidden

ls -a명령을 통해 숨겨진. hidden파일을 발견하였습니다

ls -l 옵션과도 함께 사용할 수 있습니다 ls -la명령을 입력하면 파일을 조금 더 자세히 보여주며 숨겨진 파일도 함께 출력됩니다

 

23.05.01 bandit사이트의 암호가 변경되었습니다 아래 코드박스를 참고해주세요

bandit3@bandit:~/inhere$ cat .hidden
aBZ0W5EmUfAf7kHTQeOwd8bauFJ2lAiG

이제. hidden파일의 담긴 패스워드를 알아내기 위해 cat명령을 사용해주세요

지난번에 알려드린 tip을 다시 한번 언급하자면 cat .h 까지 입력 후 TAB키를 입력하면 뒷부분은 자동 완성되어 입력됩니다

다음으로 넘어가기 위한 패스워드를 획득하였습니다

exit를 입력하여 연결을 종료하고 다음 단계로 연결해봅시다

 

┌──(root💀kali)-[~]
└─# ssh -p bandit4@bandit.labs.overthewire.org -p 2220
Bad port 'bandit4@bandit.labs.overthewire.org'
                                                                           
┌──(root💀kali)-[~]
└─# ssh -p 2220 bandit4@bandit.labs.overthewire.org                  255 ⨯
This is a OverTheWire game server. More information on http://www.overthewire.org/wargames

bandit4@bandit.labs.overthewire.org's password: 
Linux bandit.otw.local 5.4.8 x86_64 GNU/Linux

      ,----..            ,----,          .---.
     /   /   \         ,/   .`|         /. ./|
    /   .     :      ,`   .'  :     .--'.  ' ;
   .   /   ;.  \   ;    ;     /    /__./ \ : |
  .   ;   /  ` ; .'___,/    ,' .--'.  '   \' .
  ;   |  ; \ ; | |    :     | /___/ \ |    ' '
  |   :  | ; | ' ;    |.';  ; ;   \  \;      :
  .   |  ' ' ' : `----'  |  |  \   ;  `      |
  '   ;  \; /  |     '   :  ;   .   \    .\  ;
   \   \  ',  /      |   |  '    \   \   ' \ |
    ;   :    /       '   :  |     :   '  |--"
     \   \ .'        ;   |.'       \   \ ;
  www. `---` ver     '---' he       '---" ire.org


Welcome to OverTheWire!

If you find any problems, please report them to Steven or morla on
irc.overthewire.org.

--[ Playing the games ]--

  This machine might hold several wargames.
  If you are playing "somegame", then:

    * USERNAMES are somegame0, somegame1, ...
    * Most LEVELS are stored in /somegame/.
    * PASSWORDS for each level are stored in /etc/somegame_pass/.

  Write-access to homedirectories is disabled. It is advised to create a
  working directory with a hard-to-guess name in /tmp/.  You can use the
  command "mktemp -d" in order to generate a random and hard to guess
  directory in /tmp/.  Read-access to both /tmp/ and /proc/ is disabled
  so that users can not snoop on eachother. Files and directories with
  easily guessable or short names will be periodically deleted!

  Please play nice:

    * don't leave orphan processes running
    * don't leave exploit-files laying around
    * don't annoy other players
    * don't post passwords or spoilers
    * again, DONT POST SPOILERS!
      This includes writeups of your solution on your blog or website!

--[ Tips ]--

  This machine has a 64bit processor and many security-features enabled
  by default, although ASLR has been switched off.  The following
  compiler flags might be interesting:

    -m32                    compile for 32bit
    -fno-stack-protector    disable ProPolice
    -Wl,-z,norelro          disable relro

  In addition, the execstack tool can be used to flag the stack as
  executable on ELF binaries.

  Finally, network-access is limited for most levels by a local
  firewall.

--[ Tools ]--

 For your convenience we have installed a few usefull tools which you can find
 in the following locations:

    * gef (https://github.com/hugsy/gef) in /usr/local/gef/
    * pwndbg (https://github.com/pwndbg/pwndbg) in /usr/local/pwndbg/
    * peda (https://github.com/longld/peda.git) in /usr/local/peda/
    * gdbinit (https://github.com/gdbinit/Gdbinit) in /usr/local/gdbinit/
    * pwntools (https://github.com/Gallopsled/pwntools)
    * radare2 (http://www.radare.org/)
    * checksec.sh (http://www.trapkit.de/tools/checksec.html) in /usr/local/bin/checksec.sh

--[ More information ]--

  For more information regarding individual wargames, visit
  http://www.overthewire.org/wargames/

  For support, questions or comments, contact us through IRC on
  irc.overthewire.org #wargames.

  Enjoy your stay!

bandit4@bandit:~$ 

방금 얻은 패스워드를 사용하여 bandit4로 로그인을 시도하니 성공적으로 로그인이 된 걸 확인하실 수 있습니다

 

Top