본문 바로가기

3. Pwnable (포너블)

(59)
[2025.03.28] 2주차 활동 _ Pwnabless 참고 강의: 드림핵(DreamHack) - System Hacking  System Hacking dreamhack.ioSTAGE 3.  Tool  Installation[ gdb(GNU debugger) ]리눅스의 대표적인 디버거  • 바이너리 분석 용도로 널리 사용되는 플러그인1. gef2. peda3. pwngdb4. pwndbg (해당 로드맵에서는 pwndbg기준으로 설명이 진행될 예정) ⚲ 디버거(debugger)버그를 없애기 위해 사용하는 도구→ 프로그램을 어셈블리 코드 단위로 실행하면서 실행결과를 사용자에게 보여줌[ ELF(Executable and Linkable Format) ]리눅스의 실행파일 형식구성 요소내용헤더실행에 필요한 여러 정보 보유섹션컴파일된 기계어 코드, 프로그램 문자열을 ..
[2025.03.21] 1주차 활동 _ Pwnabless 참고 강의: 드림핵(DreamHack) - System Hacking  System Hacking dreamhack.ioSTAGE 1.   System  Hacking  Introduction[환경 구축]해당 강의는 Ubuntu 22.04(x86-64), x86-64 아키텍처를 기반으로 학습할 예정VMware, Ubuntu 22.04 ISO 다운 -> 리눅스 가상환경 구축[용어]가상 머신 컴퓨터를 에뮬레이팅(emulating, 모방)한 것 호스트(Host) 가상 머신을 작동시키는 컴퓨터 게스트(Guest) 가상 머신 안에서 작동하는 컴퓨터 * 대표적인 가상화 소프트웨어: VMware, VirtualBox, Parallels, QEMU 등STAGE 2.   Background  -  Computer  Sc..
[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의 하드웨어적 설계 폰 노이만 ..