Post

Bandit Level 6 → Level 7

문제

https://overthewire.org/wargames/bandit/bandit7.html

목표

다음 조건을 따르는 서버 어딘가에 저장되어 있는 패스워드를 찾는다.

  • bandit7 유저가 소유한다.
  • bandit6 그룹이 소유한다.
  • 크기가 33 바이트다.

풀이

조건에 해당하는 유저와 그룹이 소유하는 파일을 찾으려면 find 명령어의 -user, -group 옵션을 사용해야 한다.

find -user bandit7 -group bandit6 -size 33c 명령으로 조건에 해당하는 파일을 찾을 수 있다.

1
2
3
4
5
6
7
8
bandit6@bandit:~$ find / -user bandit7 -group bandit6 -size 33c
find: ‘/etc/ssl/private’: Permission denied
find: ‘/etc/polkit-1/localauthority’: Permission denied
.
.
.
find: ‘/run/systemd/inaccessible/dir’: Permission denied
find: ‘/run/lock/lvm’: Permission denied

수많은 권한 거부 메시지들이 출력된다.

이 중 권한이 승인된 파일만 찾아야 하므로 권한 거부 메시지들은 안 보이게 해야 한다.


명령어 뒤에 2>/dev/null를 붙여 권한 거부 메시지들이 안 보이게 해준다.

2>/dev/null은 표준 에러 메시지를 /dev/null로 보낸다는 의미이다.

1
2
bandit6@bandit:~$ find / -user bandit7 -group bandit6 -size 33c 2>/dev/null
/var/lib/dpkg/info/bandit7.password


/var/lib/dpkg/info/bandit7.password 파일의 내용을 확인한다.

1
2
bandit6@bandit:~$ cat /var/lib/dpkg/info/bandit7.password
z7WtoNQU2XfjmMtWA8u5rN4vzqu4v99S


Password : z7WtoNQU2XfjmMtWA8u5rN4vzqu4v99S

배운 것

  • find 명령어의 -user, -group 옵션을 사용해 파일을 찾을 수 있다.
  • 2>/dev/null로 에러 메시지를 안 보이게 할 수 있다.
This post is licensed under CC BY 4.0 by the author.