OverTheWire - Bandit
강의목차: Level 15 → Level 16(s_client)
Bandit 웹페이지
https://overthewire.org/wargames/bandit/
1. Bandit Level 15 → 16
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…
Commands you may need to solve this level
ssh, telnet, nc, openssl, s_client, nmap
Helpful Reading Material
다음 레벨 패스워드는, 현재 레벨의 패스워드를 localhost의 30001번 포트(SSL)로 전송하면 획득할 수 있다.
Level 15 접속
$ ssh -p 2220 bandit15@bandit.labs.overthewire.org
Level 15 패스워드: jN2kgmIXJ6fShzhT2avhotn4Zcka6tnt
SSL 전송은 일반적으로 암호화 통신이라고 한다.
HTTP(80) - HTTPS(443) : 웹 통신을 하는 80포트와 웹 암호화 통신을 하는 443 포트
nc
TCP 또는 UDP 프로토콜을 사용하는 네트워크 환경에서 데이터를 읽고 쓰는 간단한 프로그램.
일반적으로 상대 서버의 포트가 열렸는지 확인하거나, 직접 서버가 되어 원격 서버에서(클라이언트) 접속이 가능한지 확인하는 용도로 사용을 한다.
사용법
nc [OPTIONS] [HOST] [PORT]
옵션
-u : udp 연결
-p : 소스 포트 지정
-l : LISTEN 모드로 포트 띄움
-z : 단순 포트 스캔만 진행
-v : 더 많은 정보 확인
-n : 호스트 네임과 포트를 숫자로만 입력받는다.
-w 1 옵션 사용 이유
-w 1 옵션은 최대 1초까지 대기하는 것을 의미한다.
서버에서 즉각 답변을 해주는 경우도 있지만, 보안 등의 이유로 답변을 주지 않아 만약 서버 측에서 답변이 없다면 장시간 대기하게 되므로 스캐닝 시간이 지나치게 장기화 될 수 있다. 그러므로 -w 1 옵션을 사용한다.
$ ls -al
$ nc -zvnw 1 127.0.0.1 30001
→ nc 명령어 사용해서 127.0.0.1(localhost, 자기 자신) 의 30001번 포트 열려있는지 확인
nc 명령어로 패스워드를 전송해도 플래그를 얻을 수 없다.
nc 명령어는 평문 통신이므로 암호화 통신이 아니다.
$ nc 127.0.0.1 30001
$ jN2kgmIXJ6fShzhT2avhotn4Zcka6tnt
아무 반응 없이 튕겨져 나간다.
openssl s_client 를 사용해서 SSL 통신을 한다.
s_client 란?
SSL/TLS client Program
openssl 명령으로 운영중인 웹서버의 SSL인증서 정보를 살펴볼 수 있다.
s_client는 SSL/TLS 를 사용하는 원격 호스트에 접속하기 위한 일반적인 SSL/TLS client를 구현하는 명령어이다.
SSL에 대해 매우 유용한 진단도구이다.
사용방법
openssl s_client -connect 도메인:포트
openssl s_client -connect 아이피:포트
openssl s_client -connect 도메인:포트 -tls1_2
openssl s_client -connect 도메인:포트 -tls1_1
openssl s_client -connect 도메인:포트 -tls1
예시
openssl s_client -connect tezy.net:443
openssl s_client -connect 127.0.0.1:443
bandit 에서 사용
$ openssl s_client -connect 127.0.0.1:30001
SSL 통신의 암복호화 인증, TLS 버전 및 정보가 나오며, 맨 밑줄 read R BLOCK 밑에 프롬프트가 깜빡인다.
현재 레벨의 패스워드를 입력한다.
$ jN2kgmIXJ6fShzhT2avhotn4Zcka6tnt
현재 레벨의 패스워드를 입력하면 Correct! 라는 문구 아래에 플래그를 확인할 수 있다.
Level 16 패스워드: JQttfApK4SeyHwDlI9SXGR50qclOAil1
$ exit ( ssh 접속 상태에서 홈으로 나가기 )
Level 16 접속 시도
$ ssh -p 2220 bandit16@bandit.labs.overthewire.org
Level 16 패스워드: JQttfApK4SeyHwDlI9SXGR50qclOAil1
$ whoami
$ id
입력하여 현재 로그인한 계정 확인
취미로 해킹1 강의 : https://www.inflearn.com/course/linux-3
'보안 > Bandit 워게임' 카테고리의 다른 글
OverTheWire - Bandit : Level 17 → Level 18 (0) | 2023.04.14 |
---|---|
OverTheWire - Bandit : Level 16 → Level 17 (0) | 2023.04.13 |
OverTheWire - Bandit : Level 14 → Level 15 (0) | 2023.04.11 |
OverTheWire - Bandit : Level 13 → Level 14 (0) | 2023.04.10 |
OverTheWire - Bandit : Level 12 → Level 13 (1) | 2023.04.08 |