понедельник, 13 сентября 2010 г.

Опять Adobe накосячил (CVE-2010-2883)

На прошлой неделе был обнародован очередной 0-day для Adobe Reader (CVE-2010-2883). На этот раз повинна оказалась CoolType.dll, которая отвечает за парсинг True Type Font. Уязвимость проявляется при обработке шрифта с неправильной SING таблицей. В функции обработки есть вызов небезопасной синшной функции strcat(), которая при определенных условиях приводит к переполнению на стеке.

Первым человеком, кто обратил внимание на вредоносный сэмпл (9c5cd8f4a5988acae6c2e2dce563446a) эксплуатирующий эту уязвимость была Mila Parkour. Благодаря ее усилиям правильные люди обратили внимание на вредоносный сэмпл и разобрались в чем дело.
А сэмпл на самом деле попался интересным и судя по всему он уже с конца августа находился, что называется ITW. Непонятно почему в Adobe до сих пор используются небезопасные функции, видимо была надежда на опции компилятора /GS и /SAFESEH, с которыми была скомпилирована библиотека CoolType.dll. Для обхода всех этих неприятностей связанных с DEP и прочего SAFESEH используется техника ROP, а вот чтобы обойти ASLR был найден модуль icucnv36.dl, так же за авторством Adobe и не скомпилированный с опцией /DYNAMICBASE. Именно в этот модуль мы попадаем при выполнении ROP цепочки, размещенной в памяти по средством проведенной атаки heap-spray:
Далее используется цепочка вызовов WinAPI функций, при помощи которых выполняется вредоносная программа.
 
Интересно, что дропнутый из pdf-файла исполняемый файл имеет легальную цифровую подпись:
Сертификат является действующим до конца октября и вероятно поэтотму злоумышленники решили его использовать именно сейчас. Дропнутый модуль представляет собой динамическую библиотеку, маскирующуюся под cpl и имеет следующие импортируемые функции:

StartUP - скачивает с http://academyhouse.us/from/wincrng.exe и запускает этот файл
IsAdmin - проверяет наличие административных привилегий в системе
DeleteMyself - создает bat-файл, который удаляет этот исполняемый модуль из системы
MakeAndShowEgg - перезапускает Adobe Reader

Для этой уязвимости достаточно оперативно появился эксплойт для Metasploit, который так же использует heap-spray для размещения ROP и последующей эксплуатации.

Update: Сертификат уже отозван, но осадочек остался :)