Level 21 → 22
문제 : 프로그램은 시간 기반 작업 스케줄러 인 cron에서 정기적으로 자동으로 실행됩니다. /etc/cron.d/에서 구성을 찾고 실행중인 명령을 확인하십시오
bandit21@bandit:~$ cd /etc/cron.d
bandit21@bandit:/etc/cron.d$ ls
cronjob_bandit15_root cronjob_bandit22 cronjob_bandit24
cronjob_bandit17_root cronjob_bandit23 cronjob_bandit25_root
우선 문제에서 주어진 경로로 가 확인해본다.
bandit21@bandit:/etc/cron.d$ cat cronjob_bandit22
@reboot bandit22 /usr/bin/cronjob_bandit22.sh &> /dev/null
* * * * * bandit22 /usr/bin/cronjob_bandit22.sh &> /dev/null
다음 단계의 파일을 열어보면 위와같이 나온다.
bandit21@bandit:/etc/cron.d$ cd /usr/bin/cronjob_bandit22.sh
-bash: cd: /usr/bin/cronjob_bandit22.sh: Not a directory
bandit21@bandit:/etc/cron.d$ cat cd /usr/bin/cronjob_bandit22.sh
cat: cd: No such file or directory
#!/bin/bash
chmod 644 /tmp/t7O6lds9S0RqQh9aMcz6ShpAoZKF7fgv
cat /etc/bandit_pass/bandit22 > /tmp/t7O6lds9S0RqQh9aMcz6ShpAoZKF7fgv
해당 경로의 파일을 읽어보면 이런게 나온다. 맨 마지막 줄을 보면 cat 명령어로 오른쪽 파일에 넣어놓았나보다.
bandit21@bandit:/etc/cron.d$ cat /tmp/t7O6lds9S0RqQh9aMcz6ShpAoZKF7fgv
Yk7owGAcWjwMVRwrTesJEwB7WVOiILLI
읽어보면 비밀번호가 나온다.
Level 22 → 23
connect : ssh bandit22@bandit.labs.overthewire.org -p2220
password : Yk7owGAcWjwMVRwrTesJEwB7WVOiILLI
문제 : 프로그램은 시간 기반 작업 스케줄러 인 cron에서 정기적으로 자동으로 실행됩니다. /etc/cron.d/에서 구성을 찾고 실행중인 명령을 확인하십시오. 참고 : 다른 사람이 작성한 쉘 스크립트를 보는 것은 매우 유용한 기술입니다. 이 레벨의 스크립트는 의도적으로 읽기 쉽게 만들어졌습니다. 기능을 이해하는 데 문제가있는 경우 실행하여 인쇄되는 디버그 정보를 확인하십시오.
bandit22@bandit:~$ cat /etc/cron.d/cronjob_bandit23
@reboot bandit23 /usr/bin/cronjob_bandit23.sh &> /dev/null
* * * * * bandit23 /usr/bin/cronjob_bandit23.sh &> /dev/null
bandit22@bandit:~$ cat /usr/bin/cronjob_bandit23.sh
#!/bin/bash
myname=$(whoami)
mytarget=$(echo I am user $myname | md5sum | cut -d ' ' -f 1)
echo "Copying passwordfile /etc/bandit_pass/$myname to /tmp/$mytarget"
cat /etc/bandit_pass/$myname > /tmp/$mytarget
이전 문제와 비슷하게 읽어보면 /tmp/$mytarget에 내용이 저장된 것을 확인할 수 있다.
bandit22@bandit:~$ whoami
bandit22
myname은 whoami의 값이 저장되어있다 확인해보면 bandit22으로 계정명이 들어간다. 다음레벨의 비밀번호를 얻어야하기 때문에 bandit23이 myname이 된다.
myname=$(whoami)
mytarget=$(echo I am user $myname | md5sum | cut -d ' ' -f 1)
echo는 출력해주는 것이므로 myname을 넣어서 실행해보겠다.
echo I am user bandit23 | md5sum | cut -d ' ' -f 1
8ca319486bfbbc3663ea0fbe81326349
위와 같은 값이 나온다. 비밀번호는 아니다.
echo "Copying passwordfile /etc/bandit_pass/$myname to /tmp/$mytarget"
cat /etc/bandit_pass/$myname > /tmp/$mytarget
값을 대입해보면 /tmp/8ca319486bfbbc3663ea0fbe81326349 라는 결과가 나온다.
bandit22@bandit:~$ cat /tmp/8ca319486bfbbc3663ea0fbe81326349
jc1udXuA1tiHqjIsL8yaapX5XIAI6i0n
해당 경로 파일을 읽어보면 비밀번호가 출력된다.
- 끝 -
'OverTheWire > Bandit' 카테고리의 다른 글
OverTheWire Bandit Level 17 → 18 ~ 20 → 21 (0) | 2021.05.19 |
---|---|
OverTheWire Bandit Level 13 → 14 ~ 16 → 17 (0) | 2021.05.17 |
OverTheWire Bandit Level 12 → 13 (0) | 2021.05.16 |
OverTheWire Level 6 → 7 ~ 11 → 12 (0) | 2021.05.03 |
OverTheWire Bandit Level 0 → 1 ~ 5 → 6 (0) | 2021.04.26 |