본문 바로가기

Bandit

Bandit Level 21 -> Level 22

해당 게시글은 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