처음 실행했을 때 화면입니다.
"and now what"이라는 문자열을 출력해서 지금 뭐하느냐고 묻는 것 같습니다..맞나
바로 분석해보도록 해보겠습니다.

 

 

 

 

보시면 setresgid함수와 setresuid 함수를 사용하여 SUID,SGID를 설정한 후
System("cmd")를 수행하는 간단한 소스코드입니다.
그러면 system함수의 파라미터로 들어간 0x80485e0의 값을 살펴보도록 하겠습니다.

 

 


bp걸고 실행시켜줍니다.

 

 

 

 

아~ 이래서 실행시키면 and now what? 이라는 문자열이 출력되었군요.
그런데 /usr/bin/env 때문에 echo 명령어를 수행할 때 PATH변수에 저장된 경로를 우선으로 해서 echo 를 실행시킵니다.

 

 

한번 맞는지 현재 PATH 변수에 저장된 경로와 echo의 위치를 살펴보도록 하겠습니다.

살펴본 결과 PATH에 /bin이라는 경로가 등록되어있기 때문에 echo만 입력하여도 수행되는 것을 볼 수 있습니다.

 


그렇다면 현재 echo 가 무조건 실행되니까 PATH변수의 경로를 바꿔줘서 다른 echo파일이 실행되도록 만들어줍니다.

경로를 앞부분에 추가함으로써 우선순위로 참조하게 합니다.
그렇게 되면 /bin/echo파일보다 /home/level01/echo파일이 먼저 참조되어 실행시켜서 쉘을 획득할 수 있습니다.

물론 echo는 /bin/sh을 실행시켜주는 코드입니다.

 

  

'System Hacking > Exploit-exercise' 카테고리의 다른 글

Protostar [stack01 ~ stack05]  (0) 2015.10.31
Nebula [Level05]  (0) 2015.10.30
Nebula [Level04]  (0) 2015.10.30
Nebula [Level03]  (0) 2015.10.30
Nebula [Level02]  (0) 2015.10.29

+ Recent posts