분류 전체보기 153

[Double Free Bug]

중복으로 연결된 청크를 재할당하면,그 청크는 할당된 청크이면서, 동시에 해제된 청크임할당된 청크에서 데이터를 저장하는 부분 = 해제된 청크에서 fd와 bk 값 있는 부분-> 할당된 청크에 임의의 값을 write함으로써 해제된 청크의 fd와 bk를 조작할 수 있음-> free list에 임의 주소에 있는 chunk를 추가할 수 있음 다만 다시 free하기 위해선 mitigation 우회를 위해 tcache에 있는 chunk의 key field를 조작해야 함

[System Hacking] Tcache Poisoning

보호기법 확인PIE 없음NX 적용됨 -> 셸코드를 실행하기 어려움FULL RELRO 적용됨 -> GOT 오버라이트 공격 수행하기 어려움 => hook overwrite 고려.소스코드 분석// Name: tcache_poison.c// Compile: gcc -o tcache_poison tcache_poison.c -no-pie -Wl,-z,relro,-z,now#include #include #include int main() { void *chunk = NULL; unsigned int size; int idx; setvbuf(stdin, 0, 2, 0); setvbuf(stdout, 0, 2, 0); while (1) { printf("1. Allocate\n"); printf..

보안/Wargame 2025.02.13

[Heap] ptmalloc2(pthread malloc 2)

Memory Allocator의 일종리눅스에서 사용됨, GLibc에 구현됨목표메모리의 효율적인 관리1. 메모리 낭비 방지▶ 메모리 할당 요청이 발생하면먼저, 해제된 메모리 공간 중에서 재사용할 수 있는 공간이 있는지 탐색여기에 요청된 크기와 같은 크기의 메모리 공간이 있다면 이를 그대로 재사용 ▶ 작은 크기의 할당 요청이 발생하면해제된 메모리 공간 중 매우 큰 메모리 공간이 있는 경우 그 영역을 나누어 주기도2. 빠른 메모리 재사용 ▶ 메모리 공간을 해제할 때, tcache 또는 bin이라는 연결 리스트에 해제된 공간의 정보를 저장해둠 이유: 운영체제가 프로세스에게 제공해주는 가상 메모리 공간은 매우 넓으므로,특정 메모리 공간을 해제한 이후에 이를 빠르게 재사용하려면 해제된 메모리 공간의 주소를 기억하고..

WSL 활성화 ↔ VT-x/EPT or AMD-V/RVI 활성화 전환

WSL 활성화해당 VM이 위치한 폴더의 .vmx 파일 >다음 라인 추가: hypervisor.cpuid.v0 = "FALSE" windows 기능 켜기/끄기 >"Hyper-V"와 "Windows Subsystem for Linux" 켜기 VMware Workstation >Edit > Preferences > Display tab > "Accelerate 3D graphics" 활성화Settings > Processors tab > "Virtualize CPU performance counters"와 "Virtualize Intel VT-x/EPT or AMD-V/RVI" 끄기 관리자 권한으로 PowerShell >dism.exe /online /enable-feature /featurename:Virt..

VMware Ubuntu 브릿지 설정 방법

나는 host machine = Windows 11, guest virtual machine = Ubuntu 22.04였다. 1. (확실치는 않지만) host machine에서제어판 > 네트워크 및 공유 센터 > 어댑터 설정 변경 > 현재 연결된 것 우클릭 > 속성 > VMware Bridge Protocol 체크 2. host machine에서VMware Workstation 열기 > 해당 virtual machine의 Settings > Network Adapter > Network connection 섹션에서 Bridged 선택  3. 해당 virtual machine 들어가서아래 명령어 실행ip addr 만약 거기서 ens33에 "DOWN"으로 되어있다면 -> 아래 명령어 실행sudo ip lin..