[OverTheWire:Bandit] Level 22 ~ Level 23

2023. 7. 17. 10:06War Game/OverTheWire

문제

 

 

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

 

Keyword

 

cron, crontab, ls, cat, cd, echo, cut

 

풀이

 

cd /etc/cron.d
ls -al

 

/etc/cron.d 에서 어떤 명령이 실행되고 있는지 확인하기 위해 이동 후에 ls 명령어를 사용해서 파일 리스트를 확인하였다. 파일 중에 cronjob_bandit23 파일이 다음 단계의 암호를 얻을 수 있는 정보를 가진 파일로 생각하여 cat 명령어를 사용하여 내용을 출력해 본다.

 

cat cronjob_bandit23
cat /usr/bin/cronjob_bandit23.sh

 

내용을 출력해 보았더니 /usr/bin/cronjob_bandit23.sh라는 쉘 스크립트 파일이 매분 실행되고 있는 것을 확인하였다. 다음으로 쉘 스크립트 파일이 어떤 내용을 가지고 있는지 확인하기 위해 cat 명령어를 사용하여 내용을 출력해 보았다. 내용은 /etc/bandit_pass/$myname 파일의 내용을 /tmp/$mytarget 파일에 저장한다는 뜻이며 여기서 $myname은 현재 사용자의 계정에 해당되고 $mytarget은 "echo I am user $myname | md5sum | cut -d ' ' -f 1" 이 명령어를 실행했을 시 출력되는 내용에 해당된다. 

 

echo I am user bandit22 | md5sum | cut -d ' ' -f 1
cat /tmp/8169b67bd894ddbb4412f91573b38db3

 

"echo I am user $myname | md5sum | cut -d ' ' -f 1" 이 명령어 $myname 변수에 bandit22을 대입시킨 후 실행했더니 "8169b67bd894ddbb4412f91573b38db3" 이러한 코드를 얻을 수 있었다. 이제 이걸 /tmp/$mytarget의 $mytarget 변수에 대입하여 cat 명령어를 사용하였더니 bandit23 계정의 암호를 얻을 수 있었다.