티스토리 뷰

Level Goal

The credentials for the next level can be retrieved by submitting the password of the current level to a port on localhost in the range 31000 to 32000. First find out which of these ports have a server listening on them. Then find out which of those speak SSL and which don’t. There is only 1 server that will give the next credentials, the others will simply send back to you whatever you send to it.


31000 ~ 32000 범위의 port에 서버가 열러있는 것 같다. 그 중에서도 SSL을 사용하는 서버를 찾아서 인증을 해야할 것 같다.


먼저 port를 scan해야하니 nmap이 떠올랐다.


nmap -p 31000-32000 localhost


이 명령을 통해 열려있는 port를 scan할 수 있었다.

5개가 떴다.


아까 문제에서 단 하나만이 서버라고 했으니 일일히 접속해보면 되지만 nmap에서 ssl인증을 사용하는 port를 찾는 법을 찾다가,


nmap --script ssl-enum-ciphers.nse localhost -p 31000-32000


--script 구문을 이용해서 SSL관련 정보를 가지고있는 포트들을 찾을 수 있었다.



ssl 정보가 나오는 포트가 2개 있었는데 바로 31518 과 31790 이였다.

하나 씩 접속을 해보니


31790이였다.


openssl s_client -ign_eof -connect localhost:31790

이 명령어로 접속을 해보니,


전 레벨의 키를 입력을 받고 이번에는 다음레벨의 키가 아닌 RSA 개인키가 나왔다.


이를 이용해서 다음레벨로 로그인 해주면 될 듯하다.


우리가 write를 할 수 있는공간은 /tmp에사 mkdir을 한 뒤 사용하면 된다.


저 RSA키를 저장 한 다음, 저번에 사용했던 ssh -i 옵션을 이용해서 로그인 해주면 될 것 같다.


적어준 다음


chmod로 권한 설정을 해줘야 한다.


소유자만이 권한이 있어야 하기에 600이나 700으로 셋팅해주면 된다.



성공적으로 bandit17계정으로 로그인이 되었다.


Comments