Wargame/bandit

[리눅스] Bandit Level 5 -> Level 6

핏디 2021. 4. 4. 00:00
SMALL

[문제]

문제를 보니 이번에도 inhere 디렉토리 속에 password 가 존재하는군요!

그런데 몇 가지 조건이 생겼습니다.

 

인간이 읽을 수 있고, 1033 바이트이면서, 실행 불가능한 파일을 찾아야 한다.

 

무엇을 의미할지 문제를 통해 살펴보겠습니다.


[풀이]

ls -al 명령어를 통해 inhere 디렉토리를 확인할 수 있고, 바로 inhere 디렉토리로 이동해보겠습니다.

 

지난 레벨과 달리 이번에는 inhere 디렉토리에 다수의 디렉토리들이 존재하네요!

 

여기서 다시 한 번 문제의 조건을 상기시켜 볼까요?

 

인간이 읽을 수 있고, 1033 바이트이면서, 실행 불가능한 파일을 찾아야 한다.

 

'검색'이 필요하다는 생각이 드는데요..

 

마침 리눅스에는 검색 기능을 지원하는 명령이 있죠!

 

바로 find 와 grep 입니다!

 

명령어에 대한 설명은 [핵심]을 참고해주세요/

 

 

1. find 명령

find의 다양한 옵션 중에서도 파일의 크기 단위로 검색할 수 있는 -size 옵션이 있는데요!

 

*주의해야하는 것은 1033바이트인 파일을 찾고 싶을 때

그냥 1033을 적는 것이 아니라 1033c라고 적어줘야 한답니다.

 

다행스럽게도 1033바이트인 파일이 하나가 존재하네요 ㅎㅎ

 

./maybehere07/.file2 파일을 읽었더니 password가 존재하는 것을 알 수 있었습니다.

 

해당 파일을 읽을 수 있었던 이유는 bandit5 계정이 갖는 권한 중 읽기 권한이 있기 때문입니다 : )

 

find의 옵션을 다르게도 사용할 수 있어요!

 

각각의 옵션에 대한 내용은 man 페이지에 있는 것을 가져왔습니다! 접은 글을 확인해주세요 : )

 

이 외에도 find 옵션이 매우 많기 때문에 관심있으시다면 man 페이지를 참고해주세요!

더보기

-executable 옵션

Matches files which are executable and directories which are  searchable  (in  a  file  name  resolution        sense).   This  takes  into account access control lists and other permissions artefacts which the -perm test ignores.  This test makes use of the access(2) system call, and so can be  fooled  by  NFS  servers which  do UID mapping (or root-squashing), since many systems implement access(2) in the client's kernel and so cannot make use of the UID mapping information held on the server.  Because this  test  is  based only  on  the result of the access(2) system call, there is no guarantee that a file for which this test succeeds can actually be executed.

 

       -readable 옵션

Matches files which are readable. This takes into account access control lists  and  other  permissions
artefacts which the -perm test ignores.  This test makes use of the access(2) system call, and so can be fooled by NFS servers which do UID mapping (or root-squashing), since many systems  implement  access(2) in the client's kernel and so cannot make use of the UID mapping information held on the server.

 

 

2. du 명령어 사용

du 명령어는 디스크의 사용량에 따라 나열하는 명령어인데요!

파일 명 앞에 숫자들이 바로 해당 파일이 디스크를 얼마나 사용하는지 나타낸 것이랍니다.

 

즉, 디스크 사용량은 파일의 크기라고 볼 수 있겠네요!

그렇다면 감이 오시나요?

 

문제에서 파일의 크기가 1033 바이트라고 했으니, 이 중에서 1033 사이즈인 파일을 찾으면 될 것 같지 않나요?

 

바로 찾아보겠습니다!

 

