ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • bandit 5 -> 6
    wargame/bandit 2024. 4. 30. 05:20

    https://overthewire.org/wargames/bandit/bandit6.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 a file somewhere under the inhere directory and has all of the following properties: human-readable 10

    overthewire.org

     

    Level Goal

    The password for the next level is stored in a file somewhere under the inhere directory and has all of the following properties:

    • human-readable
    • 1033 bytes in size
    • not executable

    Commands you may need to solve this level

    ls , cd , cat , file , du , find

     

     

    이번 패스워드 파일 또한 inhere 디렉토리 어딘가 있다.

    그리고 그 파일의 특성이 주어졌는데, 사람이 읽을 수 있는 문자이며, 1033byte의 사이즈를 갖고 있고, 실행이 불가능하다는 것이다.

     

    human-readable 인지는 file 명령어를 실행하거나 직접 cat 명령어로 출력해서 알아볼 수 있다. 또한 ls -l명령어를 통해서 파일의 크기와 실행권한 여부를 확인할 수 있다.

     

    ls -l을 실행했을 때 가장 왼쪽에 10자리의 문자열이 출력되는데 이것은 파일의 종류와 권한등을 알려준다.

     

    만약 -rwxrwxrwx이라고 되어 있다고 가정하자. 일단 맨 왼쪽에 d가 되어있으면 directory이지만 아무것도 없기 때문에 일반 file이다. 만약 l이라고 되어 있으면 링크파일이지만 지금은 그냥 일반 파일이다. 그리고 남은 9개의 자리를 3개씩 나누면 3,3,3이 된다. 그 각각이 소유자 유저권한, 그룹권한, 그외의 권한이라고 할 수 있다. 그리고 그 한개마다 rwx로 나눠지는데, r이 설정되어있으면 읽을 수 있고, w이 설정되어 있으면 쓸 수 있고(write), x가 설정되어 있으면 실행or접근 할 수 있다.

     

    만약 -rwx------ 라고 되어 있으면 이 파일의 소유자만 읽고 쓰고 실행할 수 있다. 만약 -rw-rw-rw라고 되어 있으면 소유자, 그룹원, 그외 이용자 모두가 읽고 쓰는 것이 가능하지만 실행을 되지 않는다.

     

    따라서 문제의 조건에서는 실행이 불가능하므로, x가 아무곳에도 설정되어 있지 않아야 하며 사이즈가 1033byte여야 한다.

     

    하지만 inhere 디렉토리 안에 20개의 하위 디렉토리가 있고, 각각의 디렉토리 안에 아주 많은 파일들이 있어서 이것들을 하나하나 다 들어가서 ls -l 명령어를 실행시키기에는 굉장히 귀찮다.

     

    그렇기 때문에 ls 명령어에는 -R 옵션이 존재한다. man ls 명령어를 통해 옵션을 알아보면 

    -R, --recursive
                  list subdirectories recursively

    하위 디렉토리를 재귀적으로 검색해서 명령어를 실행한다고 한다.

     

    그래서 inhere 디렉토리에서 ls -alR 명령어를 실행하면 아주 많은 결과들이 나온다. 거기에서 실행이 불가능하고 사이즈가 1033byte인 파일을 찾으면 된다.

     

    그러나 이것도 출력 결과가 너무 많으면 번거롭기 때문에 파이프와 less라는 도구를 사용하면 굉장히 쉽다.

    파이프는 '|' 이며 grep은 명령어이다. 파이프는 왼쪽의 출력을 오른쪽의 입력으로 연결해주는 도구이다. less는 cat으로 하면 한꺼번에 출력이 되어 불편하고 검색도 되지 않기 때문에 사용하는 출력 명령어이다. 출력해서 j,k 로 위아래 이동이 가능하며 / 와 키워드를 입력한 다음 엔터를 눌러 검색도 가능하다.

     

    그래서 나는 ls -alR | less 명령어를 실행한 다음 1033을 검색해서 파일을 찾아본다.

     

    검색 결과 1033byte이며 실행권한이 부여되지 않은 파일을 찾았다. 이 파일은 숨김처리되어있기때문에 ls 명령어에서 -a 옵션을 추가해야 출력이 된다. 디렉토리는 maybehere07에 있으며 파일 이름은 .file2이다.  less 명령어에서 나오기 위해서는 q를 입력하면 된다.

     

     

    입수한 정보를 토대로 파일을 출력하면 비밀번호를 획득할 수 있다.

    'wargame > bandit' 카테고리의 다른 글

    bandit 4 -> 5  (0) 2024.04.30
    bandit 3 -> 4  (0) 2024.04.30
    bandit 2 -> 3  (0) 2024.04.30
    bandit 1 -> 2  (0) 2024.04.30
    bandit 0 -> 1  (0) 2024.04.30
Designed by Tistory.