본문 바로가기

3. Pwnable (포너블)/2) 개념 정리

(41)
[2025.04.11] 4주차 활동_Pwnabless 참고 강의: 드림핵(DreamHack) - System Hacking  System Hacking dreamhack.ioSTAGE 7.  Bypass NX & ASLR[ NX ]No-eXecute(NX)실행에 사용되는 메모리 영역과 쓰기에 사용되는 메모리 영역을 분리하는 보호 기법 (프로세스의 각 세그먼트에 필요한 권한만 부여)→ 일반적으로 코드 영역에는 읽기 + 실행 / 나머지 영역에는 읽기 + 쓰기 권한 부여 Checksec 명령어를 이용하면 바이너리에 NX가 적용됐는지 확인 가능  ✓ 다양한 명칭     ∘ 인텔       → XD(eXecute Disable)    ∘ 윈도우   → DEP(Data Execution Prevention)    ∘ ARM      → SN(eXecute Never)..
[2025.04.04] 3주차 활동_Pwnabless 참고 강의: 드림핵(DreamHack) - System Hacking System Hacking dreamhack.ioSTAGE 5.  Stack Buffer Overflow[ 함수 호출 규약 ]함수의 호출 및 반환에 대한 약속(함수 호출 시 반환된 이후를 위해 호출자(Caller)의 상태(Stack Frame) 및 반환 주소(Return Address)를 저장해야 함) 호출자는 1. 피호출자(Callee)가 요구하는 인자를 전달해줘야 함2. 피호출자의 실행이 종료될 때는 반환값을 전달받아야 함한 함수에서 다른 함수 호출 시프로그램 실행 흐름 → 다른 함수로 이동호출한 함수가 반환하면다시 원래 함수로 돌아와서 기존의 실행 흐름 이어감 ※ 함수 호출 규약 적용은 컴파일러의 몫이기 때문에      컴파일러의..
[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..
[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..
[24.05.11] 6주차 활동- 포너블 개념 1. 드림핵 'System Hacking' 로드맵을 함께 듣고 공부했다.Stack Buffer Overflow Stack Canary Bypass NX & ASLRhttps://dreamhack.io/lecture/roadmaps/2 System Hacking시스템 해킹을 공부하기 위한 로드맵입니다.dreamhack.io[ Stack Buffer Overflow ]1. Background : 함수 호출 규약(1) 함수 호출 규약: 함수 호출 규약은 함수의 호출 및 반환에 대한 약속, 한 함수에서 다른 함수를 호출할 때 프로그램의 실행 흐름은 다른 함수로 이동하고 호출한 함수가 반환하면, 다시 원래의 함수로 돌아와서 기존의 실행 흐름을 이어나감. 그러므로 함수를 호출할 때는 반환된 이후를 위해 호출자의 ..
[24.05.04] 4주차 활동 - 리눅스 기초, 포너블 기초 1. 인프런 '생활코딩-리눅스' 강의를 함께 듣고 공부했다.섹션 10. 도메인섹션 11. 인터넷을 통한 서버간 동기화섹션 12. 로그인 없이 로그인 하기https://inf.run/9Yxy [지금 무료] 생활코딩 - Linux | Egoing Lee - 인프런Egoing Lee | 본 수업에서는 리눅스의 사용법을 다룹니다. 특히 초심자들이 어려워하는 부분이 명령어를 이용해서 컴퓨터를 제어하는 법입니다. 여기서는 초심자가 명령어를 사용하는데 필요한 가www.inflearn.com 2. 드림핵 'System Hacking' 로드맵을 함께 듣고 공부했다.System Hacking IntroductionBackground - Computer ScienceTool InstallationShellcodehttps:..
[24.03.30] 3주차 활동 - 리눅스 기초 인프런 '생활코딩-리눅스' 강의를 함께 듣고 공부했다. 섹션 6. 사용자 섹션 7. 권한 섹션 8. 그룹 섹션 9. 인터넷, 네트워크 그리고 서버 https://inf.run/9Yxy 📌 섹션6. 다중 사용자 시스템 1. 다중 사용자 -1 컴퓨터를 여러명이서 같이 사용할 때 각자의 권한이 필요함(각자의 아이디로 로그인해 컴퓨터 사용) => 다중 사용자 시스템 필요 다중 사용자 시스템의 단점 : 각 사람마다의 권한 체크가 필요함 -> 시스템 복잡도 커짐 중요한 정보를 저장했는데 권한에 대해 제대로 설정하지 않아 누구에게나 공개될 수 있음 2. 다중 사용자 -2 명령어 id : 자신이 누구인지 알 수 있음(내가 누군지 식별한다) uid (user id) : 사용자의 아이디 gid (group id) : 그룹..