CTF Bandit Level 2 → Level 3 강좌 - 패스워드 탐색
안녕하세요 지난번에 CTF Bandit Level 2까지 진행하였고 오늘은 지난번에 이어 Level 3의 문제를 풀어봅시다
먼저 다음레벨로 진입하기 위해서는 문제를 풀어야겠죠?? CTFBandit 홈페이지를 열어 문제를 확인해봅시다
문제 내용
The password for the next level is stored in a file called spaces in this filename located in the home directory
문제의 내용을 확인해보니 다음 레벨의 비밀번호는 홈 디렉터리에 있는 공백이 있는 파일에 저장이 되어있다고 합니다
패스워드 파일을 찾기 위해 Bandit2 서버로 ssh연결을 해주세요
ssh -p 2220 bandit2@bandit.labs.overthewire.org
위의 명령어를 통해 bandit2 사용자 명의 bandit서버를 접속하실 수 있습니다
비밀번호의 경우 이전에 사용한 비밀번호를 입력하여 로그인하시면 됩니다
이번 단계에서 사용한 비밀번호는 지난 포스팅을 확인해주세요
ls 명령을 통해 현재 디렉터리의 파일들을 확인해보았더니 spaces in this filename이라는 파일명이 확인됩니다
파일의 이름을 확인해보니 이름 사이에 공백이 있습니다 각각의 spaces,in,this,filename파일이 아니라 하나의 파일입니다
각각 하나의 나누어진 파일이 아니라 하나의 파일임을 확인하기 위해서 ls -l 명령을 입력해보니 파일의 이름이 나뉜 게 아니라 하나의 파일임을 알 수 있습니다
cat spaces in this filename
cat 명령을 통해 spaces in this filename의 내용을 확인해봅시다
bandit2@bandit:~$ cat spaces in this filename
cat: spaces: No such file or directory
cat: in: No such file or directory
cat: this: No such file or directory
cat: filename: No such file or directory
명령어를 입력해보니 공백 사이의 각각 단어를 단일 파일을 인식을 해서 오류가 발생합니다
이럴 때 해결방법이 있는데 TAB키를 눌러 자동완성을 사용하면 됩니다
저희가 입력해야 할 파일의 경우 spaces in this filename입니다 spa까지만 치고 TAB을 누를 경우 뒷부분의 파일명은 자동으로 입력되어 완성됩니다
bandit2@bandit:~$ cat spaces\ in\ this\ filename
아까와 달리 파일 공백 사이에 특수문자 '\' 가 추가되었습니다
자동완성 TAB의 경우 칼리 리눅스 한글 환경으로 사용할 때도 디렉터리나 파일명사이에 공백이 있거나 파일이나 디렉토리 명이 긴 경우 TAB 한 번으로 파일명이 입력되어 매우 편리합니다
bandit2@bandit:~$ cat spaces\ in\ this\ filename
UmHadQclWmgdLOKQ3YNgjWxGoRMb5luK
cat 명령과 자동완성 TAB키를 사용하여 다시 명령어를 입력하고 엔터를 누르니 정상적으로 파일 안에 있는 패스워드가 터미널에 표시됩니다
ssh -p 2220 bandit3@bandit.labs.overthewire.org
이제 LaLevel 2에서 얻은 패스워드를 통해 다음 레벨도 넘어가 봅시다
연결된 ssh통신을 종료하기 위해 exit 명령을 입력하거나 터미널 창을 닫은후 새로운 터미널 창을 열고 위의 명령을 입력해주세요
로그인할 때 패스워드는 아까 bandit2에서 구한 암호를 입력해주세요
┌──(root💀kali)-[~]
└─# ssh -p 2220 bandit3@bandit.labs.overthewire.org 255 ⨯
This is a OverTheWire game server. More information on http://www.overthewire.org/wargames
bandit3@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!
bandit3@bandit:~$
그러면 정상적으로 bandit3 사용자명으로 ssh연결을 성공하였습니다
여기까지 따라와 주셔서 감사합니다