본문 바로가기
Pwnable/Bandit

[Bandit Level 22->23] cron을 활용하자 (2)

by secumark 2022. 2. 2.
728x90

 

이번 문제도 Level 21과 유사하다. 다만 NOTE 부분이 추가됨. 이번 레벨에서 사용된 쉘 스트립트는 굉장히 읽기 쉽게 짜여졌다고 한다. ok..

 

 

 

일단 /etc/cron.d 폴더에 들어가서 ls -al 명령어를 사용해줬다.

cronjob_bandit~ 파일이 여러개 들어있길래 다음 단계로 가기위한 bandit23 파일을 읽어봤다.

 

 

 

21 레벨에서 봤던 코드와 동일한 내용이 들어있다. (재부팅시, 그리고 매 분 마다 /usr/bin/cron~에 있는 파일의 표준 출력, 에러를 리다이렉트해서 /dev/null로 보냄.

 

 

 

 

/usr/bin 폴더에 가보자. 

ls -al cronjob_* 명령어로 cronjob_으로 시작하는 파일을 찾아봤다. 이것도 21 Level과 동일하게 나온다. 

 

 

cronjob_bandit23.sh 파일을 읽어보자.

 

 

 

 

 

엇! 이번엔 뭔가 코드가 길다..

myname 변수에 $(whoami) , 즉 현재 로그인한 사용자를 입력하고

echo 명령어로 .. myname 변수를 출력해준다.

그리고 마지막엔 cat /etc/bandit_pass/$myname > /tmp/$mytarget으로 넣어줌

그럼 현재 내 아이디는 bandit22이니까 bandit22 비밀번호가 들어가겠지..?

여기서 목표는 딱 하나다. 내 아이디를 bandit23로 만드는 것..!

 

 

 

 

이 파일을 실행해보면 다음과 같은 내용이 출력된다. 7행에 있는 Echo 명령어가 출력된 것이다.

 

 

/tmp/816~ 파일을 읽어보면 예상대로 22 비밀번호가 나온다.

 

 

 

엥.. 근데 아무생각없이 4행에 있던 echo 명령어에 $myname 대신 bandit23을 넣었는데 mytarget 변수의 값이 나왔다...

 

 

 

원래 이렇게 푸는게 맞는건가..?

 

md5sum은 무결성 확인 명령어, cut -d는 지정한 문자를 구분자로 사용한다는거.. -f는 필드를 기준으로 잘라댄다고 한다. (못알아들음)

 

 

ㅠㅠ 풀어도 찝찝한 문제

 

 

 

아니.. 웅아 우리 이거 맞아..? (아련)

728x90

댓글