IT 그리고 정보보안/Knowledge base

RTL Chaining (esp lifting technique)

plummmm 2021. 4. 15. 21:32
반응형

RTL 체이닝에 대해서 알아보겠습니다~

 

RTL Chaining에 대해 알아보자.

일단 RTL Chaining​은  ESP Lifting gadget과 관계있다.

이름 그대로 ESP를 움직이는 것이다.

 

POP RET

POP POP RET

POP POP POP RET

...

 

위 3가지는 esp lifting을 하게끔 해주는 어셈블리 코드(가젯)들이다.

pr, ppr, pppr 이라고도 부른다. (통칭 ppr 로 하겠음)

 

ppr을 이용하면 함수를 연쇄적으로 호출할 수 있게 된다.

그 말인 즉, RTL을 연쇄적으로 할 수 있다는 말이다.

역시 말로하면 이해가 잘 가지 않으니 그림을 그려서 정리해보도록 하겠다.

 

 

간단하게 설명하자면 pop-pop-ret 가젯을 이용하여 esp를 컨트롤 하는 것이다.

최초에 RTL 함수가 리턴되고 그 함수의 RET자리에 PPR 가젯을 둔다.

(함수 인자가 1개면 PR, 2개면 PPR, 3개면 PPPR)

 

그러면 가젯이 실행될 것이다. 함수의 인자를 뛰어서 스택상의 함수 인자 상단에

새롭게 불러올 함수의 주소를 넣으면 위와 같은 과정을 통해

RTL Chaining이 가능하다.

 

이 기법은 후에 익힐 ROP 공격에 중요한 기초 개념이므로 잘 알아둘 필요가 있다. 

 

반응형