워게임/Bandit (Linux Wargame)

[OverTheWire:Bandit] Level 10 → Level 11

crypsec 2023. 11. 19. 19:38
반응형

2023.11.18 - [워게임/Bandit (Linux 초보자들을 위한 워게임)] - [OverTheWire:Bandit] Level 9 → Level 10

Bandit Level 10

컴퓨터의 사용자 이름( 계정명 ): bandit10
호스트(접속해야 할 주소):bandit.labs.overthewire.org
포트 번호: 2220
비밀번호: G7w8LIi6J3kTb8A7j9LgrywtEUlyyp6s (2023.11 기준)

 

(중복) bandit10 계정으로 Linux 서버에 접속하겠습니다. 그동안 문제를 풀기 위해 여러 디렉터리를 이동해 본다던가 아니면 계정만 바뀌는 걸 보고 눈치채셨을 수도 있는데 항상 접속하는 서버는 같습니다. 다만 계정만 달라져서 로그인을 하고 있습니다. 이는 리눅스가 여러 사용자가 로그인해서 사용하는 것을 전제로 만들어졌기 때문입니다. 이 내용은 앞으로 계속 넣도록 하겠습니다.

PS> ssh bandit10@bandit.labs.overthewire.org -p 2220

문제 및 해설

Problem

 

다음 단계의 비밀번호는 base64로 인코딩된 데이터가 포함된 data.txt 파일에 저장됩니다.

먼저 base64 인코딩이 뭔지 알아보겠습니다.

Base64

Base64 인코딩은 이진 데이터를 텍스트 형식으로 변환하는 인코딩 방법 중 하나입니다. 이진 데이터는 0과 1의 비트로 이루어진 컴퓨터가 이해할 수 있는 형태의 데이터이며, 텍스트는 문자로 이루어진 데이터입니다. Base64 인코딩은 주로 이진 데이터를 텍스트로 변환하여 텍스트 기반 프로토콜에서 이진 데이터를 전송하거나 저장할 때 사용됩니다.

Base64는 64개의 문자로 이루어진 문자 집합을 사용합니다. 이 문자 집합에는 대문자 A-Z, 소문자 a-z, 숫자 0-9, 그리고 '+'와 '/' 이렇게 총 64개의 문자가 포함되어 있습니다. Base64 인코딩은 3바이트의 이진 데이터를 4개의 문자로 변환합니다. 이 변환은 데이터를 6비트씩 잘라서 각각을 Base64 문자로 매핑하는 방식으로 이루어집니다. 인코딩의 반대 과정을 디코딩이라고 합니다.

 

아래는 Ubuntu에서 Base64로 인코딩하는 명령어 예시입니다. 

$ vim data.txt
# txt파일에 Hello, Base64 Encoding! 라는 내용을 입력한다.

$ base64 data.txt
# 결과: SGVsbG8sIEJhc2U2NCBFbmNvZGluZyEK


Base64는 주로 이메일 첨부 파일, URL 매개 변수 전송, 데이터의 저장 및 전송 등 다양한 상황에서 사용됩니다. 예를 들어, 이진 이미지나 문서를 텍스트 형태로 변환하여 안정적으로 전송하거나 저장할 수 있습니다. Base64는 데이터를 더 길게 만들 수는 있지만, 이를 텍스트로 처리할 수 있는 여러 환경에서 유용하게 활용됩니다.

 

참고로 인코딩은 암호화랑 비슷해보이지만비슷해 보이지만 다른 녀석입니다. 마찬가지로 디코딩도 복호화와 비슷해 보이지만 다른 녀석입니다.

 

늘 그렇듯이 data.txt 파일을 cat 명령어로 읽어보겠습니다.

 

$ cat data.txt

cat 결과

어디서부터가 비밀번호인지 모르겠습니다.

 

이를 되돌리기 위해 디코딩을 해야하는데 그 방법은 왠지 base64 명령어와 연관이 있을 것 같습니다. 아래와 같이 입력해 줍니다.

$ base64 --help

base64 help

-d 옵션을 사용하여 decode를 할 수 있다고 합니다. 이제 문제 해결법은 다음과 같습니다.

$ base64 -d data.txt

password

 

Level 11 접속정보

컴퓨터의 사용자 이름( 계정명 ): bandit11
호스트(접속해야 할 주소):bandit.labs.overthewire.org
포트 번호: 2220
비밀번호: 6zPeziLdR2RKNdNYFNb6nVCKzphlXHBM(2023.11 기준)

 

bandit Level 11로 가기 위한 비밀번호:  6zPeziLdR2RKNdNYFNb6nVCKzphlXHBM

 

마지막으로 exit 명령어를 입력하여 서버에서 bandit10 계정을 로그아웃 하겠습니다.

반응형