Level 16 -> Level 17

- login PW: JQttfApK4SeyHwDlI9SXGR50qclOAil1
- 문제설명: 다음 단계의 PW는 localhost 31000~32000 범위 SSL 통신으로 연결된 하나의 포트에서 얻을 수 있다.
두 가지 방법으로 portscan을 진행해보겠습니다.
1. nc 명령어
아래는 portscan에 자주 사용되는 옵션입니다.
nc -nv -w 1 -z [ address ] [ port ]
- -nv: 상세 결과 출력
- -w 1: 연결 종료 옵션
- -z: 아무 데이터도 보내지 않음
*nc: netcat
*nv: network verbose


# nc -nv -w 1 -z localhost 31000-32000 2>&1 | grep succeeded

2. nmap
# namp -p 31000-32000 localhost

nmap => https://yskr.tistory.com/3
계속해서 다섯개의 port가 열려있고 이 중에서 SSL 통신을 하는 포트를 찾아보겠습니다.
# openssl s_client -connect localhst:[port]
31046번 포트는 연결이 안됩니다.

31790번 포트가 연결이 되는 것을 확인할 수 있습니다.

마지막 부분에 현재 login PW를 입력하면

다음 단계의 PW가 나올 줄 알았는데 Correct! 문자가 나오고 RSA private 가 출력된 뒤 종료됩니다.
RSA private 키를 복사해주겠습니다.

/tmp에 bandit16_key라는 폴더를 만들겠습니다.
해당 경로 이동한 다음 vi를 이용해 방금 복사한 key값을 저장합니다.


ssh 명령어를 사용하여 연결을 해보겠습니다.
# ssh -i sshkey bandit17@localhost

key "sshkey"에 접근이 정상적으로 되지 않았습니다.
위 문장들을 조금 더 읽어보면 sshkey의 접근 권한이 너무 열려있으며
private key는 다른 사람들이 액세스 할 수 없어야 된다고 합니다.
접근권한을 살펴보니 모두가 읽을 수 있게 되어있네요.
아래의 명령어로 접근권한을 바꿔주겠습니다.
# chmod 600 sshkey

다시 시도를 하면
# ssh -i sshkey bandit17@localhost -p 2220

bandit17로 로그인이 되었습니다.

/etc/bandit_pass 의 bandit17 파일을 읽어주면 PW가 나옵니다.
