코딩/코딩 이모저모

Bandit Walkthrough level 14 to level 26

stonejjun 2021. 3. 21. 21:22

Lev.14

sshkey.private 파일 확인. ssh -i sshkey.private bandit14@localhost를 입력하여 서버에 host권한으로 들어간다. 비밀번호의 위치를 알려주었으므로 cat과 절대 경로를 이용해서 들어가면 비밀번호 4wcYUJFw0k0XLShlDzztnTBHiqxU3b3e를 얻을 수 있다. 

Lev.15
nc - 네트워크를 통해 읽거나 씀
nc [host] [portnumber]
echo - 응답

echo 4wcYUJFw0k0XLShlDzztnTBHiqxU3b3e | nc localhost 30000 를 입력하여 전달하면 비밀번호 BfMYroe26WYalil77FoDi9qh59eK5xNr를 얻을 수 있다,

Lev.16

openssl s_client -connect localhost:30001 로 들어가 전 레벨의 비밀번호를 입력하면 다음 비밀번호 cluFn7wTiGryunymYOu4RcffSxQluehd를 얻을 수 있다. 

Lev.17
nmap [host] [-p] [portnum-portnum] 열려있는 포트들을 확인할 수 있다.

열려있는 포트로 접속해 rsa key를 받아 복사하고, 이를 이용해 bandit17 계정으로 접속하면 비밀번호 xLYVMN9WE5zQ5vHacb0sZEVqbrp7nBTn를 얻을 수 있다.

Lev.18
diff [filename a] [filename b] - 두 개의 파일에서 차이가 나는 부분을 알려준다.

new 파일과 old 파일이 존재하는 것을 확인 후 diff 명령어를 이용하여 두 개의 파일을 비교한다. 두 파일에서 차이가 나는 줄이 있는데, 이는 비밀번호인 kfBf3eYk5BPBRzwjqutbbfE887SVc5Yd이다.

Lev.19
 ssh option -t - 원격 호스트에서 실행

18에 들어갈 수 없고, 다시 17에 들어가 home/bandit18로 들어가면 readme를 볼 수 있다. 이 파일에 접근 권한이 없으므로, ssh -t를 이용하여 cat을 하고, 위에서 얻은 lev.18의 비밀번호를 넣으면 lev.19의 비밀번호 IueksS7Ubh8G3DCwVzrTd8rAVOwq3M5x를 얻을 수 있다.

Lev.20

bandit20-do 의 권한을 이용해 /etc/bandit_pass/bandit20 를 열어주면 비밀번호 GbKksEFF4yrVs6il55v6gwY5aVje5f0j를 얻을 수 있다.

Lev.21
nc -l -p port [hostname] [port] - listen, 응답의 포트를 연다.

다른 포트를 열고 그 포트에 다시 들어가 lev 20의 비밀번호를 넣으면 응답으로 lev21의 비밀번호 gE269g2h3mw3pwgrj0Ha9Uoqen1c9DGr를 받을 수 있다.

Lev.22

이동후 cronjob_bandit22 파일 확인. 이를 보고 usr/bin의 cronjob_bandit22.sh파일 확인. 이를 이용해 tmp의 파일을 확인하면 비밀번호 Yk7owGAcWjwMVRwrTesJEwB7WVOiILLI를 받을 수 있다.

Lev.23                                                                                                                                                

이동후 cronjob_bandit23 파일 확인. 이를 보고 usr/bin의 cronjob_bandit23.sh파일 확인. echo를 이용하여 echo I am user bandit23 | mdsum | cut -d ' ' -f 1 을 던지면, 답변으로 파일명을 준다. 이를 이용해 tmp의 파일을 확인하면 비밀번호 jc1udXuA1tiHqjIsL8yaapX5XIAI6i0n 확인가능

Lev.24

solved with solution

Lev.25

UoMYTrfrBFHyQXmg6gzctqAwOmw1IohZ와 pin번호를 함께 보내야 한다. 이때 pin 번호는 모르는 4자리 수이기 때문에 모든 경우의 수를 다 해보아야 한다. 파일을 만들어서 보내거나 순차적으로 모든 경우를 해보도록 하면 어느 순간 비밀번호 uNG9O58gUE7snukf3bvZ0rxhtnjzSGzG를 받을 수 있다.

Lev.26

/usr/bin/showtext를 봄으로써 more의 존재를 알아낸다. bandit26에 접속할때 창의 크기를 줄이고 v를 누름으로써 vi 편집기에 도달할 수 있다. 이 과정에서 비밀번호 5czgV9L3Xx8JPOyRbXh6lQbmIOWvPT6Z를 얻을 수 있다.