Bandit Level 21 → Level 22

장일영·2024년 5월 13일

Bandit

목록 보기
22/33

Level

Goal

A program is running automatically at regular intervals from cron, the time-based job scheduler. Look in /etc/cron.d/ for the configuration and see what command is being executed.

프로그램은 시간 기반 작업 스케줄러인 cron으로 실행되어 자동으로 일정한 간격에 동작한다. /etc/cron.d/에서 어떤 명령이 실행되고 있는지 설정을 확인해라.

Commands you may need to solve this level

cron, crontab, crontab(5)(use “man 5 crontab” to access this)

Exploit

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

cronjob_bandit22 파일의 내용을 확인해보면 부팅 시 bandit22 계정 권한으로 cronjob_bandit22.sh* * * * * 주기로 실행하고 있음을 확인할 수 있다.

bandit21@bandit:/etc/cron.d$ ls -al /usr/bin/ | grep bandit22
-rwxr-x---  1 bandit22 bandit21      130 Oct  5  2023 cronjob_bandit22.sh

해당 실행 파일은 bandit21 계정 권한으로 읽을 수 있다. 파일의 내용은 다음과 같다.

bandit21@bandit:/etc/cron.d$ cat /usr/bin/cronjob_bandit22.sh
#!/bin/bash
chmod 644 /tmp/t7O6lds9S0RqQh9aMcz6ShpAoZKF7fgv
cat /etc/bandit_pass/bandit22 > /tmp/t7O6lds9S0RqQh9aMcz6ShpAoZKF7fgv

bash shell로 /tmp 하위의 파일 권한을 644로 변환하고, /etc/bandit_pass/bandit22 파일의 내용을 /tmp 하위의 해당 파일에 저장한다. 부팅 이후 매분 실행하는 것으로 스케줄링 되어 있기 때문에 해당 파일을 확인하면 bandit22의 패스워드를 알 수 있을 것이다.

0개의 댓글