728x90
이번엔 현재 디렉토리가 아닌 서버 어딘가에서 위의 3가지 조건을 만족시키는 파일 속 비밀번호를 찾는 것이 문제이다.
find / -user bandit7 -group bandit6 -size 33c
현재 디렉토리가 아닌 루트 디렉토리에서 찾아야 하므로 /를 붙인다.
-user 옵션을 통해 user bandit7이 소유한 파일을 찾는다.
-group 옵션을 통해 group bandit6가 소유한 파일을 찾는다.
-size 옵션을 통해 33바이트 파일을 찾는다.
그럼 아래와 같은 결과가 나온다.
permission이 denied되지 않은 파일은 /var/lib/dpkg/info/bandit7.password밖에 없다.
cat /var/lib/dpkg/info/bandit7.password
다음 레벨로 가기 위한 password를 확인할 수 있다.
permission denied된 결과값을 제외하고 더 깔끔하게 결과를 확인할 수는 없을까?
file descriptor란 프로세스가 특정 파일을 다룰 때 사용하는 추상적인 값으로, 아래와 같이 3가지 값이 있다.
- 0 : standart input (표준 입력)
- 1 : standart output (표준 출력)
- 2 : standard error (표준 에러)
permission denied는 표준 에러이다. 이 표준 에러들을 출력하지 않고 다른 곳으로 redirection, 즉 재지정하면 된다.
표준 에러 재지정 명령어 2>를 사용하여 표준 에러들을 리눅스 쓰레기통 /dev/null로 보내보자.
find / -user bandit7 -group bandit6 -size 33c 2>/dev/null
그러면 깔끔하게 표준 에러가 아닌 값 /var/lib/dpkg/info/bandit7.password만 출력된다.
728x90