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레벨로 통하는 패스워드를 얻을 수 있습니다.

OverTheWire_Wargame Bandit

[ level21 -> level22 ]




이번 문제는 윈도우에서 예약작업에 해당하는 cron에 대한 것입니다.

/etc/cron.d/ 폴더를 확인하여 어떤 작업이 실행되고 있는 지 확인하라고 하네요. 한 번 확인해주도록 하죠.



해당 폴더에 들어가 보니 딱 bandit22라는 이름이 들어 가 있는 게 보이네요. cat으로 읽어줍니다.

/usr/bin/cronjob_bandit22.sh이라는 쉘스크립트를 실행시키네요. 이건 또 어떤 작업을 하는 지 확인 해봐야겠죠?



cat으로 읽어 준 결과, /etc/bandit_pass/bandit22 에 적혀있는 내용을 /tmp/t706lds9S0RqQh9aMcz6ShpAoZKF7fgv에 옮겨줍니다.

이 말은 bandit22의 패스워드를 저 파일 안에 넣어준다는 소리죠.

cat으로 저 파일을 읽어주면 다음 레벨로 통하는 패스워드를 획득 할 수 있습니다.


+ Recent posts