sweetchip's blog





생에 첫번째 Exploit 관련 문서입니다.


타겟은 윈도우 시스템 해킹에 처음 입문을 시작한 분을 대상으로 만들어본 문서입니다.


고수 님들이 보시기엔 전문 문서가 아닌 완전 기초 문서입니다.


몇년전 발표된 취약점을 찾아보고 exploit을 하는 과정과 코드를 짜는 과정을 문서에 담아 보았습니다.


처음 입문하는 분들에게 많은 도움이 되길 바라며.. :D


잘못된 정보, 태클은 꼭! 알려주시기 바랍니다




6월 4일 추가 - Exploit 예제

다운로드

위 링크가 작동하지 않을 경우 아래 링크를 사용

Basic of Real Wordl Exploit on windows.pdf



신고

Comment 18

  • 2013.05.22 22:42 수정 답글

    비밀댓글입니다

    • 2013.05.23 19:26 신고 수정

      안녕하세요.

      먼저 break point를 설정하는 이유는 그 명령어에 도달하기 바로 직전에 레지스터와 스택등 상황을 보기 위해서입니다.
      42eb10에 먼저 BP를 설정한 이유는 저 부분이 wcscpy를 호출하는 부분이 들어있는 함수이고, 42eb53은 wcscpy를 호출하는 함수 라는 것을 알려드리기 위해서 BP를 설정한 것입니다.

      음.. 설명이 약간.. 그러긴 한데 이해가 안되셧으면 더 질문 해주셔도 좋습니다.

  • 감사합니다.
    2013.05.24 00:11 신고 수정 답글

    문서 재밌게 잘 보았습니다. 저도 한번 실습해봐야겠어요. ^_^ 특히 파이썬 스크립트로 페이로드 값 알아내는 부분이랑 jmp esp 알아내는 부분이 도움이 되었습니다.
    하나 궁금한 것이 있어요~! 댓글을 보니 저도 질문하고 싶었던 부분이었어요~!문서 6페이지를 보면 asx 파일을 로딩시키기 전에 BP를 먼저 거시잖아요..
    wcscpy 함수를 호출하는 부분이라서 BP를 설정하셨다면... 만약 wcscpy 함수가 있는지 없는지 모르는 상황에선 어떻게 BP를 걸 부분을 찾아야 하나요? 에러가 나는 지점까지 F8로 계속 Step over 해서 진행해봐야 하나요??

    • 2013.05.24 17:54 신고 수정

      저의경우 첫번째 단계로 strcpy나 sprintf 같은 취약함수에 BP를 걸고 진행시켜보고 그래도 안되면 windbg로 크래시 나는 모듈을 찾아서 해보고 그래도 안되면 직접 손으로 찾는 편입니다...ㅋㅋ

      저는 저렇게 하구요, 저것 외에도 다른 방법 다양한 것들 있습니다.
      그것은 한번 검색해 보시면 되겠습니다. 감사합니다 :D

  • Fuzzer
    2013.09.19 17:03 신고 수정 답글

    안녕하세요! 실습 중 막히는 부분이 있어서 질문드립니다.

    asx파일을 Immnunity 디버거에서 열면

    "000.asx is probably not a 32-bit Portable Executable. Try to load it anyway?"
    라는 문구가 떠서 그냥 OK를 누르면 open할수 없다고 뜨는데요

    혹시 이런 현상을 겪으셨었나요?
    Immunity에서 따로 설정해주어야 하는 부분이 있나요?
    (OllyDBG에서 마찬가지네요 ㅠ)

    • 2013.09.19 17:11 신고 수정

      저도 그 메세지를 가끔 보긴 햇엇는데 그럴땐 그냥 곰플레이어를 로딩하면 해결되더군요 ㅎㅎ

      저 현상이 아마 asx 파일이 의도치 않게 로딩되서 그런것 같습니다!

  • 2013.09.19 20:19 수정 답글

    비밀댓글입니다

  • Fuzzer
    2013.09.19 21:29 신고 수정 답글

    head1과 head2가 있는데 각각의 역할이 어떤 것인가요?

    이미 pattern을통해 EIP까지 쓰레기값을 태워넣은 것은 알겠는데

    pattern 앞과 뒤에 head1과 head2는 왜 넣는지 궁금합니다~

    • 2013.09.19 23:47 신고 수정

      메모장으로 보시면 글자들이 나오는데, asx 구조 라고 생각하시면 되겠습니다

  • Fuzzer
    2013.09.26 01:01 신고 수정 답글

    공부하다가 궁금한 점이 있는데요 NOP같은 경우 32에서 40으로 늘어났는데 왜 그런지 알수 있을까요?
    그리고 NOP가 중간에 꼭 들어가야 하는 지도 궁금합니다.

    • 2013.09.26 01:23 신고 수정

      음.. 32에서 40으로 넘어간건 이유가 없답니다.. ㅋㅋㅋ
      그리고 쉘코드 앞에 nop을 주지 않아도 되는 쉘코드가 있지만 현재 사용한 쉘코드는 제 기억상으론 쉘코드 루틴을 진행할때 쉘코드의 앞부분을 약간 사용하는것으로 보이는데 nop을 주지 않았을때 코드가 깨질 확률이 약간 존재합니다.
      그래서 적절하게 nop을 주고 실행했습니다. 딱히 주지 않아도 무방할수도 있습니다

  • loginlove
    2013.10.11 20:21 신고 수정 답글

    이거 실습하면서 질문이 있는데요.

    1. Immnity Debugger에서 GOM플레이어를 OPEN 한다.
    2. 0x0042eb10 에 F2를 눌러 브레이크 포인트를 걸어준다.
    3. F9을 눌러 실행한다.
    4. 곰플레이어가 뜨면 거기에 AAAA를 가득 채운 것을 Load 시킨다.


    이렇게 하는게 맞죠?

    그런데 저는 4번을 하고남녀 BreakPoint가 걸리지 않고

    바로 CMP BYTE PTR DS:[ECX],AL 명령어에서 Aceess Violation이 뜨는데요 ㅠㅠ

    혹시 같은 증상을 경험하신 적이 있나요?


    • 2013.10.12 18:13 신고 수정

      음.. 조금더 자세한 정보가 필요할 것 같습니다.
      문서의 버전 체크, 그리고 다른 디버거로 한번 시도해 보세요!

  • loginlove
    2013.10.13 12:23 신고 수정 답글

    다른 XP에서 하니까 되네요 ㅎㅎ

    대체 무슨 문제인지는 아직 잘 모르겠어요

    아무튼

    감사합니다!!

  • min
    2014.04.24 14:58 신고 수정 답글

    문서가 다운로드 안되요 ㅠㅠ

  • min
    2014.04.26 20:44 신고 수정 답글

    감사합니다