티스토리 뷰
오늘 내용은 참 어렵네요...
이제 바로 문제 시작.
Problem
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.
=> 대충 요약하자면,
1. localhost의 31000번부터 32000번 포트가 있다.
2. 그 모든 포트들 중 SSL을 반환하는 포트를 찾아라.
3. 2번의 조건을 만족하는 포트는 하나 존재한다.
이 정도가 저희가 필요한 정보입니다.
Conception
오늘 문제 푸는데 필요한 내용 중 새로운 내용은 하나밖에 없어요.
Port Scan : 운영 중인 서버에서 열려 있는 TCP/UDP 포트를 검색하는 것을 의미
이 Port scan 도구로 저는 nmap을 이용했습니다.
[참조 : [칼리리눅스] Nmap 포트 스캔 : 네이버 블로그 (naver.com)]
[참조 : TCP 와 UDP 차이를 자세히 알아보자 (velog.io)]
Solution
nmap 명령어를 이용해서 현재 listening 중인 port들을 가져왔습니다.
listening 중인 port가 open된 포트임을 인터넷 검색을 통해 알 수 있었습니다.
이제 문제에서 주어준 힌트를 이용합니다.
문제에서 SSL에 반응하는 port를 찾으라고 했습니다.
그러니 이전 시간에 이용한 openssl 명령어를 사용해봅니다.
첫 번째는 반응이 없는 것으로 보아 저희가 찾는 것이 아닙니다.
두 번째는 현재 계정(bandit16)의 비밀번호를 입력했더니
똑같은 답을 내놓는 것을 보니 저희가 찾는 것이 아닙니다.(문제에 나와있음)
세 번째 port는 첫 번째와 같은 반응이네요.
네 번째 port에서 저희가 아는 형태가 나왔네요.
저번에 한 번 봤습니다. RSA가 개인키라는 것을요.
여튼 저희가 요 며칠 동안 봐온 것처럼 "Correct!"라는 문구와 함께
개인키를 반납한 것은 저것을 이용하라는 것 같습니다.
저희는 cat 명령어를 이용해 저 개인키를 파일에 저장해 줄 것입니다.
근데 저희는 "~" 에서 cat으로 파일을 생성할 권한이 없습니다.
그래서 예전에 이용한 방법인 /tmp로 가서 파일을 만들 거예요.
거기에다가 만들어주고 나서
그 파일의 권한을 600으로 수정해줘야 합니다.
그 이유는 보안상의 문제이고 자세한 내용은 아래 링크 확인!
[참조 : Load key id_rsa: Permission denied 에러 해결하기 – 괴발개발 개발일기 (dogleg.co.kr)]
권한을 수정한 이후
최근에 배웠던 ssh 명령을 이용하시면 bandit17 계정에 접속이 됩니다.
이후 그때 했던 과정 그대로 따라가시면 비밀번호를 득템 할 수 있습니다.