xa_141

Page 44

ВЗЛОМ Алексей Синцов, Digital Security a.sintsov@dsec.ru

ÎÁÇÎÐ ÝÊÑÏËÎÉÒÎÂ 01

ВЫПОЛНЕНИЕ ПРОИЗВОЛЬНОГО КОДА ПРИ ОТКРЫТИИ PDF-ФАЙЛА В IOS

TARGETS Apple iPhone 3/3G/3GS Apple iPod Apple iPad Apple iOS 3.X/4.0.X

CVE CVE-2010-1797

BRIEF Перед нашими глазами отличный пример того, как уязвимость и эксплойт работают на «благо» пользователей. Дело в том, что все мы знаем про такой популярный и модный продукт, как, например, iPhone. Также мы знаем, что наши действия в этом потенциально отличном девайсе сильно урезаны. Ни поднять тебе SSH-сервер, ни скомпилить второй квейк... Понятно, что телефон должен звонить, а не компилировать, но не за такие деньги. Посему хакеры регулярно выкладывают так называемые Jailbreak’и. Дословно переводится как «побег из тюрьмы строго режима им. Стива Джобса». Такие «патчи» нелицензионны и аморальны (но законны), так как оставляют без денег производителей ПО для магазина AppStore, что торгует софтом для яблочных девайсов. Так причем тут обзор эксплойтов? Да при том, что последний Jailbreak, который был реализован твиттер-юзером @comex и его командой (iPhone Dev Team), использовал уязвимости 0day в ПО Apple. Результат работы был продемонстрирован на Defcon 18. Так вот, внедрение кода было осуществлено через две 0day уязвимости: одна в PDF-читалке, встроенной в телефон, а вторая — в ядре iOS. Таким вот образом можно весело расширять функционал iPhone — с помощью хороших эксплойтов. Детали эксплойта не особо распространяются, оно и понятно, ведь эта брешь еще не исправлена, а, значит, попади это оружие в руки «злых» дядей, то вполне возможна попытка построения ботнета на основе Apple-устройств.

/Filter[/FlateDecode] /Length 10709>> stream xœí} t ×μî‘-ƒldc0! .... âûðåçàíî ìíîãî áàéò.... endstream endobj 15 0 obj << /Type /FontDescriptor /Ascent 750 /CapHeight 676 / Descent -250 /Flags 32 /FontBBox [-203 -428 1700 1272] /FontName /CSDIZD+TimesRoman /ItalicAngle 0 /StemV 0 /MaxWidth 1721 /XHeight 461 /FontFile3 13 0 R >> endobj

Собственно, тут и зарыта первая уязвимость — ошибка при обработке Type1C-шрифтов, где, судя по всему, происходит захват стека через переполнение буфера. Как видно, 15 объект ссылается на описание шрифтов, на объект 13 (/FontFile3 13 0 R), где у нас описан Type1C-шрифт. В формате описания (CFF - Compact Font Format) и скрыта ошибка. А что у нас там, где вырезано много байт? Судя по тэгу /Filter[/FlateDecode], там у нас «закодированая» область, которая легко декодируется с помощью PDFTK (скачать с гуи-интерфейсом можно тут: paehl.de/pdf/gui_pdftk.html). В результате вместо каши мы получили почти читаемый код, вернее сначала мы видим CFF-описание, где есть триггер уязвимости (точно неизвестно, где — надо курить ман по CFF), и далее, судя по всему, ROP-программа. Отмотаем скроллер пониже — открытым текстом библиотека, которая используется для получения прав root'а через вторую уязвимость (при выделении памяти в IOSurface). В итоге боевая нагрузка заключается в том, чтобы закачать Jailbreak-софт, получить рута (и тем самым выбраться из песочницы — защитного механизма iOS) и установить его. Вот и все.

SOLUTION EXPLOIT Кое-что, все же, об том эксплойте известно. Перво-наперво взглянем на содержимое PDF-файла: 13 0 obj <</Subtype/Type1C

042

Пока этот эксплойт используется только для Jailbreak'а, но, тем не менее, не исключены модификации. Пока таких случаев не выявлено. Кроме того, патча еще нет, видимо, будет в следующей версии прошивки. Для тех, кто все же использовал Jailbreak, есть возможность установить предупреждалку, которая при открытии PDF-файла предупреждает об угрозе. XÀÊÅÐ 10 /141/ 10


Issuu converts static files into: digital portfolios, online yearbooks, online catalogs, digital photo albums and more. Sign up and create your flipbook.