owned by user bandit7
owned by group bandit6
33 bytes in size
이러한 조건을 가지고 있다고 하니, 바로 find로 찾으면 될 거 같네요.
$ find / -user bandit7 -group bandit6 -size 33c
find: ‘/var/log’: Permission denied
find: ‘/var/crash’: Permission denied
find: ‘/var/spool/rsyslog’: Permission denied
find: ‘/var/spool/bandit24’: Permission denied
...
뭐가 많이 뜨니깐, 에러들 리디렉션 시켜버립시다.
$ find / -user bandit7 -group bandit6 -size 33c 2>/dev/null'
/var/lib/dpkg/info/bandit7.password
$ cat /var/lib/dpkg/info/bandit7.password
$PASSWD
$ ssh -p 2220 bandit7@bandit.labs.overthewire.org
Passwd : $PASSWD
data.txt 안에 있는 데이터 중, millionth
옆에 비밀번호가 있다고 하네요. 대충 cat 결과를 grep로 넘기면 되겠네요.
$ cat data.txt | grep millionth
millionth $PASSWD
$ ssh -p 2220 bandit8@bandit.labs.overthewire.org
Passwd : $PASSWD
data.txt중에서 단 한번만 나오는게 정답이라고 하네요. 커맨드 역할을 알아봅시다.
sort : stdin을 정렬해서 stdout으로 보내줌
uniq : 중복되는 단어는 없애서, 한 번만 표시해줌,-u
옵션을 쓰면 단 한개인 것들만 표시해준다.
그러면, 이렇게 하면 되겠네요!!
$ cat data.txt | sort | uniq -u
$PASSWD
$ ssh -p 2220 bandit9@bandit.labs.overthewire.org
Passwd : $PASSWD
해당 파일에서 읽을 수 있는 부분에 있다고 하네요. =
몇 개 이후에 있다고 합니다. 그러면 strings
로 찍어봅시다.
$ strings data
...
========== $PASSWD
...
눈에 바로 보이네요,,, ㅎㅎㅎ
$ ssh -p 2220 bandit10@bandit.labs.overthewire.org
Passwd : $PASSWD