리눅스 워게임 33

OverTheWire_Level 11 -> Level 12

Lv 12 > 다음 단계로 넘어가려면 data.txt 파일을 확인해야 합니다. lowercase(소문자, a-z)와 uppercase(대문자, A-Z)가 13 positions rotated 되었다고 쓰여있습니다. 이번 문제는 암호학에 관련된 문제로 보입니다. 암호학에 대해서는 해당 블로그 "현대 암호학 기초" 카테고리에서 간단히 정리해두었습니다. 아마도 시저 암호 ( 카이사르 암호; Caesar ) 키 13으로 암호화한 암호문같습니다. 더보기 https://www.cryptoclub.org/#vCiphers CryptoClub www.cryptoclub.org 위 사이트(더보기)에서 Caser 선택 후 암호문과 키를 입력합니다. 이후 Decrypt => Quick Answer를 눌러..

리눅스 워게임 2023.01.14

OverTheWire_Level 9 -> Level 10

Lv 10 > 다음 단계로 넘어가려면 data.txt 파일에서 여러 개의 " = " 문자 뒤의 사람이 읽을 수 있는 문자열을 확인해야 합니다. cat 명령어와 grep 명령어를 조합하여 사용했더니 바이너리 파일 어쩌구 하면서 결과를 알려주지 않았습니다. 따라서 문자열만 추출할 수 있도록 strings 명령어를 사용하겠습니다. 한 눈에 봐도 비밀번호같은 문자열이 보이긴 하지만, 뭔가 이상해서 문제를 다시 확인했습니다. 여러 개의 " = " 문자임을 다시 확인하고, 아래와 같이 명령을 사용하니 한 눈에 들어왔습니다. the password is = G7w...로 되어있었습니다.

리눅스 워게임 2023.01.12

OverTheWire_Level 8 -> Level 9

Lv 9 > 다음 단계로 넘어가려면 " data.txt " 파일에서 유일하게 중복되지 않은 문자열을 찾아야 합니다. sort 명령으로 확인해보니, 내용이 꽤 많습니다. uniq 명령어와 조합하여 사용하겠습니다. uniq 명령어의 -c 옵션은 중복된 문자열을 제거하고, 중복 횟수를 알려주는 옵션입니다. grep 명령어로 1을 찾으면 찾기가 수월할 것 같습니다. 그러나 아래의 결과처럼 1이 들어간 모든 문자열을 출력해버리기 때문에, 이전과는 조금 다르게 사용하겠습니다. grep 명령에 따옴표를 씌워주고, 해당 문자의 앞뒤로 공백을 넣어주면 해당 문자가 독립적으로 분리되어있는 문자열의 행만을 출력해줍니다.

리눅스 워게임 2023.01.11

OverTheWire_Level 7 -> Level 8

Lv 8 > 다음 단계로 넘어가려면 data.txt 파일의 " millionth "를 찾아내야 합니다. vi나 vim으로 특정 단어를 검색할 수 있으니, vi로 먼저 data.txt 파일을 열겠습니다. ( vi 편집기는 [Linux] 리눅스 vi 편집기 사용법 포스팅에서 다룬 내용입니다. ) vi (또는 vim)의 실행모드에서 /[찾을 문자]를 입력하면 바로 찾아줍니다. 물론 이전 포스팅에서 사용했던 방법으로 cat 명령과 grep 명령을 조합하여 더 간단히 찾을 수도 있습니다.

리눅스 워게임 2023.01.10

OverTheWire_Level 6 -> Level 7

Lv 7 > 다음 단계로 넘어가려면 아래의 특징들을 지닌 파일을 찾아내야 합니다. owned by user bandit7 owned by group bandit6 33 bytes in size 디렉터리를 따로 명시해주지 않았으니, find명령어로 루트( root, / ) 디렉터리부터 한 번에 찾아야 할 것 같습니다. 아래처럼 루트 디렉터리 ( / ) 로 이동 후 find 명령으로 특징에 부합하는 파일을 찾아내야 합니다. 그러나 오류 메시지가 많은 것을 확인할 수 있습니다. 오류 메시지는 리다이렉션 ( > 또는 < ) 으로 안보이게 설정할 수 있습니다. 입출력 리다이렉션은 [Linux] 리눅스의 특수문자 종류와 사용법 포스팅에서 다룬 내용입니다. 오류 메시지들을 아예 버리려면, 오류 (2..

리눅스 워게임 2023.01.09

OverTheWire_Level 5 -> Level 6

Lv 6 > 다음 단계로 넘어가려면 " inhere " 디렉터리 안에 숨겨진 파일을 찾아야 합니다. 숨겨진 파일은 아래와 같은 특징을 가집니다. human-readable 1033 bytes in size not executable 파일의 존재유무부터 확인하겠습니다. 그러나 이번엔 디렉터리가 꽤나 많습니다. 하나씩 다 열어볼 수는 없으니, ls 명령어의 -la 옵션을 사용합니다. 검색 범위를 ./*로 지정하면 모든 디렉터리 안의 파일들을 한 번에 확인할 수 있습니다. ( ls -laR 명령도 같은 기능을 수행합니다. ) 1033 bytes 크기의 파일이 하나밖에 없는 것을 확인할 수 있습니다. 따라서 find 명령어로 1033 bytes 파일을 찾아 위치를 확인합니다.

리눅스 워게임 2023.01.08

OverTheWire_Level 4 -> Level 5

Lv 5 > 다음 단계로 넘어가려면 " inhere " 디렉터리에서 읽을 수 있는 유일한 파일을 찾아야 합니다. 파일의 개수가 많지는 않다보니, 하나씩 열어서 확인할 수 있지만 조금 더 편하게 vim을 사용하겠습니다. vim의 -p 옵션을 사용하면 여러 파일들을 한 번에 열 수 있습니다. :q로 읽을 수 없는 파일들을 종료하다보면 " -file07 " 파일에서 읽을 수 있는 내용을 확인할 수 있습니다.

리눅스 워게임 2023.01.07

OverTheWire_Level 2 -> Level 3

Lv3 > 다음 단계로 넘어가려면 홈 디렉터리의 " spaces in this filename " 파일을 확인해야 합니다. 말 그대로, 파일이름에 공백이 존재합니다. 공백이 있기 때문에 파일 이름을 따옴표로 묶어주셔야 합니다. (큰 따옴표, 작은 따옴표 상관 없습니다.) 물론, 현재 디렉터리에 파일이 하나밖에 없다는 점을 이용하여 아래와 같은 방법으로 파일을 여는 편이 가장 편합니다. ( 리눅스의 특수문자에 대해서는 [Linux] 리눅스의 특수문자 종류와 사용법 포스팅에서 다뤘던 내용입니다. )

리눅스 워게임 2023.01.05