Background: PIE # 들어가며 ASLR이 적용되면 바이너리가 실행될 때마다 스택, 힙, 공유 라이브러리 등이 무작위 주소에 매핑되므로, 공격자가 이 영역들을 공격에 활용하기 어려워짐 PIE: ASLR이 코드 영역에도 적용되게 해주는 기술 해당 기술은 보안성 향상을 위해 도입된 것이 아니기 때문에 엄밀하게 보호 기법은 아니나 이를 보호 기법이라고 소개하는 글이나 발표도 있음 Figure 1. PIE가 적용되지 않은 addr의 실행 결과 # PIC와 PIE - PIC 리눅스에서 ELF는 실행 파일(Executable)과 공유 오브젝트(Shared Object, SO)로 두 가지가 존재 실행 파일은 addr 바이너리처럼 일반적인 실행 파일이 해당하고, 공유 오브젝트는 libc.so와 같은 라이브러리..
Exploit Tech: Shellcode # 서론 1. 들어가며 🚪 - 익스플로잇(exploit): 해킹 분야에서 상대 시스템을 공격하는 것 - 익스플로잇은 '부당하게 이용하다'라는 뜻이 있는데, 상대 시스템에 침투하여 시스템을 악용하는 해킹과 맥락이 닿음 - 셸코드 셸코드 개념 orw 셸코드 작성 및 디버깅 execve 셸코드 작성 코스 요약 및 리뷰 퀴즈 2. 셸코드 🐚 - 셸코드(Shellcode): 익스플로잇을 위해 제작된 어셈블리 코드 조각을 의미 - 일반적으로 셸을 획득하기 위한 목적으로 셸코드를 사용해서, "셸"이 접두사로 붙었음 - 만약 해커가 rip(명령어 포인터 레지스터)를 자신이 작성한 셸코드로 옮길 수 있으면 해커는 원하는 어셈블리 코드를 실행시킬 수 있음 → 어셈블리어는 기계어와..
Tool: pwntools # 서론 1. pwntools의 등장 배경 - 파이썬으로 페이로드를 생성하고, 파이프(|)를 통해 이를 프로그램에 전달할 수 있음 - 그러나 익스플로잇이 조금만 복잡해져도 위와 같은 방식은 사용하기 어려워짐 - 그래서 해커들은 펄, 파이썬, C언어 등으로 익스플로잇 스크립트, 또는 바이너리를 제작하여 사용함 - 파이썬으로 여러 개의 익스플로잇 스크립트를 작성하다 보면 자주 사용하게 되는 함수들이 있는데, 이런 함수들을 반복적으로 구현하는 것은 비효율적임 - 그래서 시스템 해커들은 이들을 모아 pwntools라는 파이썬 모듈을 제작함 > 이제는 익스플로잇의 대부분이 pwntools를 이용하여 제작 및 공유됨 2. pwntools 설치 - pwntools는 깃헙에 오픈 소스로 공개..