전체 글

전체 글

    [Dreamhack] HEAP_AEG write-up

    보호되어 있는 글입니다.

    [Dreamhack] STACK_AEG write-up

    보호되어 있는 글입니다.

    [Linux Kernel Exploit] ROP (with ret2usr)

    ROP를 활용해서 ret2usr를 하는 방법에 대해 알아보려고 한다. 익스플로잇 순서는 다음과 같다. (ret2usr과 동일)prepare_kernel_cred(0); 수행 ("root"의 자격 증명 준비)prepare_kernel_cred() 함수의 리턴 값("root"의 자격 증명)을 commit_creds() 함수에 전달system("/bin/sh"); 예제로는 [QWB CTF 2018] core 문제를 보기로 했다. https://github.com/ctf-wiki/ctf-challenges/blob/master/pwn/kernel/QWB2018-core/rop.c trap frame을 만들고 ret2usr기법을 활용하는 것은 동일하다. 다만, LPE를 함수로 하는 것이 아니라 가젯으로 하기 때문..

    [fuzzing101] Exercise 3 - TCPdump (CVE-2017-13028) (2)

    [fuzzing101] Exercise 3 - TCPdump (CVE-2017-13028) (2)

    bootp 관련 크래시를 못 찾았기 때문에 다른 분들의 글을 보면서 분석하겠습니다. 먼저 콜 스택은 다음과 같다. print-bootp.c:325 ND_PRINT((ndo, ", Flags [%s]", bittok2str(bootp_flag_values, "none", EXTRACT_16BITS(&bp->bp_flags)))); EXTRACT_16BITS는 다음과 같다. ntohs를 수행하는 그냥 엔디안 변환 함수인 듯 하다. extract.h:150 static inline uint16_t EXTRACT_16BITS(const void *p) { return ((uint16_t)ntohs(*(const uint16_t *)(p))); } bootp_flag_values는 다음과 같다. 브로드캐스트와 관..