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
반응형
'보안 스터디 > 시스템 해킹' 카테고리의 다른 글
[드림핵/워게임] Return to Library (시스템 해킹) (0) | 2024.04.27 |
---|---|
[드림핵/시스템해킹] Background: Library - Static Link vs. Dynamic Link (0) | 2024.04.26 |
[드림핵/시스템해킹] Mitigation: NX & ASLR (0) | 2024.04.21 |
[드림핵/워게임] shell_basic (포너블/시스템해킹) (1) | 2024.01.27 |
[드림핵/시스템해킹] Exploit Tech: Shellcode -2 (0) | 2023.12.31 |