BOF

    [LoB] Level3 : cobolt >> goblin

    [LoB] Level3 : cobolt >> goblin

    ID : cobolt PW : hacking exposed 이번에도 전체적인 흐름은 다음과 같다. 취약점 찾기 페이로드 작성 취약점 트리거 및 비밀번호 획득 이 과정을 잊지말고 leve3을 진행해보자. 1. 취약점 찾기 디렉토리 내에 어떤 파일이 존재하는지 먼저 확인해본다. 이번에도 다음 레벨(goblin)로 setreuid가 설정되어 있는 실행파일 하나와 그 바이너리의 소스코드파일(goblin.c)이 있다. 역시나 다음 할 일은 goblin.c를 보고 취약점을 찾는 일이다. [cobolt@localhost cobolt]$ nl goblin.c 1/* 2 The Lord of the BOF : The Fellowship of the BOF 3 - goblin 4 - small buffer + stdin ..

    [LoB] Level2 : gremlin >> cobolt

    [LoB] Level2 : gremlin >> cobolt

    ID : gremlin PW : hello bof world 이번에도 할 일은 level1처럼 level2에서도 아래의 순서로 문제 풀이를 진행한다. 1. 취약점 찾기 2. 페이로드 작성 3. 취약점 트리거 및 비밀번호 획득 1. 취약점 찾기 어떤 파일이 있는지 먼저 확인한다. level1과 마찬가지로 setreuid가 cobolt으로 설정되어있는 바이너리가 있다. 이번에도 cobolt.c에서 취약점을 찾고 페이로드를 만들어 cobolt에서 취약점을 트리거시켜 cobolt의 권한을 얻는 방식으로 진행한다. -1. 문제 파악 cobolt.c를 확인한다. 여기서도 level1처럼 strcpy로 입력값을 받고 있다! 이번엔 buffer의 크기가 16정도 밖에 되지않아, buffer에 쉘코드를 전부 넣을 수 없..

    [LoB] Level1 : gate >> gremlin

    [LoB] Level1 : gate >> gremlin

    id : gate pw : gate LoB의 문제들은 해당 level의 권한에서 다음 level 권한을 획득하여 다음 level의 비밀번호를 알아내는 방식이다. 그래서 level1의 gate로 접속해 취약점을 찾아 level2의 gremlin의 권한을 획득한 후, gremlin의 비밀번호를 알아내야한다. 따라서 앞으로 할 일은 (1) 취약점 찾기, (2) payload 작성, (3) gremlin 권한 획득, (4) my-pass로 gremlin 비밀번호 획득 이다. 1. 취약점 찾기 -1. 문제 파악 gate로 접속해 들어가보면 아래의 파일들을 볼 수 있다. gremlin.c로 취약점을 찾고, gremlin 권한의 gremlin을 실행해 권한을 획득하면 될 것 같다. gremlin.c 파일을 확인해보자..

    [Dreamhack] basic_exploitation_001 Write Up

    보호되어 있는 글입니다.

    [Dreamhack] Return Address Overwrite

    보호되어 있는 글입니다.

    [Dreamhack] exploit tech : Return Address Overwrite

    [Dreamhack] exploit tech : Return Address Overwrite

    드림핵을 기반으로 작성한 내용이다. 버퍼오버플로우에 대한 익스 테크이므로 아래의 글을 참고하면 좋다. [system][hacking] stack buffer overflow - 스택 버퍼 오버플로우 드림핵 내용을 기반으로 내 방식으로 이해한 내용을 정리했다. (잘못된 내용이 있다면 댓글로 알려주세요..!) 스택 버퍼 오버플로우 스택의 버퍼에서 발생하는 오버플로우 버퍼 데이터가 목적지 3omh4.tistory.com 예제 코드 // Name: rao.c // Compile: gcc -o rao rao.c -fno-stack-protector -no-pie #include #include void init() { setvbuf(stdin, 0, 2, 0); setvbuf(stdout, 0, 2, 0); } ..

    [System][Dreamhack] stack buffer overflow - 스택 버퍼 오버플로우

    [System][Dreamhack] stack buffer overflow - 스택 버퍼 오버플로우

    드림핵 내용을 기반으로 내 방식으로 이해한 내용을 정리했다. (잘못된 내용이 있다면 댓글로 알려주세요..!) 스택 버퍼 오버플로우 스택의 버퍼에서 발생하는 오버플로우 버퍼 데이터가 목적지로 이동되기 전에 보관되는 임시 저장소 데이터가 저장될 수 있는 모든 단위를 뜻하기도 함 스택 버퍼 스택에 있는 지역변수 힙 버퍼 힙에 할당된 메모리 영역 버퍼가 필요한 이유 데이터의 처리속도 차이 때문 처리 속도가 다른 두 장치 사이의 데이터 전달 시 abcdefg를 전달했지만 받는 쪽에서는 abcd만 받을 수 있음 → 이를 방지하기 위해 수신 측과 송신 측 사이에 버퍼 둠 버퍼 오버플로우 버퍼가 넘치는 것 버퍼는 일정한 크기를 가지고 있다. int로 선언한 지역변수 = 4bytes char[10] = 10bytes 1..