Bandit Level 22 입니다.
문제 자체는 이전 레벨과 같습니다. cron을 확인하라고 합니다.
아래엔 추가로, 쉘 스크립트를 보는 것은 좋은 기술이라고 하네요.
/etc/cron.d 디렉터리입니다.
우리는 bandit23의 password가 필요하니, cronjob_bandit23 을 확인해 보도록 합시다.
매분마다 /usr/bin/cronjob_bandit23.sh 가 실행되고 있습니다.
해당 파일을 확인해 봅시다.
짧은 코드가 있는데요..
myname=$(whoami) : whoami의 결과값을 변수 myname에 저장한다 ( whoami : 현재 접속한 계정명을 알려주는 명령어 )
mytarget=$(echo I am user $myname | md5sum | cut -d ' ' -f 1) : "I am user $myname" 문자열을 md5 해시한 후/ cut 명령어로 문자열 자르기를 실시하여/ 해당 값을 변수 mytarget에 저장한다
echo "Copying passwordfile /etc/bandit_pass/$myname to /tmp/$mytarget" : 크게 의미없는 구문이긴 한데, 프로그램을 실행하면 이 프로그램이 의미하는 것이 무엇인지에 대한 힌트를 얻을 수 있는 구문입니다.
cat /etc/bandit_pass/$myname > /tmp/$mytarget : 해당 계정 password를 /tmp/$mytarget 디렉터리에 저장한다
자 해석을 마쳤고, 총 정리하자면
cron 실행 계정은 bandit23이니, myname 값은 "bandit23" 이겠죠.
이후 "echo I am user bandit23 | md5sum | cut -d ' ' -f 1" 명령어를 그대로 입력하면, mytarget 값을 획득할 수 있습니다.
password가 저장된 파일명을 찾았습니다.
/tmp/8ca319486bfbbc3663ea0fbe81326349 파일을 읽으면 password를 획득할 수 있을 것 같습니다.
password를 획득했습니다.
'Hacking > [System]Bandit' 카테고리의 다른 글
OverTheWire [Bandit Level 24] (2) | 2023.04.02 |
---|---|
OverTheWire [Bandit Level 23] (0) | 2023.04.02 |
OverTheWire [Bandit Level 21] (0) | 2023.04.02 |
OverTheWire [Bandit Level 20] (0) | 2023.04.02 |
OverTheWire [Bandit Level 19] (0) | 2023.04.02 |