В этой небольшой заметке будет рассказано о том, насколько просто обходить защиту ASLR, создавая экземпляры элементов ActiveX в Microsoft Office при помощи определенных классов (classid).
Автор: Parvez
В этой небольшой заметке будет рассказано о том, насколько просто обходить защиту ASLR, создавая экземпляры элементов ActiveX в Microsoft Office при помощи определенных классов (classid). Тестирование проводилось в MS Word в Office 2010 на машине с установленной Windows 7 32bit со всеми обновлениями, однако в других приложениях, таких как Excel и PowerPoint, должно работать тоже.
Все перечисленные ниже classid показывают предупреждение, но библиотека все равно загружается перед тем, как будут предприняты какие-либо действия.
Рисунок 1: Сообщение о том, что Active X отключен
Библиотека sqlceca35.dll идет в составе Microsoft SQL Server Compact, который используется в качестве базы данных, устанавливаемой Microsoft Office. В некоторых системах установлена библиотека sqlceca40.dll, которая имеет динамический набор битов, и, следовательно, использует защиту ASLR.
C:\Program Files\Microsoft SQL Server Compact Edition\v3.5\sqlceca35.dll | |
{20347534-760B-464D-B572-285E6B618257} |
SSCE.Error.3.5 |
{3018609E-CDBC-47E8-A255-809D46BAA319} |
SSCE.DropTableListner.3.5 |
{455C3E04-BFE9-4089-8622-F2464EC3FDDB} |
SSCE Active Sync Engine.3.5 |
{7C7E6C99-BB8D-4718-AAA9-70C4320010DE} |
SSCE.Params.3.5 |
{8CD1B98D-D8D5-4B51-9564-48B12A98698F} |
SSCE.RemoteDataAccess.3.5 |
{9E7E2CCE-3F1F-4891-892C-AC8B486D03B2} |
SSCE.Params.3.5 |
{9FD542D2-61C4-4E9F-A8E2-E6B8C7F64CBF} |
SSCE.Errors.3.5 |
{A9D3060D-3526-4538-B13A-1913568DAA0D} |
SSCE.Engine.3.5 |
{EA91E968-EF93-4FF1-86F3-75CC93416DF2} |
SSCE.Replication.3.5 |
C:\Program Files\Microsoft SQL Server Compact Edition\v3.5\sqlceoledb35.dll | |
{90A1998A-EB21-4F61-872F-F4DFDE1065D6} |
Microsoft.SQLSERVER.CE.OLEDB.
|
C:\Program Files\Common Files\System\Ole DB\XMLRW.dll
| |
{10154F28-4979-4166-B114-3E7A7926C747} |
MSOLAP.4 |
{867CD778-80D7-4f93-989E-B3E76A92FB42} |
MSOLAP100ErrorLookup.1 |
C:\Windows\system32\msvbvm60.dll | |
{D5DE8D20-5BB8-11D1-A1E3-00A0C90F2731} |
C:\Program Files\Common Files\Microsoft Shared\Help\msitss55.dll
| |
{5591379C-B467-4BCA-B647-A438712504B0} |
LR.LexRefTfFunctionProvider.1.0.1 |
C:\Program Files\Microsoft Sync Framework\v1.0\Runtime\x86\Synchronization.dll | |
{A7B3B4EE-925C-4D6C-B007-A4A6A0B09143} |
C:\Program Files\Microsoft Sync Framework\v1.0\Runtime\x86\FeedSync.dll | |
{BC0CD90A-2C24-41BE-B6EC-87C15D919418} |
C:\Program Files\Common Files\Microsoft Shared\VSTA\8.0\x86\VSTARemotingServer.dll | |
{60A896CA-1649-45BF-B63F-2E7312A968F0} |
C:\Windows\assembly\GAC_MSIL\Microsoft.VisualStudio.Tools.Applications.Blueprints\
| |
{65C52C10-2286-420A-B35C-15CF7F9B5876} |
Microsoft.VisualStudio.Tools.Applications.
|
C:\Windows\assembly\GAC_MSIL\Microsoft.VisualStudio.Tools.Applications.DesignTime\
| |
{9DA65B6A-813C-4592-9E8A-412C40BBC4B7} |
Microsoft.VisualStudio.Tools.Applications.
|
Если загрузить сразу все библиотеки, у некоторых базовый адрес будет изменен. Однако если загружать по отдельности, адрес меняться не должен.
Рисунок 2: Некоторые библиотеки в Office 2010 32bit находятся под защитой ASLR
В Office 2010 64bit та же самая картина, и некоторые библиотеки загружаются с неизменным адресом.
Рисунок 3: Перечень загруженных библиотек в Office 2010 64bit, где также некоторые находятся под защитой ASLR
Отключение ActiveX в Microsoft Office
Отключить элементы ActiveX можно через Trust Center.
File — Options — Trust Center — Trust Center Settings — ActiveX Settings
Если выставить настройки, показанные ниже, будут отключены все элементы Active, что, возможно, не будет подходящим решением в вашем случае.
Рисунок 4: Отключение загрузки всех элементов Active X
Отключение некоторых элементов ActiveX при помощи kill bit
Чтобы использовать Office COM kill bit для блокирования определенных элементов, необходимо добавить ключ в реестре с указанием CLSID того элемента, а затем добавить значение 0x00000400 (тип DWORD) в параметр Compatibility Flags.
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Office\Common\COM Compatibility
Microsoft EMET
Используя EMET, мы видим, что все библиотеки используют защиту ASLR.
Рисунок 5: Состояние библиотек при использовании Microsoft EMET
Microsoft Office 2013
В Office 2013 все существующие classids и загружаемые библиотеки уже имеют динамический набор битов и находятся под защитой ASLR.
Рисунок 6: Состояние библиотек в Office 2013
Все документы с classid, перечисленные выше, можно загрузить отсюда.