문제를 보면 crontab에 의해서 매 분마다 뭔가가 실행된다는 것을 암시해준다.
시작하자마자 플래그 디렉토리로 이동하고 파일을 살펴본결과 디렉토리와 쉘 스크립트파일을 볼 수있다.
쉘 스크립트 파일을 보고 요약해보니 무한 반복을 하되... Bash로 계속 /home/flag03/writable.d/ 디렉토리의 파일들을 실행한다는 내용이다. 그리고나서 실행된 파일을 강제삭제시킨다...
이제 공격시나리오를 생각해보면. flag03 권한으로 Bash쉘을 따오는 것이 목적이니
그 에맞는 프로그램이나 쉘 스크립트를 저 경로에 넣어서 실행시켜보면 될듯 하다.
쉘 스크립트 파일을 얻기 전에 flag03의 uid와 gid를 확인한다.
996이라는것을 확인했고!
/tmp/level03.c 를 위와 같이 작성해준다.
그리고 컴파일 해보면
당연히! 안됨. 왜냐하면 실행권한이 어디까지나 level03권한이기 때문이고, 당연히 저 코드가 먹힐리가 없다..
그럼 쉘 스크립트로 저 소스파일을 만들어서 권한을 주는 코드를 짜보도록 하자
3번째줄 오타가있는데 /home/flag/level03;이 아니라 /home/flag03/level03;이다
위와 같이 코딩후...
(파일명은 /tmp/level03sh)
위와 같이 차례대로 입력해준다.
중간에 실행권한을 줘야 실행된다.
그리고 /home/flag03/writable.d/에 해당 쉘 스크립트 파일을 복사한다.
그리고 디렉토리내 파일을 확인한다.
있는것이 확인되었으면 이제 기다리자....한 1~2분정도?
기다리고 아래와 같이 보자
writable.d 디렉토리에 있던 파일이 사라진것을 볼 수 있다!
그리고 쉘스크립트 내용대로 /home/flag03에는 level03이 나온 것을 볼 수 있다.
그럼 이제 실행해보자
클리어!!!
'Pwnable > Nebula' 카테고리의 다른 글
| nebula Level05 풀이 (0) | 2016.08.03 |
|---|---|
| nebula Level04 풀이 (0) | 2016.08.03 |
| nubula Level02 풀이 (0) | 2016.08.01 |
| nebula Level01 풀이 (0) | 2016.08.01 |
| nebula Level00 풀이 (0) | 2016.07.28 |