리눅스 워게임 bandit (overthewire.org) 21 Level -> 22 Level
Level 20에서 가져온 키 값을 복사해서 bandit21에 접속해 보자.
접속을 했으니 힌트도 보자
주기적으로 실행되는 프로그램이 cron이라는 시간 기반 작업 스케줄러에서 자동으로 실행되고 있다.
/etc/cron.d/ 디렉터리에서 해당 설정을 확인하고 실행되는 명령어를 확인해 보라고 한다.
일단 cron , crontab 명령어를 써봤지만 거부한다 일단 cron , crontab에 대해서 간단 설명하자면
Cron 은 컴퓨터가 부팅될 때부터 시작하며 주기적으로 실행되어 야 할 작업을 확인하고 실행하는 역할이다
그러면 Cron table 은 예약된 작업 목록을 저장하는 파일이라고 할 수 있다.
힌트가 알려준 경로에는 cronjob_bandit22 파일이 있다 확인해 보자.
일단 첫 번째 줄부터 해석하자면 (@reboot bandit22 /usr/bin/cronjob_bandit22.sh &> /dev/null)
시스템이 부팅할 때 bandit22의 권한으로 /usr/bin/cronjob_bandit22.sh 스크립트를 실행한다.
표준출력, 에러 즉 실행 결과를 출력하지 않겠다. (null 값에 보내니까)
다음줄은
매 분마다 bandit22의 권한으로 /usr/bin/cronjob_bandit22.sh 에 스크립트를 실행
표준출력, 에러 실행 결과를 출력하지 않겠다.
그러면 어떤 내용에 스크립트가 있는지 확인해봐야 할 거 같다.
여기서 '* * * * *'가 무슨 의미가 담긴 것이냐면
'*' 자체에는 '매 순간'이라고 판단하면 좋을 거 같다.
순서대로 의미가 다른데 총 다섯 개가 있다고 생각하면 좋을 거 같다. (* 이 다섯 개니까)
'*' : 분 (0-59)
* '*' : 시 (0-23)
* * '*' : 일 (1-31)
* * * '*' : 월 (1-12)
* * * * '*' : 요일 (0-6)
예를 한번 들어보겠다
'0 * * * *' : 매 시간 정각마다 ~
'30 2 * * 5' : 매주 금요일 새벽 2시 30분마다 ~ (오후 2시는 14시)
이렇게 알면 될 거 같다.
그럼 다시 문제로 돌아가서
'cat cronjob_bandit22' 명령어를 실행했을 때 경로를 알려준 /usr/bin/cronjob_bandit22.sh라는 셸 스크립트파일을 찾아서 확인해 보자.
일단 첫 번째 줄은 chmod 611 /tmp/t~ 는 t7~이라는 파일의 권한을 644로 변경하는 거 같다.
두 번째 줄은 bandit22에 비밀번호를 /tmp/t7~ 에 덮어 씌우고 있는 거 같다.
그러면 비밀번호는 /tmp/t7~ 에 있다는 소리가 된다.
확인해 보자
bandit22의 비밀번호가 나왔다.