본문 바로가기

Security/System Hacking42

[Dreamhack System Hacking] STAGE 6 - basic_rop_x86 보호되어 있는 글 입니다. 2022. 2. 6.
[Dreamhack System Hacking] STAGE 6 - basic_rop_x64 보호되어 있는 글 입니다. 2022. 2. 6.
[Dreamhack System Hacking] STAGE 6 - 함께실습 보호되어 있는 글 입니다. 2022. 2. 6.
[Dreamhack System Hacking] STAGE 6 [Mitigation: NX & ASLR] 1. ASLR 1) ASLR (Address Space Layout Randomization) - 바이너리가 실행될 때마다 스택, 힙, 공유 라이브러리 등을 임의의 주소에 할당하는 보호 기법 - 커널에서 지원하는 보호 기법 - 아래의 명령어로 확인 가능 - 리눅스에서 이 값은 0, 1, 또는 2의 값을 가질 수 있음 - 각 ASLR이 적용되는 메모리 영역 ① No ASLR(0): ASLR을 적용하지 않음 ② Conservative Randomization(1): 스택, 힙, 라이브러리, vdso 등 ③ Conservative Randomization + brk(2): (1)의 영역과 brk로 할당한 영역 - 예제 코드 // Name: addr.c // Compi.. 2022. 2. 6.
[Dreamhack System Hacking] STAGE 5 - ssp_001 보호되어 있는 글 입니다. 2022. 1. 30.
[Lazenca] Protection Tech > Canaries 1. Canaries 1) Canaries (Canary word) - 버퍼 오버플로우를 모니터하기 위해 버퍼와 제어 데이터 사이에 설정된 값 - 버퍼 오버플로우가 발생 시 Canary 값이 손상, Canaries 데이터 검증에 실패, 오버플로우에 대한 경고 출력, 손상된 데이터 무효화 처리 2) 종류 ① Terminator canaries - Canary 값을 문자열의 끝을 나타내는 문자들 (NULL, CR, LF, EOF)을 이용하여 생성 - 공격자는 Canaries를 우회하기 위해 return address를 쓰기 전에 null 문자 사용해야 함 - null 문자로 인해 오버플로우 방지 (strcpy 함수는 null문자의 위치까지 복사) - 그럼에도 공격자는 잠재적으로 Canary를 알려진 값으로 .. 2022. 1. 30.
[Dreamhack System Hacking] STAGE 5 [Stack Canary] 1. 스택 카나리 1) 스택 카나리 - 스택 버퍼 오버플로우로부터 반환 주소를 보호 - 함수의 프롤로그에서 스택 버퍼와 반환 주소 사이에 임의의 값을 삽입하고 함수의 에필로그에서 해당 값의 변조를 확인하는 보호 기법 - 카나리 값의 변조가 확인되면 프로세스 강제 종료 - 스택 버퍼 오버플로우로 반환 주소를 덮으려면 반드시 카나리를 먼저 덮어야함 -> 공격자는 반환 주소를 덮을 때 카나리 값을 변조하게 됨 -> 이렇게 되면 함수의 에필로그에서 변조가 확인되어 공격자는 실행 흐름 획득 불가능 2. 카나리 작동 원리 - 예제 코드 (스택 버퍼 오버플로우 취약점 존재) // Name: canary.c #include int main() { char buf[8]; read(0, buf,.. 2022. 1. 30.
[Dreamhack System Hacking] STAGE 4 - basic_exploitation_001 보호되어 있는 글 입니다. 2022. 1. 30.
[Dreamhack System Hacking] STAGE 4 - basic_exploitation_000 보호되어 있는 글 입니다. 2022. 1. 30.