ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • Mac ASLR
    Hack/Pwnable 2015. 12. 7. 10:20

    맥에서 리눅스와같이 ASLR이 존재한다.


    힙주소, 스택주소등을 계속해서 랜덤화 시켜준다. 간단한 바이너리로 테스트를 해보면 확인해볼수있다.


    #include <stdio.h>

    #include <stdlib.h>


    int main(int argc,char *argv[])

    {

    int a;

    char *x = (char *)malloc(256);

    printf("Library: %p\n",&malloc);

    printf("Heap Addr: %p\n",x);

    printf("Stack Addr: %p\n",&a);

    }


    힙을 확인하기위해 malloc으로 동적으로 할당해주었고, 스택을확인하기위해 지역변수, 라이브러리주소는 malloc 라이브러리를통해 확인해보기위해 위와같이 작성하였다.


    HackCat:~ Songsangjun$ ./aslrtest 

    Library: 0x7fff947a70b2

    Heap Addr: 0x7fcce8403130

    Stack Addr: 0x7fff511a3bfc

    HackCat:~ Songsangjun$ ./aslrtest 

    Library: 0x7fff947a70b2

    Heap Addr: 0x7ff5bb403130

    Stack Addr: 0x7fff519e3bfc


    결과는 위와같이 Library 주소는 따로 바뀌지않고 힙어드레스와 스택만 바뀌었다. 라이브러리 주소도 바뀌는걸로 아는데 수상하지만 추후에 확인해볼예정이다.


    64비트에서 저렇게 주소가 랜덤화되니 익스플로잇하려하니 막상 답이없닷..


    전 버전들에서는 DYLD_NO_PIE라는 환경변수를 수정해서 ASLR을 해제하고, -no_pie 라는 옵션을 추가해서 컴파일하면 꺼졌었는데 엘케피탄 버전에서는 상관이없는것같다.





    'Hack > Pwnable' 카테고리의 다른 글

    Embedded Firmware Bug Hunting  (0) 2016.01.05
    Mac mprotect  (0) 2015.12.07
    otool (object tool)  (0) 2015.12.07
    kext(kernel extension)  (0) 2015.12.07
    Fake EBP  (0) 2015.12.04

    댓글

Designed by Tistory.