OverTheWire: Bandit - Level 6 → Level 7

full_accel·2021년 1월 3일
0

Over The Wire: Bandit

목록 보기
9/9
post-thumbnail

Bandit Level 6 → Level 7 - 문제 원문


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

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
Commands you may need to solve this level
ls, cd, cat, file, du, find, grep

해석


  • 패스워드는 서버 어딘가에 있다.
  • 패스워드는 아래의 특징을 가지고 있다.
    • 사용자 bandit7의 소유이다.
    • 그룹 bandit6의 소유이다.
    • 33byte의 크기이다.

공략


이제 슬슬 난이도가 올라간다.

상황파악

bandit6@bandit:~$ ls
bandit6@bandit:~$ ls -al						[1]
total 20
drwxr-xr-x  2 root root 4096 May  7 20:14 .
drwxr-xr-x 41 root root 4096 May  7 20:14 ..
-rw-r--r--  1 root root  220 May 15  2017 .bash_logout
-rw-r--r--  1 root root 3526 May 15  2017 .bashrc
-rw-r--r--  1 root root  675 May 15  2017 .profile
bandit6@bandit:~$ cd /
bandit6@bandit:/$ ls							[2]
bin   cgroup2  etc   initrd.img      lib    lib64   lost+found  mnt  proc        root  sbin   srv  tmp  var      vmlinuz.old
boot  dev      home  initrd.img.old  lib32  libx32  media       opt  README.txt  run   share  sys  usr  vmlinuz
  • [1] 홈 디렉토리엔 아무것도 없다.
  • [2] /(루트 디렉토리)엔 뭐가 많다.

해결 방법 - find 명령어에 옵션을 사용

bandit6@bandit:/$ find / -size 33c -user bandit7 -group  bandit6	[1]
find: ‘/root’: Permission denied					[2]
find: ‘/home/bandit28-git’: Permission denied
find: ‘/home/bandit30-git’: Permission denied
find: ‘/home/bandit5/inhere’: Permission denied
find: ‘/home/bandit27-git’: Permission denied
find: ‘/home/bandit29-git’: Permission denied
find: ‘/home/bandit31-git’: Permission denied
...
  • 서버 어딘가에 있다고 했으니 최상위 경로인 / 에서 find 명령어에 위의 조건들을 다 옵션으로 걸어서 찾아보자.
  • [1] find / -size 33c -user bandit7 -group bandit6
    • 크기 33byte
    • 사용자 bandit7이 소유하며
    • 그룹 bandit6이 소유한 파일을 찾는다.
  • [2] 그런데 여전히 뭐가 많이 나온다. 하나하나 cat으로 찍어 보자니 왠지 뭔가 지는 것 같고 찝찝하다.

해결 방법 고도화 - find 명령 결과에 대해서 에러 제거하여 출력

...
find: ‘/home/bandit5/inhere’: Permission denied
find: ‘/home/bandit27-git’: Permission denied
find: ‘/home/bandit29-git’: Permission denied
find: ‘/home/bandit31-git’: Permission denied
...
bandit6@bandit:/$ find / -size 33c -user bandit7 -group  bandit6 2> /dev/null	[1]
/var/lib/dpkg/info/bandit7.password						[2]
bandit6@bandit:/$ cat /var/lib/dpkg/info/bandit7.password			[3]
H??????????????????????????????
  • 가만히 살펴보니 permission denied 된 것들이 많다. 얘네들을 걸러보자.
  • [1] find / -size 33c -user bandit7 -group bandit6 2> /dev/null
    • 2> /dev/null 로 에러난 결과를 모두 거른다.
  • [2] /var/lib/dpkg/info/bandit7.password 라는 생긴 것부터 패스워드스러운 파일을 찾았다.
  • [3] cat으로 열어보니 패스워드 같은 문자열이 보인다.

다음 단계로 넘어가자
ssh -p 2220 bandit7@bandit.labs.overthewire.org

TMI


리다이렉션

  • 리눅스는 > 를 이용하여 출력의 방향을 지정해 줄 수 있다.
  • 위에서는 출력결과의 표준 에러(2)에 대해서 그 출력의 방향을 dev/null로 설정하였다.
  • dev/null은 쓰레기통(내지는 블랙홀?) 비슷한 개념으로, 여기로 날리면 그냥 사라진다.
profile
스스로 배운 것이 오래 간다.

0개의 댓글