🌱초급

[Bandit] Level 6 → Level 7

Bandit Level 6 풀이 과정을 설명합니다.

3분 읽기

문제

Level Goal

The password for the next level is stored somewhere on the server and has all of the following properties:

  • owned by user bandit7

  • owned by group bandit6

  • 33 bytes in size

  • 서버 어딘가에 password 파일이 존재한다고 하는데, 그냥은 찾을 수 없습니다.

  • 문제의 조건을 보니 user는 bandit7, group은 bandit6 이면서 크기가 33바이트인 파일을 찾아야 합니다.


해결

image.png
  • 이전과 달리 홈디렉토리에서 힌트를 얻을 수 없어보이네요.

  • 그렇다면 홈디렉토리에서 검색하는 것이 아니라 최상위 폴더라고 하죠?

    • root 로 이동하여 검색을 해봐야할 것 같네요.

  • 지난번에 홈디렉토리는 ~로 표시한다는 것을 알려드렸는데요.

    • root 는 /로 표시합니다.

 

그럼 두가지의 방법을 생각해볼 수 있을 것 같습니다.

1. 홈디렉토리에서 /폴더로부터 검색하도록 명령어를 입력한다.

2. root 폴더로 이동하여 검색한다.

 

1. 홈디렉토리에서 /폴더부터 검색
image.png
  • 이렇게 find / -user bandit7 -group bandit6 -size 33c 명령을 입력하니 에러 메세지만 나오는데요.

  • 우선 옵션에 대해 말씀드리면, find의 옵션이 매우 많다고 지난 레벨에서 말씀드렸던 것 기억하시나요?

  • 그 중에서도 user 와 group 을 찾을 수 있는 옵션도 존재합니다.

    • 단순하게 -user -group 이렇게 사용하면 됩니다.

image.png
  • 그런데 에러 메세지만 출력되는 것 같은데 정확하게 구한 것이 맞을까요? 

  • 아마 저기 수많은 에러와 함께 섞여있지 않을까라는 생각을 하게 됩니다.

    • 그렇다면 에러를 제외하고 출력할 수 있는 방법은 없을까요?

    • 다행히 리눅스에는 리다이렉션을 이용해 구할 수 있습니다.

image.png
  • 2>/dev/null만 추가해주면 이렇게 에러가 없는 결과 값만 한 번에 구할 수 있습니다.

 2> /dev/null이란?

  • 2 (표준 에러, 에러가 났을 때) > (우회해라) /dev/null (/dev/null 로, /dev/null은 쓰레기통과 유사한 개념으로 이곳으로 보내진 데이터는 사라진다.)

  • 따라서 Permission denied 로 에러가 발생한 파일들의 목록은 사라지고 패스워드 파일만 출력됩니다.

  • > (리다이렉션)에 대한 설명은 [핵심]을 참고해주세요.

  • 어쨌든, /var/lib/dpkg/info/bandit7.password 속에 password가 있을 것 같으니 파일을 읽어보면 될 것 같아요.

image.png

2. root 폴더로 이동하여 검색
image.png
  • 이동 과정은 스크린샷을 찍지 못했지만, / 폴더로 이동한거 보이시나요?

  • 여기서 find 명령을 쓸 때는 굳이 / 이것을 쓰지 않아도 되겠죠?

    • 이후는 앞의 과정과 동일합니다.


핵심

리다이렉션(Redirection)(=방향 지정, 방향 변경)

  • 표준 스트림을 사용자 지정 위치로 우회할 수 있는 명령

image.png

/dev/null 파일
  • 항상 비어있음

  • 이곳에 전송된 데이터는 버려짐 → 특정 명령어 실행 후, 출력이 필요 없는 경우 /dev/null에 출력 지정하면 좋음

  • (but) 실행 중 에러 발생 시, 출력됨

image.png


댓글

이 글이 마음에 드셨다면 반응이나 댓글을 남겨주세요!

댓글을 작성하려면 로그인하세요

로딩 중...
공유
sikk

sikk

Author

보안을 공부하는 개발자입니다. Web2/Web3 보안과 시스템 해킹에 관심이 많습니다.

뉴스레터 구독하기

새로운 포스트가 올라오면 이메일로 알려드려요!