Wargame/bandit

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

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

[문제]

서버 어딘가에 password 파일이 존재한다고 하는데, 그냥은 찾을 수 없겠죠?

문제의 조건을 보니 

user는 bandit7, group은 bandit6 이면서 크기가 33바이트인 파일을 찾아야 하네요!

 

바로 시작해보도록 하겠습니다-!


[풀이]

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

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

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

 

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

root 는 /로 표시한답니다.

 

그럼 두가지의 방법을 생각해볼 수 있을 것 같아요!

 

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

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

 

첫 번째 방법부터 진행해보겠습니다!

이렇게 find / -user bandit7 -group bandit6 -size 33c 명령을 입력하니 에러 메세지만 나오는데요..

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

그 중에서도 user 와 group 을 찾을 수 있는 옵션도 존재한답니다~

 

단순하게 -user -group 이렇게 사용하면 되는것이죠~

 

그런데 말입니다..

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

 

그렇지만 우리는 모든 조건을 명령에 넣었기 때문에 출력 결과 중에 존재하는 것은 분명할텐데 말이죠!

 

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

 

에러를 제외하는 방법,,!

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

 

2>/dev/null 만 추가해주면

이렇게 에러가 없는 결과 값만 한 번에 구할 수 있답니다~

 

*2> /dev/null

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

따라서 Permission denied 로 에러가 발생한 파일들의 목록은 사라지고 패스워드 파일만 출력되는 것이죠!

 

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

 

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

 

두 번째는 / 폴더로 이동하여 검색해보는 것입니다!

이동 과정은 스크린샷을 찍지 못했지만, / 폴더로 이동한거 보이시나요?

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

이후는 앞의 과정과 동일하답니다 ㅎㅎ

 


[핵심]

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

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

> 파이프도 리다이렉션에 포함됨

 

리다이렉션에 대한 자세한 내용은 아래 링크 참고.

victorydntmd.tistory.com/305

 

[CentOS] 리다이렉션 ( redirection )

리다이렉션 리다이렉션이란 표준 입력이나 표준 출력을 꼭 키보드나 화면으로 하는 것이 아니라 방향을 바꿔서( == 리다이렉션 ) 파일로 입력을 받거나 파일로 출력하도록 변경하는 것을 말합

victorydntmd.tistory.com

/dev/null 파일

> 항상 비어있음

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

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


[출처]

ko.wikipedia.org/wiki/%EB%A6%AC%EB%8B%A4%EC%9D%B4%EB%A0%89%EC%85%98

 

리다이렉션 - 위키백과, 우리 모두의 백과사전

위키백과, 우리 모두의 백과사전. 입력, 출력, 오류를 위한 표준 스트림. 리다이렉션(redirection)은 컴퓨팅에서 표준 스트림을 사용자 지정 위치로 우회할 수 있는 다양한 유닉스 셸을 포함한 대부

ko.wikipedia.org

minsone.github.io/shell/shell-dev-null

 

[Shell]/dev/null로 출력 버리기

/dev/null 파일은 항상 비어있으며, /dev/null에 전송된 데이터는 버려집니다. 따라서 특정 명령어를 실행 후, 출력이 필요없는 경우는 /dev/null에 출력을 지정하는 것이 좋습니다. $ echo HelloWorld HelloWorl

minsone.github.io


 

LIST

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

Bandit Level 8 -> Level 9  (0) 2021.04.04
[리눅스] Bandit Level 7 -> Level 8  (0) 2021.04.04
[리눅스] Bandit Level 5 -> Level 6  (0) 2021.04.04
[리눅스] Bandit Level 4 -> Level 5  (0) 2021.04.03
[리눅스] Bandit Level 3 -> Level 4  (0) 2021.04.03