목록2021/12/12 (2)
Sechack
지난 시간에는 Return to Shellcode기법을 실습해보았습니다. 하지만 일반적인 환경에서는 다양한 보호기법들로 인해서 Return to Shellcode와 같은 단순한 공격은 거의 먹히지 않습니다. 이번 시간에는 우리의 exploit을 방해하는 보호기법들이 무엇이 있는지 알아보도록 하겠습니다. NX bit NX bit는 code영역을 제외한 다른 메모리 영역에서 실행권한을 빼버리는 보호기법입니다. 조금만 생각해보면 스택, 힙과 같은 데이터 저장을 위해서 존재하는 메모리 공간에 굳이 실행권한이 존재할 이유가 없습니다. 따라서 실제 실행되는 opcode가 들어가있는 code영역을 제외하고 나머지 메모리 공간에서는 실행권한을 빼버리더라도 프로그램 실행에는 지장이 없습니다. 먼저 NX bit가 걸려있지..
이번 시간에는 시스템 해킹의 기초이자 매우 중요한 취약점인 Stack Buffer Overflow에 대해서 알아보겠습니다. Buffer Overflow는 할당된 메모리 공간을 넘어서 다른 메모리에까지 데이터를 입력할 수 있는 취약점입니다. 줄여서 BOF라고 많이 부릅니다. BOF에는 크게 두가지 종류가 있습니다. 첫번째는 Stack영역에서 발생하는 Stack Buffer Overflow이고 두번째는 Heap영역에서 발생하는 Heap Overflow입니다. BOF가 발생하는 원인은 다양합니다. gets, scanf와 같은 입력 길이 검증이 없는 안전하지 않은 함수를 사용해서 발생하기도 하고 size체크를 하는 안전한 함수를 사용하지만 integer overflow와 같은 로직상의 버그로 안해서 발생되기도 ..