[OverTheWire System - Bandit] Level 23 >> Level 24
-
Level Goal
A program is running automatically at regular intervals fromcron, the time-based job scheduler. Look in/etc/cron.d/for the configuration and see what command is being executed.
NOTE:This level requires you to create your own first shell-script. This is a very big step and you should be proud of yourself when you beat this level!
NOTE 2:Keep in mind that your shell script is removed once executed, so you may want to keep a copy around…
시간 기반 작업 스케줄러인 cron에서 일정 간격으로 프로그램이 자동으로 실행됩니다. /etc/cron.d/에서 구성을 찾고 어떤 명령이 실행되고 있는지 확인하십시오.
참고: 이 레벨에서는 자신의 첫 번째 셸 스크립트를 만들어야 합니다. 이것은 매우 큰 단계이며 이 레벨을 달성했을 때 자신을 자랑스러워해야 합니다!
cron 설정 파일을 확인해보니, bandit24 사용자 권한으로 부팅할 때마다 /usr/bin/cronjob_bandit24.sh 파일을 실행하고 있었다. 또한 일정 시간에 실행한다는 곳이 모두 *으로 되어 있으면 1분 마다 실행된다는 뜻이니, 해당/usr/bin/cronjob_bandit24.sh 파일은 1분 마다 실행되고 있다.
내용을 확인했는데, 쉘 스크립트에 대한 분석은 문제 풀이 아래에 자세히 정리하겠다.
일단 간단하게 정리하자면 whoami 명령어로 실행한 사용자를 myname 변수에 저장한다. 그 후 /var/spool/$myname으로 이동하게 된다. 이동한 디렉토리의 모든 파일을 60초간 실행시키고 kill 시그널 9을 사용하여 종료한 다음 파일을 삭제한다.
나는 /var/spool/bandit24 디렉토리에 /etc/bandit_pass/bandit24 파일을 읽어서 저장하는 쉘 스크립트를 만들어서 bandit24의 Pw를 얻을 것이다.
/var/spool 디렉토리에 무엇이 있는지 확인해보니, bandit24 디렉토리가 있는 것을 확인하였다. 하지만 권한을 보니, 다른 사용자한테는 Read 권한이 없었다. 즉, 해당 디렉토리를 ls 명령어로 통해 조회할 수 없다는 것이다.
하지만 다행히 Write 파일은 있어서 쉘 스크립트 파일을 생성할 수 있을 것이다. 여기서 키 포인트는 1분 마다 cron에 의해서 파일이 삭제가 되니, 최대한 빠르게 작업을 해야한다는 것이다.
그래서 나는 최대한 빠르게 작업하기 위해 /tmp/lrtk 디렉토리에서 bandit24의 pw 파싱 쉘 스크립트를 생성 후 cp 명령어를 통해 빠르게 작업하는 방법을 선택하였다.