리버싱/리눅스

nebula : level03 ~

parktest0325 2019. 10. 23. 23:03

level03

 

*쉘을 이용해 파일을 실행시킬 수 있는 명령어가 포함된 스크립트가 crontab에 등록되어있으며 아무나 접근할 수 있는 경로를 대상으로 되어있어 누구나 flag03의 권한으로 명령을 실행시킬 수 있다.

 

level03 계정으로 접속 후 /home/flag03 폴더에 접속해보면 writable.d 폴더와 writable.sh 쉘스크립트가 존재한다.

 

쉘스크립트는 flag03의 소유이며 setuid 권한이 존재하지는 않는다.

 

스크립트 내용을 보면 writable.d 디렉터리안의 파일 리스트를 하나씩 가져와 bash -x 로 실행한 후 파일을 삭제한다.

ulimit -t 5 : 시스템 자원 사용을 제한할 수 있다. -t 옵션으로 초당 cpu time을 얼마나 할당받을건지 정할 수 있다. 

bash -x file : bash 쉘을 이용하여 file 을 실행시킨다. -x 옵션은 디버깅옵션이다.

 

 

flag03 계정의 crontab 리스트.

분 시 일 월 주

매 3분마다(*/3) /home/flag03/writable.sh 를 실행한다. 

flag03의 crontab이기 때문에 flag03 권한으로 실행되는데 writable.d 폴더에 flag를 실행시키는 스크립트를 작성 후 넣어놓고 3분뒤에 실행시키길 기다린다. 

 

flag03권한으로 getflag 명령을 실행한 뒤 결과를 /tmp/ret1.txt에 출력한다. 또한 이후 level03 계정으로 파일을 읽어봐야 하기 때문에 권한을 777로 변경한다. 

 

 

 

level04