Adobe Reader X sandboxing?

Reverse Code Engineering 2010.11.21 05:39 posted by jz-

Adobe Reader X가 영문판만 릴리즈 됐습니다. 

한글 브라우저는 한글판 9.4로 리다이렉트되기때문에 ... 

궁금하신 분들은 아래 링크로 받아보시면 됩니다.




reader x는 샌드박싱을 홍보했는데.. ring3 후킹이 약~간 돼있네요.. 설마 이게 끝인가

간단한 후킹이네요... 내용은 보지 않았지만... CreateProcessA만 예로 볼까요?



따라가보면...


edx는 return address(함수중간)이고
2c00d0에는 jmp 2c00f0 로 쓰인 5바이트를 채울 mov edi, edi; push ebp; mov ebp, esp... 정도..가 있습니다.
그리고 42f380이 진짜 후킹함수입니다.




hooking 된 함수들은

kernel32.dll
CreateProcessA
CreateProcessW
MoveFileExW
CreateEventW
OpenEventW
ntdll.dll
ZwCreateFile
ZwCreateKey
ZwCreateMutant
ZwCreateSection
ZwMapViewOfSection
ZwOpenFile
ZwOpenKey
ZwOpenMutant
ZwOpenProcess
ZwOpenProcessToken
ZwOpenProcessTokenEx
ZwOpenSection
ZwOpenThread
ZwOpenThreadToken
ZwOpenThreadTokenEx
ZwQueryAttributesFile
ZwQueryFullAttributesFile
ZwSetInformationFile
ZwSetInformationThread
ZwUnmapViewOfSection
user32.dll
RegisterWindowMessageA
RegisterWindowMessageW
IsClipboardFormatAvailable
GetClipboardSequenceNumber
CloseClipboard
OpenClipboard
RegisterClassExA
EnumClipboardFormats
SetClipboardViewer
ChangeClipboardChain
ActivateKeyboardLayout
CountClipboardFormats
GetOpenClipboardWindow
GetClipboardData
EmptyClipboard
GetClipboardOwner
SetClipboardData
GetClipboardFormatNameA
GetClipboardFormatNameW
GetClipboardViewer
GetPriorityClipboardFormat


입니다.

공격자의 shellcode로 뛴 다음에...

sysenter shellcode를 쓰거나...

ntdll의 ZwCreateFile을 원래대로 (하드코딩)patch한 후

hooking된 dll file들을 읽어서 memory에 overwrite만 해도 샌드박싱은 간단하게 사라지겠네요.

설마 이게 전부일까 싶습니다. 월요일에 안바쁘면 한번 자세히 봐야겠습니다. 자야지. 해뜨겠네요;







보너스로 하와이사진 크아










  1. Commented by Sun2Day at 2010.11.22 00:43 신고

    샌드박스가 들어간 버전이 나온다는 기사글을 보긴했는데..
    이런 내용이였군요 =_=;
    잘보고 갑니다 '-'/

    • Commented by jz at 2010.11.24 11:41 신고

      장영준님 트위터에서 샌드박싱이 비스타부터 된다는 트윗을 보았는데 비스타이후는 os의 도움을 받아 이 이상의 샌드박싱이 있는지도 모르겠습니다. ㅎㅎ;;

  2. Commented by chpie at 2010.11.29 13:31 신고

    님 천재네요 전수좀..

    • Commented by jz at 2010.11.30 13:06 신고

      전수반 현재 선착순으로 신청받고 있습니다

      선입금하시고 다음달부터 수강하시면 됩니다 고갱님

  3. Commented by chpie at 2010.12.01 17:52 신고

    김똘똘로 입금했어요 입금 확인 ㄱㄱ

    • Commented by jz- at 2010.12.04 14:07 신고

      실명으로 입금하셔야함미다 이미 입금하신건 할 수 없고 실명으로 다시 입금해주시기 바람미다 고갱님

  4. Commented by beist at 2010.12.21 11:13 신고

    ㅋ 님들 여기서 이런 비밀 얘기를.. reader는 자세히는 모르겠는데 windows에서 권고하는 방식을 참고한 것으로 알고 있습니다.

    http://blogs.msdn.com/b/david_leblanc/archive/2007/07.aspx

    여기에 있는 문서 중 Practical Windows Sandboxing 시리즈들의 내용을 기반으로 했다고 하네요. 물론 전 직접본 적이 없어서 이게 사실인지 아닌지는 모름.. ㅋㅋ

  5. Commented by passket at 2010.12.21 17:52 신고

    헐퀴 이럴수가.....

  6. Commented by danmi at 2010.12.25 13:54 신고

    헐킈 jz 님 역시 존경^^**

  7. Commented by jz at 2011.01.06 20:28 신고

    http://blogs.adobe.com/asset/2010/10/inside-adobe-reader-protected-mode-part-1-design.html

  8. Commented by jz at 2011.01.07 15:46 신고

    단순 후킹이 전부가 아니었네요. 결국 os의 도움을 받아서, 해당 프로세스에선 파일 생성 등의 api가 막혀있는 듯 합니다.
    막힌 api를 쓰고싶을 땐 ipc를 통해 관리자프로세스와 통신해 대행하게 되는 방식이라고 문서에 나와 있군요.