nikita tarakanov. ms11-087. МИФИ 18/02/2012

22
Embedded FontApocalypse: MS11-087 Никита Тараканов

Upload: ivan-novikov

Post on 16-Jun-2015

1.325 views

Category:

Technology


1 download

DESCRIPTION

"Embedded FontApocalypse (MS11-87): всё, что вы хотели знать про анализ уязвимсотей в ядре, но боялись спросить"* Анализ известного эксплойта для шрифтов в MS Windows, которая позволяет несанкционированно загружать системные драйверы, в том числе и не имеющие цифровую подпись на x64 системах. Так же автор проведет экскурс в анализ уязвимостей ядра и с чего стоит начинать изучать данную тематику.

TRANSCRIPT

Page 1: Nikita Tarakanov. MS11-087. МИФИ 18/02/2012

Embedded FontApocalypse: MS11-087

Никита Тараканов

Page 2: Nikita Tarakanov. MS11-087. МИФИ 18/02/2012

First of All

• Я не связан ни с одной АВ компанией

• У меня не было, нету оригинального

семлпа, который используется Duqu

• Методы тестирования АВ продуктов могут

быть некорректными

Page 3: Nikita Tarakanov. MS11-087. МИФИ 18/02/2012

Небольшой ЛикБез

• TTF – TrueType – win32k.sys

• OTF – OpenType – atmfd.dll

Page 4: Nikita Tarakanov. MS11-087. МИФИ 18/02/2012

Хронология уязвимостей

• MS10-037 – CFF memory Corruption

• MS10-078 – OTF Parsing (2 vulns)

• MS10-091 – OTF Parsing (3 vulns)

• MS11-003 – OTF Encoded Char vuln

• MS11-032 – OTF Parsing

Page 5: Nikita Tarakanov. MS11-087. МИФИ 18/02/2012

Хронология уязвимостей

• MS09-065 – EOT Parsing

• MS10-032 – TTF Parsing

• MS11-041 – OTF(?) Validation

• MS11-077 – TTF,FON vulns

• MS11-084 – DoS in TTF Interpreter

• MS11-087 – TTF sbit integer vulns

Page 6: Nikita Tarakanov. MS11-087. МИФИ 18/02/2012

MS11-087(Duqu vuln)

Page 7: Nikita Tarakanov. MS11-087. МИФИ 18/02/2012

TrueType Bitmap glyphs

• EBLC – info about indexes(position) of bitmap

data

• EBDT – actual bitmap data

• EBSC – info about scaling

Page 8: Nikita Tarakanov. MS11-087. МИФИ 18/02/2012

TrueType Assembler!

• Over 100 instructions

• Implemented in kernel(!!!) land

• Vulns were discovered(MS11-084)

• Itrp_XXX – example: itrp_PUSHB

• Instructions in cvt table and fpgm

Page 9: Nikita Tarakanov. MS11-087. МИФИ 18/02/2012

TrueType Assembler

Page 10: Nikita Tarakanov. MS11-087. МИФИ 18/02/2012

TrueType Assembler

Page 11: Nikita Tarakanov. MS11-087. МИФИ 18/02/2012

TrueType Assembler

Page 12: Nikita Tarakanov. MS11-087. МИФИ 18/02/2012

TrueType Assembler

Page 13: Nikita Tarakanov. MS11-087. МИФИ 18/02/2012

TrueType Assembler

Page 14: Nikita Tarakanov. MS11-087. МИФИ 18/02/2012

GetSbitComponent

• One parameter is TTF interpreter context

• Integer overflow leads to kernel pool

corruption

• Corrupts TTF interpreter context!

• This leads to full pwn at r0(!!!) remotely

Page 15: Nikita Tarakanov. MS11-087. МИФИ 18/02/2012

Lame lame cybercriminals

• The guys behind Duqu has failed to exploit this

vuln on x64 systems!

• Actually, it’s real hardcore: you have to

implement ROP program in TTF assembler

• TODO: go pwn x64, crack your brain!

Page 16: Nikita Tarakanov. MS11-087. МИФИ 18/02/2012

MS11-087 attack vectors

• TTF – good for Vista/2k8/7/8

• DOC – Duqu attack vector

• DOCX – same as DOC, but OOXML

• IE – drive by download scenario

• LPE – no comments…

Page 17: Nikita Tarakanov. MS11-087. МИФИ 18/02/2012

AV/HIPS vs MS11-087

TTF vector detection:

Avast,avira,bitdefender,bullguard,escan,gdata,k7

,kl,lavasoft,rising,trustport,vipre,zonealarm

LPE: FAIL, FAIL, FAIL!

Even with MPAA info some AV FAILED to detect

mine PoC

Page 18: Nikita Tarakanov. MS11-087. МИФИ 18/02/2012

MS11-087 Easter Egg

Page 19: Nikita Tarakanov. MS11-087. МИФИ 18/02/2012

Kernel Attack Surface

• Interrrupts

• Syscalls

Page 20: Nikita Tarakanov. MS11-087. МИФИ 18/02/2012

Interrupts

• Exceptions

• Interrupt transitions

• NTVDM

Page 21: Nikita Tarakanov. MS11-087. МИФИ 18/02/2012

Syscalls

• Ntoskrnl.exe

• Win32k.sys

Page 22: Nikita Tarakanov. MS11-087. МИФИ 18/02/2012

Questions

• @NTarakanov

[email protected]