Bandit

Bandit 워게임으로 리눅스 공부하기 - Bandit Level 0 → Level 1

waterclean101 2023. 8. 23. 08:57

Level Goal

The password for the next level is stored in a file called readme located in the home directory. Use this password to log into bandit1 using SSH. Whenever you find a password for a level, use SSH (on port 2220) to log into that level and continue the game.

Commands you may need to solve this level

ls , cd , cat , file , du , find

→ 다음 단계로 가기 위한 비밀번호는 홈 디렉터리에 있는 readme라는 파일에 저장되어 있으니 이 비밀번호를 이용해 bandit1 계정에 로그인 하라는 문제.

 

풀이

1. find 명령어 활용하여 readme 위치 알아내기

bandit0@bandit:/home/bandit10$ find / -name "readme"
  • 위 명령을 치게 되면 접근 권한이 없는(Permission denied) 파일까지 전부 뜨게 된다. 아래 find 명령어의 사용법을 보자
  • 참고 - Permission denied 파일 앞에 **find:**가 붙는 이유
  • find 명령어의 출력에서 "Permission denied"와 같은 오류 메시지가 발생할 때, 이 메시지는 find 프로세스로부터 나온 표준 오류 스트림(stderr)에 속한다. find 명령어는 문제가 발생했을 때 사용자에게 어떤 프로세스에서 오류가 발생했는지 알려주기 위해 그 프로세스의 이름을 메시지 앞에 붙여서 출력한다. 이는 여러 프로세스의 출력이 섞여 있을 때도 어느 프로세스에서 오류가 발생했는지 쉽게 알 수 있게 하기 위함이다. 따라서 "Permission denied" 오류 메시지 앞에 **find:**가 붙는 것은, 이 오류가 find 명령어에서 발생했다는 것을 알려준다.

find는 Linux 및 UNIX 시스템에서 파일 및 디렉터리를 검색하는 명령어다.

find [검색 위치] [옵션]
  1. 기본 사용법:/home 디렉터리에서 "myfile.txt"라는 이름을 가진 파일을 검색.
  2. find /home -name myfile.txt
  3. 대소문자 구분 없이 검색:
  4. find /home -iname myfile.txt
  5. 특정 타입의 파일 검색:/home 디렉터리에서 .txt 확장자를 가진 모든 파일을 검색. 여기서 -type f는 일반 파일을 의미. 디렉터리를 검색하려면 -type d를 사용.
  6. find /home -type f -name "*.txt"
  7. 특정 크기 이상의 파일 검색:/home 디렉터리에서 2MB 초과하는 모든 파일을 검색
  8. find /home -type f -size +2M
  9. 특정 시간 안에 수정된 파일 검색:/home 디렉터리에서 최근 7일 안에 수정된 모든 파일을 검색
  10. find /home -type f -mtime -7
  11. 특정 권한을 가진 파일 검색:/home 디렉터리에서 644(읽기/쓰기, 읽기, 읽기) 권한을 가진 모든 파일을 검색
  12. find /home -type f -perm 644
  13. 결과를 통해 명령 실행:/home 디렉터리에서 .bak 확장자를 가진 파일을 모두 찾아 삭제합니다.
  14. find /home -name "*.bak" -exec rm {} \\\\;
  15. 오류 메시지 무시:전체 시스템에서 "readme.txt"(혹은 “readme”)를 검색하되, "Permission denied"와 같은 오류 메시지는 출력하지 않음.
  16. find / -name readme.txt 2>/dev/null find / -name "readme" 2>/dev/null
  • 위의 명령어 옵션에서 8번 오류 메시지 무시라는 옵션을 사용하여 다시 한번 파일을 찾아본다.
bandit0@bandit:/home/bandit10$ find / -name "readme" 2>/dev/null

위와 같이 딱 두개의 파일이 나온 것을 볼 수 있다. 이제 저 위치로 이동하여 readme를 읽어보자.

 

2. readme 읽기

bandit0@bandit:~$ cat /home/bandit0/readme

cat 명령어로 한번에 readme 파일을 읽어서 비밀번호를 얻어냈다. 이제 bandit1 계정에 로그인하자.

 

3. bandit1 계정에 로그인

다른 username으로 접속하기 위해 먼저 기존 원격접속을 해제하고 재접속한다.

bandit0@bandit:~$ exit
logout
Connection to bandit.labs.overthewire.org closed.
                                                                                                                                                                                                                                           
┌──(root㉿kali)-[/home/kali]
└─# ssh bandit1@bandit.labs.overthewire.org -p 2220

_                     _ _ _   
                        | |__   __ _ _ __   __| (_) |_ 
                        | '_ \\ / _` | '_ \\ / _` | | __|
                        | |_) | (_| | | | | (_| | | |_ 
                        |_.__/ \\__,_|_| |_|\\__,_|_|\\__|
                                                       

                      This is an OverTheWire game server. 
            More information on <http://www.overthewire.org/wargames>

bandit1@bandit.labs.overthewire.org's password: 

      ,----..            ,----,          .---.
     /   /   \\         ,/   .`|         /. ./|
    /   .     :      ,`   .'  :     .--'.  ' ;
   .   /   ;.  \\   ;    ;     /    /__./ \\ : |
  .   ;   /  ` ; .'___,/    ,' .--'.  '   \\' .
  ;   |  ; \\ ; | |    :     | /___/ \\ |    ' '
  |   :  | ; | ' ;    |.';  ; ;   \\  \\;      :
  .   |  ' ' ' : `----'  |  |  \\   ;  `      |
  '   ;  \\; /  |     '   :  ;   .   \\    .\\  ;
   \\   \\  ',  /      |   |  '    \\   \\   ' \\ |
    ;   :    /       '   :  |     :   '  |--"
     \\   \\ .'        ;   |.'       \\   \\ ;
  www. `---` ver     '---' he       '---" ire.org

Welcome to OverTheWire!

패스워드까지 입력하면 접속 성공