level16->level17
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.
우선, exit 으로 나간 후
ssh -p 2220 [bandit16@bandit.labs.overthewire.org](mailto:bandit16@bandit.labs.overthewire.org)
로 접속해준다.
그리고 31000 ~32000 포트 스캔을 돌린다.
그럼 위와 같은 포트들이 열려있는 것을 확인할 수 있다.
그러고 openssl로 하나씩 연결해보자.
openssl s_client -connect localhost:31046
openssl s_client -connect [localhost:31518](http://localhost:31518)
(여기에서는 같은 값을 내줌.)
openssl s_client -connect localhost:31691
openssl s_client -connect localhost:31790
이렇게 해보다가 openssl s_client -connect [localhost:31790](http://localhost:31790)
에서 다음과 같이 나타났다.
여기에 read R BLOCK 밑에 현재 파트의 비밀번호를 입력해준다.
그러면 다음과 같이 private_key를 준다.
OpenSSL 취약점 중 하나인 heartbleed 취약점 때문에 이를 반환한다고 한다…
아래만큼 드래그해서 private_key를 저장해준다.
nano private_key
실행 후 붙여넣기 하려고 했으나, 권한 문제가 발생하였다.
따라서,
mkdir /tmp/123
cd /tmp/123
cat > private_key
한 후 붙여 넣어 주었다.
이제 ssh -i private_key [localhost](http://localhost)
로 로컬호스트에 프라이빗 키로 연결해 주었다.
그랬더니 다음과 같은 경고가 발생하였다.
Permissions 0664 for ‘private_key’ are too open 이라고 한다.
권한 문제로 개인 소유만 되어야 한다고 한다.
chmod 700 private_key
로 권한을 변경 후 다시 연결해주었다.
엇… port 22번으로 연결되어 이상하다고 한다.
ssh -i sshkey.private bandit17@localhost -p 2220
이렇게 포트를 지정해 주었다.
다음과 같은 화면이 나타나고, 아래에 bandit17로 로그인 되었다.