문제를 보면 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

+ Recent posts