해킹/Window

윈도우 포너블 2차

NextLine 2017. 8. 23. 02:19

Exploit writing tutorial part 2 : Stack Based Overflows – jumping to shellcode

1. findjmp

(kernel32.dll에서 원하는 레지스터가 포함된 opcode를 찾아냄 -  findjmp [DLL] [register] )

http://g0n4k00.tistory.com/attachment/cfile2.uf@2353E93A5336FD9425130C.exe


2. jmp vs call?

이전 exploit에서 jmp esp를 call esp로 변경하여도 익스가 가능하다.

call은 stack에 돌아올 ret address를 push하고 eip를 변경하는 반면, jmp는 바로 eip를 변경한다.

exploit을 할 때에는 두개다 같다고 생각해도 무관할듯 하다.


3. pr / ppr / pppr

쉘코드가 있는 버퍼주소를 모를떄 pr, ppr, pppr을 이용하여 스택을 줄이고 쉘코드에 접근할 수 있다.


4. push esp; ret;

위 어셈블리를 이용하여 레지스터에 쉘코드 버퍼주소가 담겨져 있을때 익스할 수 있다.


5. jmp [esp+ 4]; ret;

3번과 마찬가지로 스택을 줄이고 쉘코드에 접근할 수 있다.