본문 바로가기

3. Pwnable (포너블)

(57)
[2024.11.22] PWN PWN 해 7주차 활동 7주차는 드림핵의 System Hacking 로드맵에서 Type Error, Command Injection, Path Traversal 강의를 공부했다.https://dreamhack.io/lecture/roadmaps/2 System Hacking시스템 해킹을 공부하기 위한 로드맵입니다.dreamhack.io  Type Error  Type Error: 변수의 자료형 선언 시, 변수를 활동하는 동안 담게 될 값의 크기와 용도, 부호 여부를 고려해야 하는데, 이런 고려 없이 부적절한 자료형을 사용했을 때 발생한다.-  자로형은 변수의 크기를 정의하고, 용도를 암시한다. -  한 번 정의된 변수의 자료형은 바꿀 수 없다. 즉, 변수에 할당된 메모리의 크기는 확장되거나 줄어들지 않는다.    이에 따라 변..
[2024.11.16] PWN PWN 해 6주차 활동 6주차는 드림핵의 System Hacking 로드맵에서 Use After Free, Double Free Bug 강의를 공부했다.https://dreamhack.io/lecture/roadmaps/2Background: ptmalloc2Memory Allocator: 프로세스의 요청에 따라 동적으로 메모리를 할당 및 해제해주는 주체, 또는 관련된 알고리즘들의 집합.실습 환경 - Dockerfile ptmalloc2ptmalloc2(pthread malloc 2)는 Wolfram Gloger가 개발한 Memory Allocator로, Doug Lea의 dlmalloc을 개선한 ptmalloc의 두 번째 버전.ptmalloc의 구현 목표는 메모리의 효율적인 관리.메모리 낭비 방지빠른 메모리 재사용메모리 단편..
[2024.11.09]PWN PWN 해 5주차 활동 5주차는 드림핵의 System Hacking 로드맵에서 Bypass PIE & RELRO, Out of bounds, Format String Bug 강의를 공부했다.https://dreamhack.io/lecture/roadmaps/2 System Hacking시스템 해킹을 공부하기 위한 로드맵입니다.dreamhack.io Bypass PIE & RELRO ELF : 실행 파일(Executable), 공유 오브젝트(Shared Object, SO)실행 파일 : addr공유 오브젝트 : libc.so Position-Independent Code(PIC) : 메모리의 어느 주소에 적재되어도 코드의 의미가 훼손되지 않는 코드, 공유 오브젝트로 재배치(Relocation)가 가능하도록 설계. Position..
[2024.11.02]PWN PWN 해 4주차 활동 4주차는 드림핵의 System Hacking 로드맵에서 Stack Canary, Bypass NX & ASLR 강의를 공부했다.https://dreamhack.io/lecture/roadmaps/2 System Hacking시스템 해킹을 공부하기 위한 로드맵입니다.dreamhack.io Mitigation: Stack Canary 스택 카나리(Stack Canary): 스택 버퍼 오버플로우로부터 반환 주소를 보호하는 기법스택 버퍼 오버플로우로 반환 주소를 덮으려면 반드시 카나리를 먼저 덮어야 하므로 카나리 값을 모르는 공격자는 반환 주소를 덮을 때 카나리 값을 변조하게 됨. 이 경우, 에필로그에서 변조가 확인되어 공격자는 실행 흐름을 획득하지 못함. 카나리의 작동 원리 카나리 정적 분석카나리 비활성화$ ..
[2024.10.05]PWN PWN 해 3주차 활동 3주차는 드림핵의 System Hacking 로드맵에서 Shellcode, Stack Buffer Overflow 강의를 공부했다.https://dreamhack.io/lecture/roadmaps/2 System Hacking시스템 해킹을 공부하기 위한 로드맵입니다.dreamhack.io익스플로잇: 해킹 분야에서 상대 시스템을 공격하는 것 셸코드: 익스플로잇과 관련된 9가지 공격 기법 중 하나로, 익스플로잇을 위해 제작된 어셈블리 코드 조각. 일반적으로 ‘셸’을 획득하기 위한 목적으로 사용한다. 셸코드는 어셈블리어로 구성되므로 공격을 수행할 대상 아키텍처와 운영체제, 셸코드의 목적에 따라 다르게 작성된다. 만약, 해커가 rip를 자신이 작성한 셸코드로 옮길 수 있으면 해커는 원하는 어셈블리 코드가 실행..
[2024.09.28]PWN PWN 해 2주차 활동 2주차는 드림핵의 System Hacking 로드맵에서 System Hacking Introduction, Background - Computer Science, Tool Installation 강의를 공부했다.https://dreamhack.io/lecture/roadmaps/2 System Hacking시스템 해킹을 공부하기 위한 로드맵입니다.dreamhack.io  Background: Computer Architecture컴퓨터 구조컴퓨터가 효율적으로 작동할 수 있도록 하드웨어 및 소프트웨어의 기능을 고안하고, 이들을 구성하는 방법대표적으로 폰 노이만 구조, 하버드 구조, 수정된 하버드 구조가 있음명령어 집합구조: CPU의 명령어에 대한 설계마이크로 아키텍처: CPU의 하드웨어적 설계 폰 노이만 ..
[2024.09.21]PWN PWN 해 1주차 활동 1주차: 리눅스 사용법  1주차는 드림핵의 리눅스 사용법 강의를 공부했다.https://dreamhack.io/lecture/courses/441 Dreamhack | 강의 | Dreamhack dreamhack.io  셸 (Shell): 유저가 리눅스 시스템을 이용할 수 있는 인터페이스터미널 실행 단축키: Ctrl+alt+T (윈도우, 리눅스 기준) 명령어>1. sudo apt updateapt 명령어로 설치 가능한 소프트웨어 패키지 목록과 각 소프트웨어 패키지 별로 어떤 버전을 설치할 수 있는지를 업데이트한다. 2. sudo apt upgrade리눅스에 설치된 소프트웨어 패키지의 버전을 업그레이드한다. 3. id현재 유저의 유저 ID와 해당 유저가 속해있는 그룹 ID를 출력한다. 리눅스는 권한을 기반..
[24.05.18] 7주차 활동- 포너블 개념 드림핵 System Hacking> 로드맵을 듣고 공부&실습했습니다.실습을 하면서 어려운 코드들은 구글링을 하며 학습했습니다.Bypass PIE & RELROOut of boundsFormat String Bug https://dreamhack.io/lecture/roadmaps/2 System Hacking시스템 해킹을 공부하기 위한 로드맵입니다.dreamhack.ioRELRO는 ELF 바이너리 또는 프로세스의 데이터 섹션을 보호하는 보안 기술입니다. 데이터 섹션에는 프로그램 실행에 필요한 변수, 문자열 및 코드가 포함됩니다. RELRO는 이러한 데이터 섹션을 읽기 전용으로 설정하여 공격자가 데이터를 변경하거나 프로그램 실행 흐름을 방해하는 것을 방지합니다. RELRO에는 두 가지 모드가 있습니다:Pa..