Bandit level23

반응형


OverTheWire 문제풀이 - Bandit

* Bandit 는 리눅스 관련 문제입니다.

* 리눅스 명령어를 연습하기에 아주 좋습니다.

* 개인적인 문제풀이로 해답을 보시기 전에 직접 풀어보시기를 권해드립니다.


Bandit level23

Level Goal

A program is running automatically at regular intervals from cron, 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…

Commands you may need to solve this level

cron, crontab, crontab(5) (use “man 5 crontab” to access this)

레벨 목표

프로그램은 cron (시간 기반 작업 스케줄러)에서 정기적으로 자동으로 실행됩니다. /etc/cron.d/에서 구성을 찾고 실행중인 명령을 확인하십시오.

참고 :이 수준에서는 자신 만의 첫 번째 셸 스크립트를 만들어야합니다. 이것은 매우 큰 단계이며, 당신이이 수준을 이길 때 자신을 자랑스럽게 생각해야합니다!

NOTE 2 : 쉘 스크립트는 한번 실행되면 제거되므로, 복사본을 유지하고 싶을 수도 있습니다.

이 레벨을 해결하는 데 필요할 수있는 명령

cron, crontab, crontab(5) (이것을 사용하려면 "man 5 crontab"을 사용하십시오.)


[문제 풀이]

이번 문제는 level21, 22에서 더 어렵게 응용한 문제이다. 이 문제를 풀려면 직접 쉘 스크립트를 작성해야 한다고 한다. 먼저 /etc/cron.d 디렉터리를 먼저 살펴보자.


cronjob bandit24 파일을 살펴보니 cronjob_bandit24.sh라는 쉘 프로그램을 실행하는 것을 알 수 있었다.


쉘 프로그램 내용을 살펴보면 myname 변수에 접속한 계정 아이디를 담고 있다. bandit24 권한으로 실행해야 하니 myname에는 bandit24가 들어간다. 따라서 쉘 프로그램이 실행되면 /var/spool/bandit24 디렉터리로 이동 후 for 문을 통해 파일 이름이.(현재 디렉터리), ..(이전 디렉터리) 인 것이 아닐 때 즉, 해당 디렉터리에 있는 모든 파일을 실행시키고 삭제하는 것을 알 수 있다. 그리고 이 쉘 프로그램은 1분마다 실행되게끔 설정되어 있다.


그렇다면 /var/spool/bandit24 디렉터리에 bandit24 패스워드를 볼 수 있는 쉘 프로그램을 작성해 놓고 1분이 지난 후라면 이 cron 프로그램이 만든 쉘 프로그램을 자동으로 실행해 줄 것이다. 하지만 쉘 프로그램이 실행되고 rm -f 명령어로 인해 바로 파일이 삭제가 되므로 /tmp 디렉터리에 입력된 정보를 저장하도록 한다. 처음에 쉘 프로그램을 작성할 때 실행 권한이 주어지지 않으므로 꼭 chmod 명령어로 실행 권한을 줘야 한다.

#쉘 프로그램 내용

#!/bin/bash

cat /etc/bandit_pass/bandit24 > /tmp/moon/log


1분 후에 crontab에 의해 쉘 프로그램이 실행되고 지정해놓은 경로에 다음 레벨에 대한 패스워드가 들어가 있는 것을 확인할 수 있다.

next level password : UoMYTrfrBFHyQXmg6gzctqAwOmw1IohZ

반응형

'War Game > bandit' 카테고리의 다른 글

Bandit level25  (0) 2017.04.14
Bandit level24  (0) 2017.04.14
Bandit level22  (0) 2017.04.10
Bandit level21  (0) 2017.04.10
Bandit level20  (0) 2017.04.07
TAGS.

Comments