AnbyMata의 해킹 노트

[Bandit] Level 9 → Level 10 본문

OverTheWire/Bandit

[Bandit] Level 9 → Level 10

AnbyMata 2026. 2. 13. 22:00

OverTheWire - Bandit : Level 9 → Level 10. Write-up!

출처: https://overthewire.org/wargames/bandit/bandit10.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 is stored in the file data.txt in one of the few human-readable strings, preceded by several ‘=’ characters. Co

overthewire.org

시작을 위해 "ssh -p 2220 bandit9@bandit.labs.overthewire.org" ssh 로그인합니다!

( 비밀번호: Level 8 → Level 9 에서 얻은 비밀번호 )

 

[1]  문제 요약

다음 레벨의 비밀번호는 data.txt 파일 안에 있습니다.

data.txt 파일 내에서 사람이 읽을 수 있는 (human-readable) 문자열 (string) 중 하나에 들어있습니다.

그 문자열은 여러 개의 ` = ` 문자 뒤에 붙어있습니다.

 

 


[2]  사용되는 명령어들

- man : 리눅스 명령어의 메뉴얼 (사용법, 옵션, 설명)

- grep : 파일 또는 입력 내용에서 특정 문자열(패턴)을 필터링

- sort : 입력된 내용을 줄 단위로 정렬

- uniq : 연속된 중복 행을 제거 or 중복 여부를 분석

- strings : binary 파일에서 읽을 수 있는 문자열만 추출 (human-readable 문자열만)

- base64 : 데이터를 Base64 형식으로 인코딩 또는 디코딩

- tr : 입력 문자의 치환, 삭제, 대소문자 변환 등을 수행

- tar : 여러 파일/디렉토리를 하나의 아카이브로 묶거나 해제

- gzip : 파일을 gzip 형식으로 압축 또는 해제

- bzip2 : 파일을 bzip2 형식으로 압축 또는 해제

- xxd : 파일을 16진수(hex) 덤프 형태로 출력하거나 복원

 

 


[3]  문제 접근 과정

1)  디렉토리와 파일 목록 파악

 - `ls -a`로 숨겨진 디렉토리/파일 목록까지 확인합니다.

`ls -a` → `ls`

 = 홈 디렉토리 안에 data.txt 파일이 있음을 확인했습니다.

 

 

 

2)  cat 명령어로 data.txt 파일 열어보기

`cat data.txt`

 = 글자들이 다 깨져버리는 모습입니다.

 → strings 명령어를 사용하여 읽을 수 있는 문자들만 추출해야될 것 같습니다.

 

 

 

3)  strings 명령어로 읽을 수 있는 문자열들추출하기

`strings data.txt`

 = 읽을 수 있는 문자열들만 추출된 모습입니다.

 

 

 

4)  파일 내용 분석해보기

 = "====== password" 같은 부분처럼 "="이 들어간 문자열의 구분이 쉬운 편이고, 파일 내용도 생각보다 길지 않아서 이 상태에서 충분히 비밀번호를 찾을 수 있을 것 같기도 합니다.

 → 하지만, 굉장히 깔끔하게 "="이 들어간 문자열들만 필터링하여 추출하면 더 쉽게 다음 레벨의 비밀번호를 찾을 수 있을 것입니다.

 

 

 

5)  더 쉽게 비밀번호를 찾아낼 방법들

 - 여러 개의 "="이 들어간 줄들이라 했으니 "==" 로 필터링하는 것이 더 효과적일 것 같습니다.

 - 1. grep 명령어를 사용하여 "=="이 들어간 문자열들만을 추출하기

 - 2. vi 편집기를 사용하여 "=="이 들어간 문자열들만 확인하기

 

 

 


[4]  문제 풀이 및 분석

1)  find 명령어로 data.txt 파일이 위치한 경로 찾기

 - find 명령어에서 홈 디렉토리 ( . )를 탐색 경로로 지정했습니다.

 - "-name data.txt" 옵션을 통해 파일 이름이 data.txt인 파일을 찾습니다.

`find . -name data.txt` → `ls`

 = data.txt 파일이 위치한 경로는 "./data.txt"입니다.

 = 즉, 홈 디렉토리 ( . ) 안에 바로 존재합니다.

 

 

 

2)  cat 명령어로 data.txt 파일의 내용 확인

 - data.txt 파일의 내용을 한 번 확인해봅니다.

`cat data.txt`

 = 아까 확인했듯이 문자들이 다 깨지고, 일일이 찾아서 비밀번호를 찾기엔 힘들어보입니다.

 

 

 

[4-1] grep 명령어를 사용한 문자열 필터링

3)  strings 명령어에 grep data.txt 파일에서 "=="이 포함된 줄만 출력하기

`strings data.txt ❘ grep ==`

 = data.txt 파일 내에 있던 비밀번호 획득!

 =  내가 필터링한 문자가 빨간색으로 출력되면서 "==" 옆에 있던 비밀번호가 같이 출력되었습니다.

 

 

 

[4-2] vi 편집기를 활용하여 비밀번호 찾기

3)  data.txt 파일을 vi 편집기로 열기

`vi data.txt`

 

 

 

4)  vi 편집기 내에서 "==" 문자열 검색

 - vi 편집기에서 "/==" 를 입력하여 "==" 문자열이 있는 위치로 화면이 이동합니다.

 - ':q' 를 입력하면 vi 편집기에서 나올 수 있습니다.

`/==`

 

 

 

5)  키보드에서 `n`키를 눌러가며 다음 "==" 문자열로 이동하기

 - vi 편집기에서 `n`키를 누르면 다음 검색 결과로 이동합니다.

 - vi 편집기에서 `N`키를 누르면 이전 검색 결과로 이동합니다.

 - vi 편집기에서 검색을 할 때, 찾는 문자열을 입력하고 Enter 를 눌러야 `n`키를 눌렀을 때, 다음 검색 결과로 이동합니다.

 = 계속 누르다보면, "=="이 있는 다음 검색 결과로 이동합니다.

 

 

 

5)  다음 레벨 비밀번호 찾아내기

 - `n`키를 계속 눌러가며 비밀번호를 찾아냅니다.

 = data.txt 파일 내에 있던 비밀번호 획득!

 

bandit 비밀번호는 반드시 따로 복사해서 저장해두기! (메모장 등으로)

 

 


[Bandit] Level 9 → Level 10. Clear.

 

[Bandit] Level 10 → Level 11. Continue...

https://anbymata.tistory.com/54

 

[Bandit] Level 10 → Level 11

OverTheWire - Bandit : Level 10 → Level 11. Write-up!출처: https://overthewire.org/wargames/bandit/bandit11.html Level Goal The password for the next level is stored in the file data.txt, which contains base64 encoded data Commands you may need to solv

anbymata.tistory.com

 

'OverTheWire > Bandit' 카테고리의 다른 글

[Bandit] Level 11 → Level 12  (0) 2026.03.14
[Bandit] Level 10 → Level 11  (0) 2026.02.17
[Bandit] Level 8 → Level 9  (0) 2026.02.10
[Bandit] Level 7 → Level 8  (0) 2026.02.09
[Bandit] Level 6 → Level 7  (1) 2026.02.06