해킹&보안

[반딧 워게임 : OverTheWire] Level 15 -> 16 (리눅스/해킹/보안 공부)

yamaeking 2025. 3. 16. 19:25

자 오늘은 Level 15 -> 16을 해보도록 하겠다. 

(Login ID :  bandit15  /  Password : 8xCjnmgoKbGLhHFAZlGE5Tmu4M2tKJQo

 

1. 문제 내용

https://overthewire.org/wargames/bandit/bandit16.html

 

OverTheWire: Level Goal

We're hackers, and we are good-looking. We are the 1%. <!-- Please read and accept the Rules! --> 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/TLS encryptio

overthewire.org

 

 -> SSL/TLS 암호화를 이용하여 현재 레벨의 암호를 localhost 300001 로 보내야 다음 레벨로 가는 비밀번호를 얻을 수 있다고 한다.

 

2. 문제 풀이

PASSWORD=$(cat /etc/bandit_pass/bandit15)

우선 현재 레벨의 비밀번호를  $PASSWORD 변수에 저장한다. (추후에 보내야 하니.)

 

 

nmap -p 30001 localhost

localhost 의 30001 포트도 열려 있는 상태인 것도 확인하였다. 그러면 ssl 암호화를 이용하여 호스트와 연결을 시도하여 보도록 하자.

 

openssl s_client -connect localhost:30001

localhost의 30001번 포트로 ssl 통신 연결을 하겠다라고 보면 되겠다. 저렇게 하면 어마무시한 글들을 쌸라쌸라하고 나올텐데, 마지막에 보면 어떤 입력을 대기하고 있는 상태를 확인할 수 있을 것이다.

 

저기에 아까 PASSWORD 저장한 것을 echo 로 불러와서 복붙하여 입력값으로 줘보도록 하자.

드래그 -> 마우스 우클릭하여 복사

 

ssl connect 이후에 read R BLOCK 밑에 전송할 값으로 복사해둔 password 입력 및 ENTER

 

비밀번호 GET!

 

 

※ 아싸리 아래 명령어를 통해 password 값을 바로 입력값으로 보내 보려고 했는데, 이건 잘 작동을 안 하는 것 같다. 그래서 그냥 복붙 하였는데 다른 방법이 있는지는 확실히 잘 모르겠다.

 $PASSWORD | openssl s_client -connect localhost:30001

 

 

3. 요약

☞ openssl 을 통하여 상대방 호스트와 암호화 된 데이터를 주고 받을 수 있다. (그 외에 다양한 기능도 있음.)