- flag03의 홈디렉터리를 확인하고, 거기있는 파일을 기록해두라? 뭔소리여;
- 몇분마다 수행되는 crontab이 설정되어있다
- level03에 로긴하고, 이번 레벨을 위한 파일은 /home/flag03에서 찾을 수 있다.
- level03 로긴.
- 문제설명대로 /home/flag03에 가면 Shell Script파일하나와 디렉터리하나가 있음.
- 문제 설명에서 crontab이 등록되어있다했으니 crontab에 대한 환경설정파일과 리스트를 참조해보았음
- 별다른 특이사항은 발견되지않았고, level03 계정으로 계획된 작업 계획또한 없는 것 같음.
- flag03계정으로 예약되있는 cron을 보기위해 root의 계정에 접속
- Level0 이전 설명에 보면 Root계정에 접근하는법이 명시되어있음.
- root계정에 접속하면 모든 유저로 로그인할수 있음.
- 따라서 su flag03 이나 su - flag03 을 입력하여 flag03계정에 로그인 (어느것이든 상관없음.)
- flag03 계정으로 예약되어있는 cron을 보면. 주기적으로 3분마다 /home/flag03/writable.sh 파일이 실행되는것을 확인
- flag03권한으로 잡혀있는 일정을 확인했으니 본론으로 돌아와서 flag03의 홈디렉터리의 파일들 확인.
- 문제설명대로 /home/flag03에 가면 Shell Script파일하나와 디렉터리하나가 있음.
- 또한 Shell Script 파일에는 writable.d 디렉터리에있는 파일들에 대해 어떤 행동들을 취하는것을 확인할 수 있음.
- ulimit -t 는 5초동안 해당 작업을 수행한다고 볼 수있음
- 또한 bash -x 는 실행가능한 파일이며 파일이 존재하면 수행가능 한 것 같음.
- writable.sh 파일은 실행가능한 파일이므로 bash -x writable.sh 를 입력해보았더니 작업의 프로세스 흐름이 보임
- touch 명령어로 writable.d 디렉터리에 5개의 파일 생성
- 다시 /home/flag03 디렉터리로 돌아와서 bash -x wrtiable.sh 를 입력하여 Shell Script 실행
(writable.sh파일은 실행파일이기때문에 bash -x 옵션으로 실행할 수 있음.)
- 작업의 흐름을 보면 writable.d 디렉터리안에있는 모든파일들이 돌아가면서 커맨드들이 실행되는 것을 확인가능.
- Shell Script 실행 후 writable.d 안에 있는 파일이 모두 지워진것을 확인할 수 있음.
- writable.d안의 모든 파일에 대해서도 bash -x 에 대한 명령어가 실행되는 것을 확인할 수 있음.
- 현재는 작업의 흐름을 확인하기 위해 현재 level03의 권한으로 직접 bash -x writable.sh을 확인한 것.
- 즉, writable.d 디렉터리 내부에 실행가능한 파일을 넣어두면 방금 처럼 직접 실행하지 않아도 crontab에 의해 flag03
권한으로 자동으로 실행될 것임
- 현재 id는 level03이기때문에 flag03 폴더에서는 파일을 생성할 수 없음. 그렇기 때문에, level03홈디렉터리에서
Shell Script 생성
- flag03권한으로 실행될것이기 때문에, getflag의 결과를 ~/result.txt 로 리다이렉션 하도록 작성
- result.txt 를 열어보지못할것을 대비하여 flag03 권한으로chmod 777 하여 result.txt를 모두가 볼 수 있도록 권한 변경.
- 생성한 script파일에 권한을 777을 주어서 bash -x 가 실해할 수 있도록 변경후 writable.d디렉터리로 복사
- writable.d 디렉터리에 정상적으로 script파일이 복사된것을 확인
- crontab에 의해 일정시간이 지나면 자동으로 flag03권한으로 실행되기 때문에 여기서부터는 기다려야함.
- 일정시간 기다리면. writable.d 디렉터리안의 script파일이 cron에 의해 자동으로 실행되면서, flag03 권한으로
getflag이 입력되어 그 결과값을 flag03의 디렉터리에 result.txt라는 파일 권한 777로 생성되는 것을 볼 수 있음.
# crontab은 백그라운드에서 실행하기때문에 완료된것이 눈에 보이지 않음.
- result.txt 파일을 확인해보면 flag03권한으로 getflag가 실행되어 스테이지 클리어를 할 수 있음.
'SystemHacking > Nebula' 카테고리의 다른 글
[Nebula] Level05 (0) | 2022.01.29 |
---|---|
[Nebula] Level04 (0) | 2022.01.24 |
[Nebula] Level02 (0) | 2022.01.23 |
[Nebula] Level01 (0) | 2022.01.22 |
[Nebula] Level00 (0) | 2022.01.22 |