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만 해도 샌드박싱은 간단하게 사라지겠네요.

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







보너스로 하와이사진 크아