본문 바로가기

Bandit

Bandit Level 15 -> Level 16 (openssl?)

해당 게시글은 bandit wargame에 대한 스포일러(방향성/힌트/정답)를 제공할 수 있습니다. 

 

 

 

bandit level 15에서 비밀번호를 얻기 위해

30001번 포트로 SSL/TLS 암호화를 이용하여 현재 레벨의 비밀번호를 전송해야합니다. 

 

SSL 암호화를 하지 않으면 현재 레벨의 비밀번호를 입력받아도 다음 레벨의 비밀번호를 출력하지 않는다

ncat --ssl localhost 30001

nc는 프로토콜 규격에 어긋나는 데이터를 전송해서 서버에서는 연결을 무시하거나 차단하므로, 

ncat와 -ssl 옵션을 통해 SSL 암호화 조건을 충족시키면 됩니다. 

 

ncat은 기본적으로 서버가 먼저 연결을 끊거나 클라이언트 측에서 입력을 완전히 종료했다는 명시적 신호를 보내기 전까지는 소켓을 열어둔 채 대기하므로 비밀번호를 출력받은 후 Ctrl + D를 눌러 연결을 끊으면 됩니다. 

 

ncat --ssl localhost 30001 < /etc/bandit_pass/bandit15

이전 단계처럼 쉘 리다이렉션을 통해 1줄로 해결할 수도 있습니다. 

쉘 리다이렉션의 EOF 신호가 ncat의 입력을 중단시키므로 ncat은 Half-close 상태로 대기하다가 서버로부터 마지막 응답을 받고 프로세스를 종료합니다. 

 

openssl s_client -connect localhost:30001 -quiet < /etc/bandit_pass/bandit15

openssl 명령어를 이용하여 ncat과 같은 기능을 하도록 할 수도 있습니다. 

SSL/TLS 프로토콜의 Handshake 과정에서 교환되는 상세 제어 정보 및 암호화 Context가 출력되지 않도록 -quiet 옵션을 붙이고

ncat처럼 쉘 리다이렉션을 이용하여 비밀번호 파일의 내용을 서버에 입력시키면

비밀번호가 출력됩니다.  

 

 

'Bandit' 카테고리의 다른 글

Bandit Level 17 -> Level 18  (0) 2026.01.12
Bandit Level 16 -> Level 17  (0) 2026.01.12
Bandit Level 14 -> Level 15  (0) 2026.01.12
Bandit Level 13 -> Level 14  (0) 2026.01.12
Bandit Level 12 -> Level 13  (0) 2026.01.12