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

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

Далее используется цепочка вызовов WinAPI функций, при помощи которых выполняется вредоносная программа.

Интересно, что «дропнутый» из pdf-файла исполняемый файл (Win32/TrojanDownloader.Small.OZS) имеет легальную цифровую подпись:

Сертификат действует до конца октября и, вероятно, поэтому злоумышленники решили использовать его именно сейчас. Игры с подписанными вредоносными файлами мы уже наблюдали при атаке червя Win32/Stuxnet. «Дропнутый» модуль представляет собой динамическую библиотеку, маскирующуюся под cpl и имеет следующие импортируемые функции:

StartUP — скачивает с _http://acad***house.us/from/wincrng.exe и запускает этот файл (Win32/TrojanDownloader.Small.OZS)
IsAdmin — проверяет наличие административных привилегий в системе
DeleteMyself — создает bat-файл, который удаляет этот исполняемый модуль из системы
MakeAndShowEgg - перезапускает Adobe Reader
Для этой уязвимости достаточно оперативно появился эксплойт для Metasploit, который так же использует heap-spray для размещения ROP и последующей эксплуатации.
В четверг был обнародован очередной 0-day для Adobe Reader (CVE-2010-2883). На этот раз виноватой оказалась библиотека CoolType.dll, которая отвечает за парсинг True Type Font. Уязвимость проявляется при обработке шрифта с неправильной SING таблицей. При обработке вызывается небезопасная сишная функция strcat(), которая при определенных условиях приводит к переполнению стека.

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

Далее используется цепочка вызовов WinAPI функций, при помощи которых выполняется вредоносная программа.

Интересно, что «дропнутый» из pdf-файла исполняемый файл (Win32/TrojanDownloader.Small.OZS) имеет легальную цифровую подпись:

Сертификат действует до конца октября и, вероятно, поэтому злоумышленники решили использовать его именно сейчас. Игры с подписанными вредоносными файлами мы уже наблюдали при атаке червя Win32/Stuxnet. «Дропнутый» модуль представляет собой динамическую библиотеку, маскирующуюся под cpl и имеет следующие импортируемые функции:

StartUP — скачивает с _http://acad***house.us/from/wincrng.exe и запускает этот файл (Win32/TrojanDownloader.Small.OZS)
IsAdmin — проверяет наличие административных привилегий в системе
DeleteMyself — создает bat-файл, который удаляет этот исполняемый модуль из системы
MakeAndShowEgg - перезапускает Adobe Reader
Для этой уязвимости достаточно оперативно появился эксплойт для Metasploit, который так же использует heap-spray для размещения ROP и последующей эксплуатации.