또 뭐하지
[기초] 포너블 개념 간략 정리 본문
728x90
1. Pwnable
Pwnable(시스템 해킹)
- 운영체제 또는 프로그램 취약점을 찾아 공격하고, 관리자의 권한 등을 얻어 시스템을 장악하거나 의도치 않은 행동을 하게 하는 것
- 컴퓨터 프로그램의 행위를 조작하여 공격자가 원하는 행동을 실행하도록 하는 공격
- 궁극적으로 관리자 권한 탈취가 공격의 목표
취약점 종류
- Memory Corruption : Buffer Overflow, Out-Of-Boundary, Off-by-one, Format String Bug, Double Free/User-After-Free
- Logical Bug : Command Injection, Race Condition, Path Traversal(경로 탐색)
해킹 과정
- 취약점 발견 -> 공격 시나리오 작성 -> 필요 정보 수집 및 공격 -> 권한 탈취
Pwntools
- 리눅스 환경에서 Exploit(공격)을 보다 편리하게 할 수 있게 여러가지 함수와 기능을 제공하는 파이썬 라이브러리
- 주요 함수
- remote, process, ssh : 통신할 때 사용
- send, sendline, sendafter, sendlineafter : 데이터 송신
- recv, recvline, recvuntill: 데이터 수신
- p32 : 32비트 리틀 엔디안으로 패킹
Shellcode
- 시스템의 특징 명령(shell)을 실행하는 작은 사이즈의 프로그램
- 기계어로 작성되며, 메모리에 올리면 바로 실행됨
- 주로 BOF, FSB 공격에 사용
2. Buffer Overflow
Buffer Overflow(=Buffer Overrun)
- 메모리를 다루는 데에 오류가 발생하여 잘못된 동작을 하는 프로그램 취약점
- 지정된 버퍼를 벗어난 데이터를 다른 데이터로 덮어쓸 수 있음
- Buffer : 지정된 크기의 메모리 공간
- Stack Buffer Overflow : 스택에 위치한 버퍼에 할당된 것보다 많은 데이터를 쓸 때 발생, 함수의 return 주소를 조작하는 것이 일반적
- Heap Buffer Overflow : 동적 메모리 할당 연결을 덮어써 프로그램의 함수 포인터 조작, 포인터가 가리키는 값을 조작하여 임의의 파일 또는 코드에 접근
3. Stack Frame
Stack Frame 레지스터 : 스택 오버플로우와 관련된 x86(32bit) 레지스터
- 범용 레지스터 : EAX, EBX, ECX, EDX
- 스택 포인터 레지스터 : 실제 메모리상의 주소를 참조할 때 SS(Stack Segmaent) 레지스터와 함께 사용
- ESP : 현재 스택 영역에서 가장 하위 주소를 저장
- EBP : 스택 세그먼트에서 현재 호출되어 사용되는 함수의 시작 주소 값 지정
- 명령어 포인터 레지스터 : EIP 또는 PC, 유효주소를 계산하는데 필요한 주소 저장
- 상태 레지스터 : EFLAGS, x86 프로레서의 상태를 저장하기 위해 사용
- 세그먼트 레지스터 : 각 세그먼트의 위치를 가리킴, 물리 주소 변환에 사용
- 코드 세그먼트 (CS) : 실행 가능한 명령어 코드가 존재하는 세그먼트의 시작 주소
- 스택 세그먼트 (SS) : 스택이 존재하는 세그먼트의 시작 주소
- 데이터 세그먼트 (DS) : 사용되는 데이터가 존재하는 세그먼트의 시작 주소
- ES, FS, GS : 추가 세그먼트의 시작주소로, FS는 통상 스레드 관리용도로 사용
Stack Frame
- 스택의 데이터 : 높은 주소에서 낮은 주소로
- 데이터 작성 : 낮은 주소에서 높은 주소로
- Buffer Overflow : 프로세스가 데이터를 버퍼에 저장할 때 프로그래머가 지정한 곳 바깥에 저장하는 것
'I.sly() > 9기 기초 - 공통' 카테고리의 다른 글
[기초] 암호 & 네트워크 해킹 개념 간략 정리 (0) | 2024.05.23 |
---|---|
[기초] I.Sly_bof (0) | 2024.05.17 |
[기초] 리버싱 기초 문제 (Linux) (0) | 2024.05.09 |
[기초] 리버싱 개념 간략 정리 (0) | 2024.05.09 |
[기초] 웹 해킹 개념 간략 정리 (0) | 2024.04.04 |