Bandit Level15 ->Levle16
Level Goal
The password for the next level can be retrieved by submitting the password of the current level to port 30001 on localhost using SSL encryption.
Helpful note: Getting “HEARTBEATING” and “Read R BLOCK”? Use -ign_eof and read the “CONNECTED COMMANDS” section in the manpage. Next to ‘R’ and ‘Q’, the ‘B’ command also works in this version of that command…
다음 레벨의 비밀번호는 SSL 암호화를 사용하여 localhost30001에 현재 레벨의 비밀번호를 제출하여 검색할 수 있습니다.
저번처럼 접속방법이 nc를 사용하는 것 인가했지만 아니었습니다.
이번에는 openssl 명령어를 사용해 문제를 풀어보겠습니다.
일단 SSL이라는 것에 대해서 알아보겠습니다.
SSL
전송 계층 보안은 컴퓨터 네트워크에 통신 보안을 제공하기 위해 설계된 암호 규약입니다. 그리고 '트랜스포트 레이어 보안'이라는 이름은 '보안 소켓 레이어'가 표준화되면서 바뀐 이름입니다. 이 규약은 통신 과정에서 전송계층 종단 간 보안과 데이터 무결성을 확보해줍니다. 이 규약은 웹 브라우저, 전자 메일, 인스턴트 메시지 등과 같은 응용 부분에 적용되고 있습니다. 국제 인터넷 표준화 기구에 의해 현재 구식으로 간주되어 있습니다. 최종 갱신은 RFC-5246이고, 최종 갱신 버전은 넷스케이프에서 만든 SSL 표준을 바탕으로 했다고 합니다.
자세한 건 나중에 더 공부해봅시다.
openssl
openssl은 네트워크를 통한 데이터 통신에 쓰이는 프로토콜인 TLS와 SSL의 오픈 소스 구현판이라고 합니다.
openssl에 대해서 검색해보니까 기본적으로는 설치를 해야 하는 것 같았습니다. 하지만 putty를 사용해서 접속한 원격 컴퓨터에서 openssl 명령어를 그냥 사용할 수 있는 것을 보아하니 openssl이 깔려있는 듯합니다.
접속을 해야 하니 openssl connect라고 검색을 해봤습니다.
openssl s_client -connect localhsot:30001
위 명령어를 입력하니 엄청난 양의 출력 결과가 보였습니다.
이번 문제와는 상관 없지만 출력 내용이 어떤 내용인지에 대해서 잠깐 설명하겠습니다.
#Certificate chain
첫 줄은 subject(공개키를 인증서에서 인증하는 엔티티)를 출력하고 두 번째 줄에서는 발급자(서명자) 정보를 출력합니다.
#Server certificate
서버인증서가 엄청난 양으로 출력됩니다.
## TLS Connect Info
TLS 연결에 관한 정보들이 출력됩니다.
자세한 건 아래 링크를 건 블로그를 참고해주세요
Extended master secret: yes
---
BfMYroe26WYalil77FoDi9qh59eK5xNr
Correct!
cluFn7wTiGryunymYOu4RcffSxQluehd
bandit15에 비밀번호를 입력하니 다음 레벨의 비밀번호가 출력됩니다!