본문 바로가기

etc/Technical Documents

Fake ebp

기법을 적용하는데에는 다음 조건이 맞으면 활용하기 좋다.

1.ret이후로는 덮어 씌울수 없다.

2.ret 스택 or 라이브러리를 필터링 해놓았다.

 

기법의 이름 대로, ebp 바꾸는 작업을 통해 다른 부분에서 ret 뽑아낼수 있도록 바꿔주는 기법이다.

 

 

일단 모든 거의 모든 함수에는 다음과 같은 에필로그가 존재한다.

 

leave

ret

 

두가지 어셈블리는 다음과 같이 해석할수 있다.

 

mov esp ebp

pop ebp

 

pop eip

jmp eip

 

 

그렇다면 이것을 이용하여 ebp 내가 원하는 곳으로 조작할수 있고, return address에는 leave-ret 가젯의 주소를 넣어 놓는다면, 필터링이 되지 않는 곳에서 return 하거나, RTL공격시 인자를 주는 행위가 가능해진다.

이것이 기법의 장점이다.

 

그러니까 한마디로, 다른곳에서 ret 뽑아낼때 다음과 같은 공격을 사용하면 좋은 것이다.

leave mov esp ebp, pop ebp 것과

ret pop eip, jmp eip 것에 유의하며 다음 그림을 보면 이해하기 쉬울 것이다.





'etc > Technical Documents' 카테고리의 다른 글

[Metasploit] android meterpreter 분석  (0) 2014.10.13
peda 유용한 명령어 정리  (0) 2014.09.14
ret to libc  (0) 2014.06.07
.dtors overwrite  (0) 2014.05.23
Vera를 이용한 Visual unpacking  (0) 2014.04.22