OverTheWire_Wargame Bandit

[ level22 -> level23 ]




이번 레벨도 cron을 이용한 문제네요. 저번 문제와 동일하게 쉘스크립트가 실행되고 있는 모양입니다. 확인 해 보도록 합시다.



/etc/cron.d/ 폴더 안에 cronjob_bandit23이 존재하고 있습니다.



cat으로 확인 해 본 결과, 역시 쉘스크립트를 실행하고 있네요.

스크립트는 echo I am user $myname | md5sum | cut -d ' ' -f 1 을 실행하고, 그 결과값을 파일명으로 패스워드를 저장하네요.

whoami의 결과는 현재 환경에서는 bandit22가 나오겠네요. 하지만 우리가 찾아야 하는 것은 bandit23의 패스워드이므로, $myname은 bandit23이 되어야 합니다.

md5sum은 md5 checksum을 확인하는 용도로, 해당 이름의 md5값을 반환시켜줍니다. 그리고 cut 명령어는 문자열을 자르는 substring과 비슷한 명령어입니다.

cut 명령어의 -d 옵션은 문자열을 자르기 위한 기준 문자를 지정해주는데, 위 스크립트에서는 공백을 기준으로 잡았습니다. -f 옵션은 필드를 뜻하는데, 첫 번째 필드에 있는 문자열을 반환하는거죠.

md5sum에 의해 "I am user bandit23"의 md5값을 반환시키는데, 본래 md5sum의 반환값이 [md5변환값 원래문자열] 이기 때문에, cut 명령어를 실행하면 md5변환값만 남게 됩니다.

자, 이제 동작 원리는 파악했으니 직접 명령어를 때려보도록 하죠.



$myname 부분을 bandit23으로 수정 후 바로 출력시켜줍니다.

반환 된 md5값을 파일명으로 cat 해보니 레벨23으로 갈 수 있는 패스워드가 출력되었습니다.

OverTheWire_Wargame Bandit

[ level21 -> level22 ]




이번 문제는 윈도우에서 예약작업에 해당하는 cron에 대한 것입니다.

/etc/cron.d/ 폴더를 확인하여 어떤 작업이 실행되고 있는 지 확인하라고 하네요. 한 번 확인해주도록 하죠.



해당 폴더에 들어가 보니 딱 bandit22라는 이름이 들어 가 있는 게 보이네요. cat으로 읽어줍니다.

/usr/bin/cronjob_bandit22.sh이라는 쉘스크립트를 실행시키네요. 이건 또 어떤 작업을 하는 지 확인 해봐야겠죠?



cat으로 읽어 준 결과, /etc/bandit_pass/bandit22 에 적혀있는 내용을 /tmp/t706lds9S0RqQh9aMcz6ShpAoZKF7fgv에 옮겨줍니다.

이 말은 bandit22의 패스워드를 저 파일 안에 넣어준다는 소리죠.

cat으로 저 파일을 읽어주면 다음 레벨로 통하는 패스워드를 획득 할 수 있습니다.


+ Recent posts