System Hacking Advanced

System Hacking Advanced

[dreamhack] out_of_bound

out_of_bound○ Out Of Bound(OOB)배열이나 리스트와 같은 데이터 구조에서 정의된 인덱스나 범위를 넘어선 위치에 접근하는 경우를 의미한다.즉, 배열의 범위를 벗어나는 참조라 하여 Out of Bound라고 부른다.예를 들어보자. char command[10]이 있다고 하자. command[idx]을 조회하는 과정에서 idx를 10으로 입력하면 어떻게 될까? command[10]을 참조하는 상황이 발생한다. command[10]은 idx가 0~9만 존재한다. 하지만 9를 벗어나는 10을 참조하게 된다.즉, command[10]의 영역을 벗어나는 메모리를 참조하게 된다.이렇게 개발자가 의도하지 않은 메모리 영역을 참조하는 취약점을 Out of Bound라고 한다. 만약, read/writ..

System Hacking Advanced

[dreamhack] oneshot

개념정리one_gadget은 Glibc 바이너리 내에서 execve("/bin/sh", rsp+0x30, environ)과 같은 쉘을 실행하는 특정 코드 시퀀스를 의미한다. 이 가젯을 통해 특정 조건이 충족되면 공격자가 직접 쉘을 실행할 수 있다. one_gadget의 가장 큰 장점은 단일 가젯으로 쉘을 획득할 수 있다는 점이다. one_gadget을 사용할 때 중요한 점은 각 가젯이 성공적으로 실행되기 위해 충족해야 하는 특정 조건이 있다는 것이다. 이런 조건은 가젯 실행 시 레지스터 또는 메모리 상태와 관련이 있다. 예를 들어, 일부 가젯은 특정 레지스터가 0이어야 하거나 특정 메모리 위치가 유효한 포인터를 포함해야 할 수 있다. 다음은 one_gadget을 이용한 익스플로잇 단계다.취약한 프로그램 ..

System Hacking Advanced

[dreamhack] fho

개념정리Read-Only Relocations (RELRO) 개념은 바이너리 익스플로잇 보호 메커니즘에서 중요한 역할을 한다. Full RELRO는 특정 유형의 익스플로잇을 방지하는 가장 강력한 보안 조치고 특히 GOT overwrite 기법을 막는 것에 효과적이다. 하지만 이를 우회할 수 있는 방법은 존재한다. 일단 RELRO 개념을 이해해보자. RELRO는 3가지 종류가 있다.No RELRO (RELRO 미적용):보안 수준: 최저설명: 이 설정은 어떤 재배치 읽기 전용 보호도 구현하지 않습니다.취약점: 공격자가 글로벌 오프셋 테이블(GOT)을 덮어쓸 수 있도록 허용하여 GOT 덮어쓰기 공격과 같은 다양한 익스플로잇에 취약합니다.Partial RELRO (부분적인 RELRO):보안 수준: 중간설명: 이..

System Hacking Advanced

[dreamhack] basic_rop_x86

문제풀이└─# checksec basic_rop_x86[*] '/root/dream/rop32/basic_rop_x86' Arch: i386-32-little RELRO: Partial RELRO Stack: No canary found NX: NX enabled PIE: No PIE (0x8048000)NX가 적용됐다. 메모리 공간에서 쉘코드를 실행하는 방식의 접근은 힘들어보인다. #include #include #include #include int main(int argc, char *argv[]) { char buf[0x40] = {}; initialize(); read(0, buf, 0x400); write(1..

System Hacking Advanced

[dreamhack] basic_exploitation_003

문제분석void get_shell() { system("/bin/sh");}int main(int argc, char *argv[]) { char *heap_buf = (char *)malloc(0x80); char stack_buf[0x90] = {}; initialize(); read(0, heap_buf, 0x80); sprintf(stack_buf, heap_buf); printf("ECHO : %s\n", stack_buf); return 0;}read(0, heap_buf, 0x80)로 stack_buf 입력을 0x80 바이트만 받는다. 즉, stack_buf에서 BOF가 발생하지 않는다. sprintf(stack_buf, heap_buf);하지만 입..

System Hacking Advanced

[dreamhack] rop

ROP(Return Oriented Programming) ROP(Return Oriented Programming)ROP(Return Oriented Programming)ROP는 ASLR과 같은 메모리 보호기법을 우회하기 위한 공격기법으로 return이 포함된 코드 조각들인 가젯들을 이용해 system(“/bin/bash”)를 실행하는 프로그램을 해커가 임의keyme2003.tistory.com └─# checksec rop[*] '/root/dream/rop/rop' Arch: amd64-64-little RELRO: Partial RELRO Stack: Canary found NX: NX enabled PIE: No PIE (0x40..

keyme
'System Hacking Advanced' 카테고리의 글 목록 (5 Page)