전체 글

전체 글

    abex' crackme #1 풀이

    먼저, exe파일을 실행하면 오른쪽 창과 같은 메시지 박스를 띄운다.하드디스크를 CD-Rom으로 인식하라고 한다. Ok를 클릭. CD-ROM이 아니라고 뜬다. 리버싱을 통해 어떤 로직으로 검증하는지 확인해보자. x86dbg에 exe 파일을 올렸다. EP(Entry Point)부터 코드를 실행하기 위해 System Breakpoint를 체크해제했다. 이후, ctrl+F2로 프로그램을 재실행한다. 브레이크 포인트에 걸렸고, 현재 EP에 머무르고 있다. 간단한 코드기 때문에 어셈블리어를 알면 금방 이해할 수 있다.1. 빨간색 박스에서 cmp eax, esi하고, 동일하다면 0x40103d로 jmp한다.2. 0x40103d부터 문제를 해결하면 뜨는 메시지 박스에 문자를 스택에 push하고 MessageBoxA함..

    wsl2와 nox 충돌 해결 방법

    💡 cmd 관리자 권한으로 실행 💡 WSL2 사용시bcdedit /set hypervisorlaunchtype auto 💡 Nox, Virtualbox 사용시bcdedit /set hypervisorlaunchtype off Uploaded by N2T

    WSL2 설치 방법 및 설정

    IndexWSL 설치네트워크 위치 추가WSL 설치Microsoft Store에서 Windows Subsystem for Linux를 설치한다. 예전에는 수동으로 exe파일로 하나하나 설치하고 설정했는데, 이 앱으로 필요한 구성들을 한번에 설정할 수 있다. Ubuntu를 설치하고 실행하면 된다. 몇 분간 자동으로 설정을 진행하고, Username과 Password를 입력받아 계정을 만든다. terminal에서 설치된 배포판을 확인할 수 있다. 왼쪽에 별표가 있는 부분이 기존 배포판이다. wsl을 치면 Ubuntu-22.04로 셸을 띄워서 사용할 수 있다. 💡 wsl 설정 명령어- 배포판 조회 : wsl --list --verbose- 기본 배포판 설정 : wsl --set-default - 특정 배포판 실..

    [how2heap] house_of_spirit

    Indexhouse_of_spirit.c (glibc 2.23)Analyze with GDBtcache house of spirit (glibc 2.26~)house of spirit 기법에 대해 정리해볼 것이다. 이 기법은 fastbin chunk 크기의 fake cunk를 해제하여 bin에 삽입하는 공격이다. house_of_spirit.c (glibc 2.23)#include #include int main() { fprintf(stderr, "This file demonstrates the house of spirit attack.\n"); fprintf(stderr, "Calling malloc() once so that it sets up its memory.\n"); malloc(1); fp..

    [how2heap] unsafe_unlink

    Indexunsafe_unlinkunsafe_unlink.cunlink 매크로 함수 분석_int_free 함수 예제 코드(unsafe_unlink.c) GDB 분석Reference💡환경 : ubuntu 16.04 (glibc 2.23) unsafe_unlink이 기법은 fake chunk와 인접한 chunk가 병합이 일어나면서, 비정상적인 unlink가 발생하는 취약점이다. 사용 조건으로는 2개의 allocated chunk가 필요하고, 앞 chunk에서 힙 오버플로우가 발생해야 한다. 또한, 힙 영역을 전역변수에서 관리해야 한다. unsafe_unlink.c#include #include #include #include #include uint64_t *chunk0_ptr; int main() { se..

    [how2heap] fastbin_dup_consolidate

    환경 : ubuntu 16.04 (glibc 2.23)fastbin_dup_consolidatefastbin의 consolidate 하는 과정을 통해 malloc.c _int_free 함수의 double free 검증을 우회한다. 따라서, 동일한 chunk를 두번 할당 받을 수 있다. fastbin_dup_consolidate.c#include #include #include int main(void) { void* p1 = malloc(0x40); void* p2 = malloc(0x40); fprintf(stderr, "Allocated two fastbin: p1=%p p2=%p\n", p1, p2); fprintf(stderr, "Now free p1!\n"); free(p1); void* p3 ..

    [how2heap] fastbin_dup_into_stack

    https://github.com/shellphish/how2heap환경 : ubuntu 16.04 (glibc 2.23) fastbin_dup_into_stack.c#include #include int main() { fprintf(stderr, "This file extends on fastbin_dup.c by tricking malloc into\n" "returning a pointer to a controlled location (in this case, the stack).\n"); unsigned long long stack_var; fprintf(stderr, "The address we want malloc() to return is %p.\n", 8+(char *)&stack_var..