thumbnail
cd ..
root@blog:~/posts/ 202209

기본 리눅스 명령어 복습 with OverTheWire (1 - 10)

#KOR#Kali
2022.09.24.

0. 들어가며

레벨 1부터 10까지는 아주 기초적인 리눅스의 명령어들을 다루는 관계로 한번에 포스팅하기로 했다.

Level 0

단순히 OverTheWire가 제공하는 SSH에 bandit0이라는 계정 (비밀번호도 bandit0)으로 2220번 포트에 로그인하기만 하면 성공이다.

ssh bandit0@bandit.labs.overthewire.org -p 2220

접속 완료시 화면 :

Lvl1

Level 1

bandit0 계정에서 단순히 cat으로 readme파일을 읽기만 하면 된다.

cat ./readme

Level 2

특수문자의 경우에도 크게 다르지 않다.

cat ./-

Level 3

이 친구는 왜인지 cat 사용이 되지 않는다. 한번 확인해보자.

Lvl3

ls -al명령어로 확인해 보면, 읽기가 아닌 쓰기권한만 주어졌음을 알 수 있다. 그럼 그냥 nano나 vi로 열어주자

nano "spaces in the filename"

아, 저렇게 공백문자가 들어가 있는 파일의 경우에는 쌍따옴표로 묶어줘야 한다.

Level 4

ls를 해봐도 파일이 보이지 않는다. -a옵션을 추가하면 숨김파일도 볼 수 있다.

ls -a

Level 5

Human-Readable, 즉, 사람이 읽을 수 있는 (이상한 기호투성이가 아닌) 파일을 찾으란 말이다. 사실 이건 find로 하려면 조금 많이 복잡하다. 따라서 생각을 조금 바꿔서

file ./-file*

명령어를 사용해 file 내용물들을 체크해보자.

Lvl5

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!
[ comments ]