리버싱/리눅스
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