du -a -b ./* | find -size 1033c 명령어를 사용하니 1033 바이트를 가진 파일을 찾을 수 있었습니다.

(그냥 find -size 1033c로 검색해도 나오지만, du 명령어를  활용하기 위해 사용해보았습니다!)

 

여기서도 파이프의 사용을 살펴보면,

 

du -a -b ./* 에 대한 결과 중에서 사이즈가 1033 인 파일을 찾게 되는 거죠!

 

du 명령어의 옵션은 [핵심]에서 자세히 설명하고 있으니 참고해주세요~

 

 

3. file 명령어 사용

find -size 1033c만 해도 바로 찾을 수 있긴 하지만!

file 명령어를 활용하면서 찾을 수 있는 방법을 소개해드리도록 하겠습니다.

 

1번째와 2번째의 차이점은 grep text죠?

명령을 각각 해석해보겠습니다.

 

우선 file maybehere*/* 은 현재 inhere 디렉토리 내부에 존재하는 maybehere로 시작하는 모든 디렉토리의 아래에 있는 모든 것에 대해 file 정보를 알려달라는 명령인데요.

 

다시 말하자면, 

주황색 박스로 표시된 파일들에 대한 file 명령어를 적용시키고자 사용한 명령이라고 할 수 있겠습니다!

 

grep text 는 text라는 글자가 있는지 살펴보는 것이니, file 명령어에 대해 text형식인 파일을 찾아주겠군요!

 

여기까지만 진행하고 출력된 결과를 한번 살펴볼까요??

 

출력 결과의 일부만 가져왔는데도 너무 길어 파악하기 어렵네요..

 

grep 명령어까지 써보면,,

 

약간 정리되긴 하였지만, text 파일이 대부분이라 찾기 어렵네요..

 

그래서 find 명령까지 적용을 해야한답니다ㅠ

find 명령을 사용할 때는 grep 명령어가 있던 없던 모두 찾을 수 있기 때문에 상관없어요!

 

이번에도 ~~~~~~~~~~~~~~

성! 공!

다음 level 에서 만나요~~


[핵심]

find 명령어

find 명령어 옵션

> find 명령어로 파일의 크기를 사용해 파일을 검색할 경우 -size 옵션을 사용한다.

> -size 는 기본적으로 512B의 크기를 사용하게 되어 있는데, 파일 크기 값 뒤에 'c' 또는 'k'를 붙여 크기 값을 지정할 수 있다.

b:block, c:bytes, w:2bytes, k:kbytes, M:mbytes, G:gbytes

> 파일 크기를 비교 시, 크기 값 앞에 +(초과) , -(미만) 기호로 표현 가능

 

예) -size +1024c -size -2048c

: 1024 바이트보다 크고 2048바이트보다 작은 파일 검색

 

상세한 내용은 출처 참고.

 

[+추가] du 명령어

> 디렉토리 별 디스크 사용량을 알려주는 명령어

> 하위 디렉토리부터 거꾸로 용량 표시

> 기본단위 : 1024 byte (= 1KB)

> du [option] [file 이름] 형태로 사용

 

 

 


[출처]

 

recipes4dev.tistory.com/156

 

리눅스 find 명령어 사용법. (Linux find command) - 리눅스 파일 검색.

1. find 명령어. find는 리눅스에서 파일 및 디렉토리를 검색할 때 사용하는 명령입니다. 이름 그대로 리눅스에서 접근할 수 있는 파일 시스템에서, 파일 및 디렉토리를 "찾는(find)" 것이죠. 그런데

recipes4dev.tistory.com

jhnyang.tistory.com/301

 

[리눅스/유닉스] du 명령어, 디렉터리별 디스크 사용량 확인하기. 퍼센테이지 비율로 확인하기 , l

[리눅스/유닉스 완전정복 목차] 안녕하세요 오랜만에 리눅스/유닉스 카테고리 포스팅으로 돌아온 주인장 양햄찌입니다. 오늘은 파일시스템 용량에 가장 많이 쓰이는 df와 더불어, du명령어를 확

jhnyang.tistory.com


 

 

LIST