Wargame/Linux_bandit

리눅스 워게임 bandit (overthewire.org) 21 Level -> 22 Level

G_OM 2023. 8. 13. 13:29

Level 20에서 가져온 키 값을 복사해서 bandit21에 접속해 보자.

bandit21

 

 

 

 

 

 

 

 

 

접속을 했으니 힌트도 보자

주기적으로 실행되는 프로그램이 cron이라는 시간 기반 작업 스케줄러에서 자동으로 실행되고 있다.

/etc/cron.d/ 디렉터리에서 해당 설정을 확인하고 실행되는 명령어를 확인해 보라고 한다.

 

 

 

 

 

 

 

 

cron , crontab

일단 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의 비밀번호가 나왔다.