ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • Level10 (vampire -> skeleton)
    $ 시스템 해킹 $/Los Of BufferOverflow 2020. 1. 1. 14:27

     

    이번 문제는 ultra argv hunter 라는게 추가가 되었는데... 버퍼의 전범위를 초기화 하는 강력한 기능이다..

     

    이번에는 쉘코드를 어디다가 넣어야 할까..

     

    위와 같이 똑같은 실행파일을 하나 만들어주고 gdb -q 옵션으로 디버깅을 한번 해봐야 겠다.

     

    $esp 값을 문자열로 한번 확인해 보자.

    혹시 쉘코드를 가지고 있는 주소가 있을 수도 있으니까? 

     

    x/2000s $esp 로 확인하다가 거의 끝쪽에 현재 gdb로 열고있는 파일명이 들어가 있는 변수를 찾았다.

     

    변수 명에 쉘코드를 넣어서 문제를 해결해야 할것 같다.

    원본 파일의 파일명을 변경하면 위험할 수 있기 때문에 ln -sf 명령어를 이용해서 원본 파일에 심볼릭링크를 걸어서 문제를 해결하면 될것 같습니다.

    해당 심볼릭 링크 파일에 core dump를 생성해 보겠습니다.(아래의 경로가 vampire에서 tmp로 변경된 이유는 core dump가 생성이 안되서 tmp로 심볼릭링크 파일을 복사해서 진행을 하였습니다.)

     

    gdb를 이용해서 core 파일을 분석해 보겠습니다.

    x/1000x $esp 를 해보면 아래와 같이 파일명이 있는 부분을 확인하실 수 있습니다.

     

    표시한 부분이 쉘코드의 시작이므로 그 앞의 \x90부분의 주소를 RET에 넣으면 NOP Sled가 될 것 같습니다.

     

    login : skeleton

    password : shellcoder

    '$ 시스템 해킹 $ > Los Of BufferOverflow' 카테고리의 다른 글

    Level12 (golem -> darkknight)  (0) 2020.01.01
    Level11 (skeleton -> golem)  (0) 2020.01.01
    Level9 (troll -> vampire)  (0) 2020.01.01
    Level8 (orge -> troll)  (0) 2020.01.01
    Level7 (darkelf -> orge)  (0) 2020.01.01

    댓글

Designed by Tistory.