해당 게시글은 bandit wargame에 대한 스포일러(방향성/힌트/정답)를 제공할 수 있습니다.

bandit level 21에서 비밀번호를 얻기 위해
cron에 의해 자동적으로 실행되는 프로그램을 파악해야 한다고 제시합니다.

cd /etc/cron.d를 실행하여 제시된 directory로 이동하고
ls를 실행하여 제시된 directory의 항목을 출력합니다.
cat 명령어로 cronjob_bandit22의 내용을 출력하면
cron에 의해 매분 /usr/bin/cronjob_bandit22.sh의 표준 출력과 에러메세지를 소멸시키고 있습니다.

cat 명령어로 출력한 shell script(/usr/bin/cronjob_bandit22.sh)의 내용은 다음과 같습니다 :
/tmp/t7O6lds9S0RqQh9aMcz6ShpAoZKF7fgv(file을 실행한 결과에 의하면 ASCII file)의 권한을 644로 바꾸고,
cat 명령어로 읽어들인 /etc/bandit_pass/bandit22라는 비밀번호 파일의 내용을
출력 리다이렉션(>)을 통해 /tmp/t7O6lds9S0RqQh9aMcz6ShpAoZKF7fgv에 쓰기 작업을 수행합니다.
이는 crontab의 소유자인 bandit22의 권한으로 실행되기 때문에
현재 권한(bandit21)의 권한으로 읽을 수 없는 비밀번호 파일(/etc/bandit_pass/bandit22)을 읽을 수 있었습니다.
chmod에 의해 권한이 644로 바뀌었으므로 /tmp/t7O6lds9S0RqQh9aMcz6ShpAoZKF7fgv는 소유자, 그룹, 그 외 사용자가 전부 읽을 수 있습니다.
cat 명령어로 /tmp/t7O6lds9S0RqQh9aMcz6ShpAoZKF7fgv을 읽으면 비밀번호가 출력됩니다.
'Bandit' 카테고리의 다른 글
| Bandit Level 23 -> Level 24 (1) | 2026.01.13 |
|---|---|
| Bandit Level 22 -> Level 23 (0) | 2026.01.13 |
| Bandit Level 20 -> Level 21 (ptrace?) (0) | 2026.01.13 |
| Bandit Level 19 -> Level 20 (EUID vs RUID?) (0) | 2026.01.13 |
| Bandit Level 18 -> Level 19 (0) | 2026.01.13 |