0. 들어가며
레벨 1부터 10까지는 아주 기초적인 리눅스의 명령어들을 다루는 관계로 한번에 포스팅하기로 했다.
Level 0
단순히 OverTheWire가 제공하는 SSH에 bandit0이라는 계정 (비밀번호도 bandit0)으로 2220번 포트에 로그인하기만 하면 성공이다.
ssh bandit0@bandit.labs.overthewire.org -p 2220
접속 완료시 화면 :

Level 1
bandit0 계정에서 단순히 cat으로 readme파일을 읽기만 하면 된다.
cat ./readme
Level 2
특수문자의 경우에도 크게 다르지 않다.
cat ./-
Level 3
이 친구는 왜인지 cat 사용이 되지 않는다. 한번 확인해보자.

ls -al명령어로 확인해 보면, 읽기가 아닌 쓰기권한만 주어졌음을 알 수 있다. 그럼 그냥 nano나 vi로 열어주자
nano "spaces in the filename"
아, 저렇게 공백문자가 들어가 있는 파일의 경우에는 쌍따옴표로 묶어줘야 한다.
Level 4
ls를 해봐도 파일이 보이지 않는다. -a옵션을 추가하면 숨김파일도 볼 수 있다.
ls -a
Level 5
Human-Readable, 즉, 사람이 읽을 수 있는 (이상한 기호투성이가 아닌) 파일을 찾으란 말이다. 사실 이건 find로 하려면 조금 많이 복잡하다. 따라서 생각을 조금 바꿔서
file ./-file*
명령어를 사용해 file 내용물들을 체크해보자.

ASCII가 당연히 사람이 읽을 수 있는 문자일것이다.
Level 6
1033바이트의 크기에, 실행 불가능한 파일을 찾으란다.
find / -size 1033c ! -executable
간단하다.
Level 7
data.txt 안에 (data.txt가 엄청 길다) millionth라는 단어 바로 다음에 암호가 있다고 한다. 이건 편집기 사용에 대해 물어보는 것 같다.
//파일 경로로 이동 후
nano data
//편집기에서
ctrl + w (검색) => millionth
입력하면 간단히 끝난다.
Level 8
반복되지 않는 문장이 곧 암호라고 한다. 이건 sort를 이용해야겠다.
sort data.txt | uniq -u
사실 이건 sort 모르면 못 푼다.. 역시 리눅스 공부 = 50프로는 명령어 공부…
Level 9
이것 또한 조금 까다롭다. data.txt 내부에 사람이 읽을 수 있는, 중간중간 ”=“기호가 나오는 문장을 찾으란다. 하란대로 하면 어려운데..
strings data.txt | grep =
``
그냥 이 내부에서 "="나오는 문장 다 확인해보니까 패스워드 쉽게 나오더라..
### Level 10
오늘의 마지막 문제. base64로 암호화되어있다니 복호화해주면 된다.
cat data.txt | base64 —decode
after : '2022-09-22'
---
### Sources
- bandit.labs.overthewire.org
- Me!