OverTheWire_Wargame Bandit

[ level23 -> level24 ]




이번 레벨 또한 cron을 이용한 문제입니다.

NOTE 부분을 확인 해 보니 이번엔 우리가 쉘스크립트를 짜야 한다고 하네요.

바로 cron을 확인 해 봅시다.



역시 다음 레벨을 위한 cronjob_bandit24가 우릴 기다리고 있습니다.

내용은 /usr/bin/cronjob_bandit24.sh을 실행하는 것입니다.

cronjob_bandit24.sh에는 어떤 내용이 있는 지 살펴보도록 하죠.



이 쉘스크립트를 실행하는 주체는 bandit24이므로, $myname에는 bandit24가 들어 갈 것입니다.

그리고 경로를 /var/spool/bandit24로 바꿔주는군요.

그리고 해당 경로에 있는 모든 파일(와일드 카드로 *, .*이기에 숨김파일도 포함)의 이름을 i에 저장하면서 루프를 돌기 시작합니다.

현재 경로와 이전 경로를 나타내는 .과 ..을 제외한 나머지(모든 파일)의 경우 timeout 명령어를 이용하여 프로그램을 실행합니다.

그리고 프로그램의 실행이 끝나면 rm 명령어로 해당 프로그램을 삭제합니다.

모든 파일이 삭제 될 때 까지 루프를 도는 쉘 스크립트입니다.

그렇다면 /var/spool/bandit24로 넘어가서 쉘 스크립트를 짜보도록 하겠습니다.



이 쉘 스크립트의 이름은 test.sh로 해주었으며, bandit24로 통하는 패스워드를 1이라는 파일명으로 출력해주는 스크립트입니다.

처음에는 /tmp 경로에 폴더를 새로 만들어 출력 해 주려고 하였으나, 폴더를 만들 경우 bandit23에만 권한이 있기 때문에 파일 생성이 되지 않았습니다.

그래서 결국 동일한 경로에 생성을 해 주기로 생각하였습니다.

또한, cronjob_bandit24.sh의 경우 60초 주기로 돌기 때문에 1이라는 파일은 삭제가 되기까지 약간의 시간이 있을거라 생각하고 풀이하였습니다.



test.sh에 실행 권한을 주고 약간의 텀을 주면서 ls를 여러 번 실행 한 결과 1이라는 이름의 파일만 남게 되었고, cat으로 출력해주면 24레벨로 통하는 패스워드를 얻을 수 있습니다.

+ Recent posts