Bandit level22

반응형


OverTheWire 문제풀이 - Bandit

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

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

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


Bandit level22

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: Looking at shell scripts written by other people is a very useful skill. The script for this level is intentionally made easy to read. If you are having problems understanding what it does, try executing it to see the debug information it prints.

Commands you may need to solve this level

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

레벨 목표

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

참고 : 다른 사람들이 작성한 쉘 스크립트를 보는 것은 매우 유용한 기술입니다. 이 수준의 스크립트는 의도적으로 읽기 쉽게 만들어졌습니다. 문제를 이해하는 데 문제가 있으면 실행하여 디버그 정보를 확인하십시오.

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

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


[문제 풀이]

이번문제는 level21에서 조금 더 응용한 문제이다. /etc/cron.d 디렉터리를 먼저 살펴보자.


cronjob_bandit23 파일을 살펴보니 역시 cronjob_bandit23.sh 이라는 쉘 프로그램을 사용하는 것을 알 수 있다.


쉘 프로그램 내용을 살펴보면 프로그래밍 내용을 볼 수 있는데 2가지의 변수를 사용하는 것을 볼 수 있다.

myname=$(whoami)

mytarget=$(echo I am user $myname | md5sum | cut -d ' ' -f 1)

bandit23 계정의 패스워드를 얻어야 하므로 myname 변수에는 whoami(접속중인 계정)에 bandit23이 들어가는 것이 맞다. 그리고 bandit23의 패스워드를 /tmp/$mytarget 에 입력한다고 한다. mytarget을 분석하면 'echo I am user bandit23 | md5sum | cut -d ' ' -f 1' 와 같이 되겠다.


실제로 쉘에 위와같이 mytarget 변수에 들어있는 것을 출력해보면 아래와 같은 문자열 조합의 파일 이름이 나오고 파일이름을 참조하면 bandit23 계정의 패스워드를 얻을 수 있다.

next level password : jc1udXuA1tiHqjIsL8yaapX5XIAI6i0n

반응형

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

Bandit level24  (0) 2017.04.14
Bandit level23  (0) 2017.04.11
Bandit level21  (0) 2017.04.10
Bandit level20  (0) 2017.04.07
Bandit level19  (0) 2017.04.06
TAGS.

Comments