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으로 갈 수 있는 패스워드가 출력되었습니다.

+ Recent posts