610 likes | 801 Views
Memory Protection Mechanism of Linux. TEAM PWN&PLAY YIS of KSIA 김태욱 xodnr631@naver.com fb.com/xodnr631. YIS. TEAM PWN&PLAY. SYSTEM HACKING. Memory Protection Mechanism of Linux. Buffer Overflow (1). 사용자가 입력한 데이터의 크기가 너무 과하여 제한된 버퍼의 용량을 넘쳐버렸을때 생기는 버그를 이용해 해킹하는 기술
E N D
Memory Protection Mechanism of Linux TEAM PWN&PLAY YIS of KSIA 김태욱 xodnr631@naver.com fb.com/xodnr631
SYSTEM HACKING • Memory Protection Mechanismof Linux
Buffer Overflow (1) • 사용자가 입력한 데이터의 크기가 너무 과하여 제한된 버퍼의 용량을 넘쳐버렸을때생기는 버그를 이용해 해킹하는 기술 • 버퍼 : 컴퓨터의 주기억 장치와 주변장치 사이에서 데이터를 주고받을때 정보를 임시로 기억해두는 임시저장공간
Buffer Overflow (1) • 사용자가 입력한 데이터의 크기가 너무 과하여 제한된 버퍼의 용량을 넘쳐버렸을때생기는 버그를 이용해 해킹하는 기술 • 버퍼 : 컴퓨터의 주기억 장치와 주변장치 사이에서 데이터를 주고받을때 정보를 임시로 기억해두는 임시저장공간
Buffer Overflow (3) BUFFER – SFP – RET – Argc/Argv – 환경변수 - 파일명
Buffer Overflow (3) BUFFER – SFP – RET – Argc/Argv – 환경변수 - 파일명 A AAAAAAAAAAAAAAAAAA
Stack 유저영역
Memory LOW HIGH
Memory LOW HIGH
Buffer Overflow (5) <BOF 문제풀이 유형>
Buffer Overflow (5) int main(intargc, char *argv[]) { char buffer[256]; if(argc < 2){ printf("argv error\n”); exit(0); } strcpy(buffer, argv[1]); printf("%s\n", buffer); }
Buffer Overflow (5) int main() { char buffer[16]; gets(buffer); printf("%s\n", buffer); }
Buffer Overflow (5) // here is changed! // egghunter for(i=0; environ[i]; i++) memset(environ[i], 0, strlen(environ[i]));
Buffer Overflow (5) // here is changed! if(strlen(argv[0]) != 77){ printf("argv[0] error\n"); exit(0); }
Memory Protection (1) DEP(Data Execution Prevention)
Memory Protection (1) DEP(Data Execution Prevention) STACK
Memory Protection (1) DEP(Data Execution Prevention) STACK LOW HIGH
Memory Protection (1) DEP(Data Execution Prevention) STACK LOW HIGH
Memory Protection (1) RTL(Return-to-libc) STACK LOW HIGH
Memory Protection (1) RTL(Return-to-libc) A AAAAAAAAAAAAAAAAAA
Memory Protection (1) RTL(Return-to-libc) A AAAAAAAAAAAAAAAAAA &system() &execl() &/bin/sh
Memory Protection (2) ASLR(Address Space Layout Randomization)
Memory Protection (2) ASLR(Address Space Layout Randomization) STACK
Memory Protection (2) ASLR(Address Space Layout Randomization) STACK LOW HIGH
Memory Protection (2) ASLR(Address Space Layout Randomization) STACK LOW HIGH 난짱해커
Memory Protection (2) ASLR(Address Space Layout Randomization) STACK LOW HIGH 난짱해커
Memory Protection (2) ASLR(Address Space Layout Randomization) STACK LOW HIGH 난짱해커
Memory Protection (2) ASLR(Address Space Layout Randomization) STACK LOW HIGH 난짱해커
Memory Protection (2) ASLR(Address Space Layout Randomization) STACK LOW HIGH 난짱해커
Memory Protection (2) ASLR(Address Space Layout Randomization) STACK LOW HIGH 난짱해커
Memory Protection (2) ASLR(Address Space Layout Randomization) STACK LOW HIGH 난짱해커
Memory Protection (2) ASLR(Address Space Layout Randomization) STACK LOW HIGH 난짱해커 똑같은주소
↑ 고정 된 주소 ↑ 계속해서 바뀌는 주소
↑ 고정 된 주소 ↑ 계속해서 바뀌는 주소
Memory Protection (3) ASCII Armor
Memory Protection (3) ASCII Armor STACK LOW HIGH
Memory Protection (3) ASCII Armor STACK LOW HIGH