Pwnable/Overthewire13 OverTheWire Bandit Level 11→ Level 12 비밀번호는 data.txt 파일에 모든 소문자(az) 및 대문자(AZ)는 13 개의 위치로 회전한다. Rot13 암호화방식이 사용된다. Level 11에서 비밀번호 얻기 Level 11로 로그인 후(Level 11 로그인 하는 법 보러가기), ls 명령어를 통해 존재하는 파일을 확인한다. data.txt파일을 확인할 수 있다. cat 명령어로 파일을 읽어보니, 위 사진과 같은 문자열이 나타난다. 문제에서 알려준 Rot13은 시저암호(=카이사르 암호)의 일종으로 알파벳을 13글자씩 미뤄서 나타내는 암호화 방식이다. 나는 온라인툴을 사용해 문제를 풀었지만, tr 명령어를 사용해 풀 수 도 있다. tr은 두개의 문자집합을 입력받아 대응되는 문자로 변환하는 명령어다. 예를들어, 소문자를 대문자로 바꾸고 싶다면 .. 2020. 5. 21. OverTheWire Bandit Level 10 → Level 11 비밀번호는 data.txt 파일에 base64로 인코드 되어있다. Level 10에서 비밀번호 얻기 Level 10로 로그인 후(Level 10 로그인 하는 법 보러가기), ls 명령어를 통해 존재하는 파일을 확인한다. data.txt 파일이 확인되고, cat 명령으로 읽어보니 다음과 같은 암호문이 나타난다. base64 인코딩된 문자열이라고 알려주었기 때문에, base64로 디코딩을 해줘야한다. 하지만 그냥 base64 data.txt를 입력하면 키가 나타나지 않는다. base64만 입력하면 디코딩이 아닌, 인코딩을 해주기 때문이다. base64의 옵션을 확인해보면 -d가 디코딩을 해주는 옵션이라는 것을 알 수 있다. 비밀번호 얻고 로그아웃 Level 11 로그인 터미널에 ssh bandit11@ban.. 2020. 5. 21. OverTheWire Bandit Level 9 → Level 10 비밀번호는 data.txt 파일에 몇 개의 '='문자로 시작하여 사람이 읽을 수있는 몇 개의 문자열 중 하나로 저장된다. Level 9에서 비밀번호 얻기 Level 9로 로그인 후(Level 9 로그인 하는 법 보러가기), ls 명령어를 통해 존재하는 파일을 확인한다. data.txt 파일이 확인되고, cat 명령으로 파일을 읽으니 위 사진과 같이 읽을 수 없는 내용이 나타난다. 문제에서 '=' 문자로 시작한다고 알려주었으니, grep 명령을 이용하여 비밀번호를 찾는다. 그러나 바이너리 파일이라 비밀번호가 나타나지 않는다. 이때, 사용할 수 있는 명령어가 strings 이다. strings 명령어는 파일에서 출력 가능한 문자열을 보여준다. cat 대신, strings 명령을 사용해서 출력 가능한 문자열을.. 2020. 5. 21. OverTheWire Bandit Level 8 → Level 9 비밀번호는 data.txt 파일에 한 번만 나타나는 유일한 텍스트이다. Level 8에서 비밀번호 얻기 Level 8로 로그인 후(Level 8 로그인 하는 법 보러가기), ls 명령어를 통해 존재하는 파일을 확인한다. data.txt파일의 존재를 확인했다. 확인된 data.txt 파일을 열어보니 위 사진과 같이 알 수 없는 문자들이 나열된 것을 볼 수 있다. 이 문자들을 쉽게 보기 위해 sort 명령어를 사용한다. sort명령은 파일 내용을 정렬하는 명령이다. sort data.txt를 입력한 결과 다음 사진처럼 나타난다. 정렬된 문자열은 확인했지만, 한 번만 나타나는 문자열을 확인하기엔 쉽지않다. 그렇기 때문에 uniq 명령어로 중복된 문자열을 관리해서 보기 쉽게 만들어줘야한다. uniq 명령어의 옵.. 2020. 5. 21. OverTheWire Bandit Level 7 → Level 8 비밀번호는 millionth 단어 옆의 data.txt 파일에 저장돼있다. Level 7에서 비밀번호 얻기 Level 7로 로그인 후(Level 7 로그인 하는 법 보러가기), ls 명령어를 통해 존재하는 파일을 확인한다. data.txt 파일이 존재한다. 사실 Level7은 말장난 문제다. cat 명령어로 파일을 읽어봤을 때, 매우 많은 문자가 나타나서 정말 백만문자 뒤에 있는 게 비밀번호인가? 하고 착각하기도 했지만, 사실 이 문제는 grep이라는 명령어를 이용해 풀 수 있는 문제다. grep명령이란, 파일에서 특정한 패턴/문자열을 찾아주는 명령이다. data.txt파일을 읽어주고, millionth라는 문자열을 찾아 뒤에 나올 비밀번호를 알아낸다. cat data.txt | grep milliont.. 2020. 5. 21. OverTheWire Bandit Level 6 → Level 7 비밀번호는 서버의 어딘가에 저장되어있고, 다음과 같은 속성이 있다. - 유저: bandit7 - 그룹: bandit6 - 크기: 33bytes Level 6에서 비밀번호 얻기 Level 6로 로그인 후(Level 6 로그인 하는 법 보러가기), ls 명령어를 통해 존재하는 파일을 확인한다. 아무것도 확인되지 않는다. 문제에서 서버 어딘가에 비밀번호가 있다고 알려주었으니, find명령어를 사용해줘야한다는 것을 알 수 있다. 추가로 주어진 조건을 활용해보면, find명령어와 함께 아래의 옵션을 사용할 수 있다. -user -group -size user에는 bandit7이 들어가고, group에는 bandit6, size는 33c를 써준다. 여기서 bytes가 c라는 문자를 써줘야하는 것이 기억이 안 났다면.. 2020. 5. 20. OverTheWire Bandit Level 5 → Level 6 비밀번호는 inhere 디렉토리의 어쩌구.. 각자 해석하자 Level 5에서 비밀번호 얻기 Level 5로 로그인 후(Level 5 로그인 하는 법 보러가기), ls 명령어를 통해 존재하는 파일을 확인한다. 마찬가지로 cd명령어로 inhere 디렉토리 이동 후, ls로 확인하는데.. 너무 많다. 사실 얘도 노가다 하면 안 될 건 없는데, 좀 더 쉬운 방법은 find 명령어를 사용하는 거다. find 명령어 사용법은 find -help를 입력하면 나온다. 많고..많은... 명령어 중... 문제에 이런 내용이 있었다. 아마도 비밀번호가 들어있는 파일의 크기를 알려준 거겠지.. 그래서 find -size 옵션을 써줄 생각이다. 근데 그냥 1033만 써주면 안 나온다. 왜냐면 1033이 바이트인지, 기가바이트인.. 2020. 5. 9. OverTheWire Bandit Level 4 → Level 5 비밀번호는 inhere 디렉토리에 저장되어있고,, 나머지는 각자 해석하자. Level 4에서 비밀번호 얻기 Level 4로 로그인 후(Level 4 로그인 하는 법 보러가기), ls 명령어를 통해 존재하는 파일을 확인한다. inhere 디렉토리로 이동 후, 다시 ls 명령어 입력하면 사진과 같이 10개의 파일이 확인된다. 노가다로 하나씩 확인해보면 되는데, Level 2 때처럼 파일명 앞에 '-'기호가 붙어있으면, 그게 파일명이라고 인식하지 않는다. (Level 2 보러가기) 2020. 5. 9. OverTheWire Bandit Level 3 → Level 4 비밀번호는 inhere 디렉토리의 숨겨진 파일에 저장되어있다. Level 3에서 비밀번호 얻기 Level 3로 로그인 후(Level 3 로그인 하는 법 보러가기), ls 명령어를 통해 존재하는 파일을 확인한다. inhere이라는 디렉토리가 확인된다. cd명령어를 통해 inhere 디렉토리로 이동 후, 다시 ls를 한다. 역시나 숨겨진 파일이기 때문에, 나타나지 않는다. 이때 사용할 명령어가 '-a'다. -a 는 숨겨져있는 모든 파일 확인할 수 있는 명령어기 때문에, ls -a 명령어를 입력해서 존재하는 모든 파일을 확인한다. 그러면, '.hidden'이라는 숨겨진 파일이 확인된다. 마찬가지로 비밀번호 얻고 로그아웃 Level 4 로그인 터미널에 ssh bandit4@bandit.labs.overthewi.. 2020. 5. 9. OverTheWire Bandit Level 2 → Level 3 비밀번호는 home 디렉토리의 'spaces in this filename' 이라는 이름을 가진 파일에 저장되어있다. Level 2에서 비밀번호 얻기 Level 2로 로그인 후(Level 2 로그인 하는 법 보러가기), ls 명령어를 통해 존재하는 파일을 확인한다. 'spaces in this filename' 라고 저장되어있는 파일이 존재하는 것을 알 수 있따. 리눅스에서는 띄어쓰기마다 파일명을 구분하기 때문에, cat spaces in this filename 이라고 쓰면, 'spaces in this filename'이 아닌 'spaces' 'in' 'this' 'filename'과 같이 띄어쓰기를 기준으로 다 다른 파일이라고 구분한다. 터미널에서 긴 문자열을 쉽게 작성하게 도와주는 단축키?가 존재.. 2020. 5. 9. OverTheWire Bandit Level 1 → Level 2 비밀번호는 home 디렉토리에 있는 ' - ' 라는 파일명에 저장되어있다. Level 1에서 비밀번호 찾기 Level 0과 마찬가지로 ls 명령어를 통해 존재하는 파일을 확인한다. - 라는 이름의 파일이 존재하는 것을 확인했는데, 일반적인 형식으로 cat 명령어를 사용하여 파일을 읽으려고 하면 읽히지 않는다. 이유는 리눅스에서 ' - ' 기호가 옵션이기 때문에, - 를 파일명으로 받아들이지 않는다. 따라서 일반적인 cat - 이 아닌, cat ./- 로 입력해서 현재위치의 - 파일을 열라고 지시해야 한다. 그럼 위와 같이 문자가 나타나는데, 이것이 Level 1에서 Level 2로 갈 수 있는 암호이다. 알아낸 암호를 기록한 후, exit를 입력해 로그인 되어있는 주소에서 빠져나와, 다음 레벨로 로그인할.. 2020. 5. 9. OverTheWire Bandit Level 0 → Level 1 내용을 해석해보면... Level 0과 대부분 동일하고, 비밀번호는 Level 0에서 찾은 내용을 입력하면 된다. ssh 명령어를 사용할 때, 사용자명은 bandit1을 입력해주면 된다. 그리고 이 레벨을 해결하기 위해 저것들(ls, cd, ...)이 필요할 것이다. 라고 알려준다. Level 0 포스팅 보러가기 Level 1 로그인하기 칼리 접속 후, 터미널에 ssh bandit1@bandit.labs.overthewire.org -p 2220 를 입력한다. (리눅스에서 복사, 붙여넣기는 Ctrl+Shift+C,V) Level0에서 푼 내용을 통해, 비밀번호가 boJ9jbbUNNfktd78OOpsqOltutMc3MY1이라는 것을 알 수 있다. 이때 비밀번호는 입력해도 보이지 않는다. 그럼 위 사진과 같.. 2020. 5. 9. 이전 1 2 다음