Wargame/Bandit

Bandit Level 16 → Level 17

startonebyone 2022. 3. 12. 23:04

Level Goal

다음 레벨을 위한 패스워드는 'localhost'의 31000 ~ 32000 범위에서 현재 레벨의 패스워드를 제출함으로써 얻을 수 있습니다.

첫째로 어떤 포트가 리스닝 중인지 찾으세요. 그리고나서 SSL 통신을 하는 포트와 평문 통신을 하는 포트를 구분하세요. 

오직 하나의 서버만이 다음 레벨의 패스워드를 제공할 것이고, 그 외 다른 서버들은 당신이 입력한 값을 다시 반복하여 단순히 보낼 것입니다.

 

Commands you may need to solve this level

ssh, telnet, nc, openssl, s_client, nmap

Answer

$ nc -zvnw 1 127.0.0.1 31000-32000         

// 31000~32000 사이의 열려있는 포트 확인

$ openssl s_client -connect localhost:31790       

// 열려있는 포트번호를 각각 대입해보면서 비밀번호 입력 시 결과가 같게 나오면 틀린 것이고 correct라고 뜨면 RSA KEY를 알려줄 것이다. 그리고나서 RSAkey를 복사한다.

$ mkdir /tmp/mytmp16                                                 

// tmp폴더 아래에 새 폴더 만들기(mytmp16)

$ vi /tmp/mytmp16/RSAkey                                         

// 아까 복사한 내용을 vi 편집기를 이용해 RSAkey 파일로 저장해준다.

$ chmod 700 /tmp/mytmp16/RSAkey                       

// private키는 다른 사용자가 접근할 수 없기에 다른 사용자의 권한을 없애준다.

$ ssh -i /tmp/mytmp16/RSAkey bandit17@127.0.0.1   

// RSAkey를 제출하여 bandit17 계정에 접속한다.

$ cat /etc/bandit_pass/bandit17                                 

// bandit17의 패스워드를 얻는다.