환경설정 : iso 파일을 이용하여 서버를 연 후, cygwin을 이용하여 ssh로 서버에 접속함. * level03 ID: level03 PW: level03 |
flag03의 홈 디렉토리를 확인해라. 여기엔 2분마다 도는 crontab이 있다.
이 레벨을 통과하려면 level03 계정으로 로그인해라. 이 레벨의 파일은 /home/flag03에서 찾을 수 있다.
문제를 푸는 방법 : 다음 레벨의 패스워드를 얻는 것이 아니라 flag03의 권한을 획득하여 getflag를 실행시키는 것
리눅스에서는 프로그램이 일정한 주기로 cron 데몬으로부터 실행된다.
crontab : cron 설정파일인 cron table
이번에는 문제에 코드가 없다. 바로 문제를 풀어보도록 하겠다.
일단 문제에 제시되어있는 /home/flag03으로 접속해보았다.
저기 writable.d와 writable.sh가 보인다
writable.sh 파일을 열어봐야겠다.
문제에 코드가 제시되어 있지 않았는데 여기에 코드가 있었다.
/home/flag03/writable.d 아래 있는 쉘 스크립트 파일들이 하나씩 실행이 되고(bash) 강제로 삭제(rm -f)가 된다고 한다.
ulimit -t는 불필요하거나 무의미한 악성행위들을 반복을 한다고 한다.
단위는 초 단위이고 문제에는 5라고 적혀있으므로 아마 뒤에 내용들을 5초마다 반복을 하는 것 같다..
검색을 해봐도 헷갈리는데 이 부분은 나중에 다시 점검을 해봐야겠다.
참고로 bash명령의 x 옵션은 두가지 전제를 뜻한다고 한다.
- 저 /home/flag03/writable.d 에 쉘 스크립트 파일이 존재해있어야 함
- 쉘 스크립트를 실행하는 계정 기준으로 실행 권한이 있어야 함
여기까지 코드를 해석하다보면 살짝 기대감이 생긴다.
문제에서 crontab이 주기적으로 돌고 있다고 했는데 웬지 저 writable.sh 파일을 실행시키고 있을 것 같다.
그러면 writable.d 디렉터리 안에 flag03의 권한으로 getflag을 실행시켜 지금 현재 level03인 우리가 볼 수 있도록 getflag를 실행시킨 결과를 메모해놔야겠다.
flag03의 권한으로 실행이 되는건 어떻게 생각할 수 있냐면
저기 보면 user 실행권한이 flag03이기 때문에 crontab도 flag03 권한으로 도는 것으로 기대할 수 있다.
아무튼 기대를 가지고 쉘 스크립트를 작성해 보겠다.
저 폴더말고 /home/level03 홈 디렉터리로 가서 쉘 스크립트를 작성 후 /home/flag03/writable.d로 copy를 해주겠다.
이렇게 getflag를 실행시켜 모두가 접근할 수 있는 /tmp/rst22.txt에 저장시켰다.
그리고 저 rst22.txt 파일은 flag03의 권한으로 실행이 될 것이기 때문에 level03인 내가 못 열어볼까봐 권한을 777로 두었다.
만들어주고 확인해보니 실행권한이 없길래 러프하게 권한을 777로 주었다.
이렇게 실행할 수 있는 파일임을 확인했고 (실행할 수 있으면 파일 명이 녹색이 되더라....)
혹시몰라서 file 명령어로 쉘 스크립트인지 확인도 했다.
이렇게 /home/flag03/writable.d로 복사를 해주었고 잘 복사되었는지 확인도 했다.
그런데 실행권한 보니까 이유는 모르겠는데 사라져 있었다.
그래서 다시 777로 권한을 부여해줬다.
이제 시간이 조금 지나면 저 test 스크립트 파일은 사라지고 /tmp/rst22.txt가 생길 것이다..
후후 사라졌다. 이 말은 즉슨 /tmp/rst22.txt가 생겼을 것
getflag가 실행된 것을 확인하였다.
이게 어떻게 flag03 권한으로 실행된 것을 확신할 수 있냐면
지금 writable.d 에 쉘 스크립트 파일음 담고 실행되고 강제로 파일이 삭제되는 과정이 writable.sh 파일이 주기적으로 실행되고 있다는 뜻이다.
아까 확인했듯이 writable.sh 파일은 user 실행 권한이 flag03이기 때문에 저 rat22.txt 안의 getflag 실행내용도 flag03임을 확신할 수 있다.
끝
'WAR GAME > Nebula' 카테고리의 다른 글
[Exploit-Exercises: Nebula] level05 풀이 (0) | 2020.06.20 |
---|---|
[Exploit-Exercises: Nebula] level04 풀이 (0) | 2020.06.11 |
[Exploit-Exercises: Nebula] level02 풀이 (0) | 2020.05.20 |
[Exploit-Exercises: Nebula] level01 풀이 (0) | 2020.05.14 |
[Exploit-Exercises: Nebula] level00 풀이 (0) | 2020.03.24 |