보안 스터디/시스템 해킹

[드림핵/시스템 해킹] Exploit Tech: Return to Library

성밍쟁 2024. 4. 26. 16:40
728x90
반응형

프롤로그

 

지금까지 내용들 정리해보면

Return Address Overwrite : 반환 주소를 악성 함수의 주소로 덮어서 셸 획득

Stack Canary : 스택 프레임의 반환 주소 전에 랜덤한 카나리를 주입하여 반환 주소를 덮기 어렵게 함

Return to Shellcode : 카나리를 우회하고, 셸 코드를 주입한 버퍼의 주소로 반환 주소를 덮어서 셸 획득

ASLR : 임의 버퍼의 주소를 알기 어렵게 함

NX : 각 세그먼트의 불필요한 실행권한을 제거함으로써 공격자가 임의 버퍼에 주입한 코드를 실행하기 어렵게함

 

NX를 우회하기 위해 RTL(Return To Libaray)가 나옴

 

 

Return to Library

NX로 인해 공격자가 버퍼에 주입된 셸 코드를 실행하기는 어려워졌으나, 반환 주소 덮는 것은 여전히 가능함. 그래서 실행권한이 남아있는 코드 영역으로 반환 주소를 덮는 공격이 뭐가 있을까 해커들은 고민했음

-> 바이너리의 코드 영역, 라이브러리 코드 영역

그 중에서 라이브러리 에 집중했는데, 몇몇 라이브러리에는 공격에 유용한 함수들이 구현되어 있었다(system, execve)

이 libc의 함수들로 NX를 우회하고 셸을 획득하는 공격기법을 개발하였고, 이를 Return To Libc라고 한다.(RTL)

 

 

 

 

728x90
반응형