Различия

Здесь показаны различия между двумя версиями данной страницы.

Ссылка на это сравнение

articles:exploit-review-0x1b [2017/09/05 02:55] (текущий)
Строка 1: Строка 1:
 +====== exploit-review-0x1B ======
 +<​sub>​{{exploit-review-0x1B.odt|Original file}}</​sub>​
 +
 +====== exploits review\\ 1Bh выпуск ======
 +
 +крис касперски ака мыщъх, a.k.a. nezumi, a.k.a elraton, a.k.a. souriz, no-email
 +
 +**в середине августа ****Microsoft ****порадовала нас очередной порцией заплаток,​ допускающих удаленный захват управления системой. практически все они относятся к ****MS Office****,​ файлы которого давно стали международным стандартом де-факто и сколько непатченных систем можно захачить — остается только гадать...**
 +
 +===== MS Excel – множественные ошибки переполнения =====
 +
 +**brief**:​Microsoft подтвердила и исправила сразу 4 критических ошибки в Excel, обнаруженных различными независимыми исследователями. Первая ошибка связана с косой обработкой записи (record) AxesSet, размещенной в диаграмме (chart), встроенной в электронную таблицу (spreadsheet). Записи этого типа (используемые для задания позиций и размеров координатных осей диаграммы) являются недокументированными и отсутствуют в официальном описании формата файлов Office, недавно обнародованного Microsoft, однако,​ OpenOffice (поставляющийся в исходных тестах) все прекрасно поддерживает,​ открывая огромный творческий простор для экспериментов. Физически,​ AxesSet представляет собой массив индексов массива координатных осей диаграммы,​ причем значения индексов не проверяется и в специальным образом сконструированном файле они могут указывать куда угодно,​ далеко выходя за пределы "​родного"​ массива,​ что в общем случае приводит к "​удару"​ по памяти и непредсказуемому поведению Excel'​я,​ как правило,​ заканчивающегося его падением. Возможность удаленного захвата управления не исключена,​ хакеры уже работают в этом направлении,​ правда пока не очень успешно. Уязвимости присвоен кодовый номер CVE-2008-3004 и подробнее о ней прочитать можно на: http://​www.cve.mitre.org/​cgi-bin/​cvename.cgi?​name=CVE-2008-3004,​ labs.idefense.com/​intelligence/​vulnerabilities/​display.php?​id=740 и www.securityfocus.com/​bid/​30638.\\ Еще одна ошибка индексного переполнения (на этот раз уже связанная с документированной записью типа "​RECORD",​ размещенной внутри электронной таблицы) проходит под кодовым номером CVE-2008-3005. Так же, как и в предыдущем случае,​ здесь отсутствует какой бы то ни было контроль индексов,​ позволяя им выходить за границы массива,​ модифицируя любую ячейку стековой памяти по усмотрению атакующего. А вот это уже серьезно! И уязвимость носит отнюдь не академический,​ а вполне реалистический характер. Впрочем,​ на поздних версиях Офиса, откомпилированных новым Си компилятором от Microsoft, хакер не может ни подменить адрес возврата из функции (он проверяется перед выходом),​ ни даже перезаписать указатели на процедуры (они зашифрованы псевдослучайным числом,​ генерируемом при запуске приложения),​ SEH-обработчики так же убраны из стека и вынесены в специальную секцию PE-файла. Все это усложняет атаку, хотя и не делает ее невозможной,​ тем более младшие версии Офиса (скажем,​ довольно популярный Office XP) практически никак не защищены от хакерской агрессии,​ что дает атакующим зеленый свет. Подробную карту маршрута можно отрыть на securityfocus.com/​bid/​30639 и http://​labs.idefense.com/​intelligence/​vulnerabilities/​display.php?​id=741.
 +
 +Третья ошибка реализует тривиальное переполнение буфера (что так же ведет к возможности захвата управления). Excel поддерживает файлы формата BIFF, только поддержка эта выполнена не вполне корректно и при обработке записи типа Country (8Ch), программа выделяет буфер фиксированного размера,​ копируя туда пользовательские данные,​ проверка длины при этом не производится,​ в результате чего содержимое ячеек памяти,​ находящихся за концом буфера,​ затирается и Excel падает,​ однако,​ передача управления на shell-код вполне возможна,​ особенно в ранних версиях Офиса. Ошибке присвоен номер CVE-2008-3006 и более подробную информацию о ней можно найти на http://​www.zerodayinitiative.com/​advisories/​ZDI-08-048/,​ а так же на http://​www.securityfocus.com/​bid/​30640/​info.\\ О поледеней (четвертой по счету) ошибке с номером CVE-2008-3003 известно меньше всего и мыщъху пришлось повозиться с дизассемблером,​ прежде чем удалось разобраться что к чему. Выяснилось,​ что баг существует только в Office 2007 и связан с удаленным доступом к данным .xlsx-файла,​ явно защищенным паролем от посторонних личностей,​ но, поскольку,​ Excel кэширует пароль (чтобы не спрашивать его у пользователя всякий раз), сохраняя его непосредственно в самом файле, то атакующий может захачить его без особых проблем. Во всяком случае в теории. А на практике необходимо,​ чтобы при создании файла использовались фрагменты других файлов,​ заботливо начиненные "​взрывчаткой",​ причем,​ "​заимствование"​ фрагментов должно осуществляться напрямую через буфер обмена без всяких "​посредников"​ типа FAR'​а,​ удаляющих оттуда все ненужное. Ну а кто у нас копирует через FAR? Уж точно не секретарши. С другой стороны,​ навязать жертве свои ресурсы для перетаскивания их в секретный документ — крайне затруднительно,​ и тут без социальной инженерии тут не обойтись,​ ну а чисто техническую информацию можно найти на: http://​www.cve.mitre.org/​cgi-bin/​cvename.cgi?​name=CVE-2008-3003. Прежде,​ чем заканчивать с Excel'​ем стоит сказать,​ что для изготовления exploit'​ов нам необходимо либо воспользоваться официальной спецификацией на Excel формат от Microsoft, доступной на http://​download.microsoft.com/​download/​0/​B/​E/​0BE8BDD7-E5E8-422A-ABFD-4342ED7AD886/​Excel97-2007BinaryFileFormat(xls)Specification.pdf (Excel 97-2007, .xls) и http://​download.microsoft.com/​download/​0/​B/​E/​0BE8BDD7-E5E8-422A-ABFD-4342ED7AD886/​Excel2007BinaryFileFormat(xlsb)Specification.pdf (Excel 2007, xlsb), либо же сравнить оригинальную и залатанный Excel на предмет поиска различий. Сравнивать лучше всего Excel Viewer. Он и бесплатный и весит всего несколько метров,​ так что разобраться будет нетрудно. Просто идем на http://​download.microsoft.com/​download/​9/​e/​f/​9ef13e5d-2116-40de-ab97-310811f0f3ca/​xlviewer.exe,​ устанавливаем Excel Viewer на виртуальную машину,​ делаем бэкап всех файлов,​ качаем патч: http://​download.microsoft.com/​download/​c/​a/​8/​ca83a37c-2760-439e-9a5c-11485f260bac/​office2003-KB951589-FullFile-ENU.exe,​ устанавливаем и смотрим различия,​ которые в наглядном виде отображает бесплатный PatchBiff (полноценный аналог коммерческого BinDiff'​а,​ стоящего немерянных денег):​ http://​cgi.tenablesecurity.com/​tenable/​dl.php?​p=patchdiff2-2.0.3.zip
 +
 +**targets**:​CVE-2008-3004:​ Excel 2K SP3, 2K2 SP3, 2K3 SP2/​SP3,​ Excel Viewer 2003;\\ CVE-2008-3005:​ Excel 2K SP3, 2K2 SP3,\\ CVE-2008-3006:​ Excel 2K SP3, 2K2 SP3, 2K3 SP2/​SP3,​ 2K7, 2K7 SP1, Viewer 2003/SP1;\\ CVE-2008-3003:​ Excel 2K7, 2K7 SP1;
 +
 +exploits:​сплоиты находятся в стадии активной разработки и пишутся мыщхъхем по заказу Endeavor Security, Inc для тестирования набора сигнатур,​ крупнейшим поставщиком которого она, собственно говоря,​ и является. поскольку,​ никакие права фирме не передается,​ то после выпуска сигнатур exploit'​ы вместе с исходным кодом будут опубликованы и выложены на мыщъхином сервере:​ http://​nezumi.org.ru/​souriz/​hack/;​
 +
 +solution:​установить заплатки от Microsoft, доступные всем желающим (т.е. без проверки подлинности лицензии по адресу):​ http://​www.microsoft.com/​technet/​security/​bulletin/​ms08-043.mspx;​
 +
 +{{exploit-review-0x1b_Image_0.png?​552}}
 +
 +Рисунок 1 запись AxesSet в официальной спецификации XLS формата от Microsoft даже не упоминается,​ между тем она есть!!!
 +
 +===== MS PowerPoint – множественные ошибки =====
 +
 +**brief**:​в PowerPoint'​е найдено 3 критических ошибки,​ допускающих удаленный захват управления,​ что реально высаживает на измену. Если .xls файлы из сети качают немногие,​ а по почте получают их в основном от более или менее доверенных лиц, то ситуация с .ppt прямо противоположная. В сети болтаются тысячи презентаций в PowerPoint форматеи не качать их просто невозможно. К счастью для честных тружеников клавиатуры и к большому хакерскому огорчению,​ две из трех ошибок воздействуют только на редко кем используемый PowerPoint Viewer, зато третья распространяется на все версии Офиса, допуская передачу управления на shell-код со всеми вытекающими отсюда последствиями. Но не будем забегать вперед и начнем излагать материал по порядку. Первая уязвимость (CVE-2008-0120) связана с классической ошибкой строкового переполнения MFC CSting, выделяющей память в куче, а куча это такое дело… достаточно хорошо защищенное в последних версиях XP и Висле, а потому,​ чтобы забросить на целевую машину shell-код хакеру придется изрядно потрудиться. Технически подробности (из уст первооткрывателя дыры) находятся на: http://​labs.idefense.com/​intelligence/​vulnerabilities/​display.php?​id=739.\\ Вторая ошибка (CVE-2008-0121),​ кстати сказать,​ обнаруженная тем же самым исследовательским коллективом,​ очень похожа на первые три ошибки в Excel'​е – отсутствие проверки границ массива при обработке индексов,​ выход за пределы которого в данном случае дает замечательную возможность перезаписи указателей на виртуальные функции,​ что обеспечивает быстрый и надежный захват управления,​ к сожалению,​ работающий только под PowerPoint Viewer'​ом. Ну и у кого же, интересно,​ он установлен?​! Впрочем,​ почитать об этой дыре не помешает:​ http://​labs.idefense.com/​intelligence/​vulnerabilities/​display.php?​id=738\\ Третья дыра, затрагивающая все версии Офиса, проходит под номером CVE-2008-1455 и связана с ошибкой парсинга .ppt файлов,​ вызывая традиционное переполнение буфера с возможностью захвата управления. Подробностей о ней известно немного и мыщъх все еще ковыряется дизассемблером,​ испытывая жуткую нехватку новых версий Офиса, за которыми он буквально через считанные часы улетает в Москву,​ ибо в окрестностях мыщъхиной норы такие вещи не купишь,​ ну а пока мыщъх летает,​ можно почитать те огрызки инфы, что есть: http://​www.securityfocus.com/​bid/​30579/​info;​
 +
 +targets:​CVE-2008-0120:​ PowerPoint Viewer 2003;\\ CVE-2008-0121:​ PowerPoint Viewer 2003;\\ CVE-2008-1455:​ PowerPoint 2K SP3, 2K2 SP3, 2K3 SP2/​SP3,​ 2K7, 2K7 SP1, Viewer 2K3;
 +
 +exploits:​сплоиты находятся в стадии активной разработки и пишутся мыщхъхем по заказу Endeavor Security, Inc для тестирования набора сигнатур,​ крупнейшим поставщиком которого она, собственно говоря,​ и является. поскольку,​ никакие права фирме не передается,​ то после выпуска сигнатур exploit'​ы вместе с исходным кодом будут опубликованы и выложены на мыщъхином сервере:​ http://​nezumi.org.ru/​souriz/​hack/​
 +
 +{{exploit-review-0x1b_Image_1.png?​552}}
 +
 +Рисунок 2 официальная информация по дырам в PowerPoint'​е от Microsoft
 +
 +solution:​установить заплатки от Microsoft, доступные всем желающим (т. е. без проверки подлинности лицензии по адресу):​ http://​www.microsoft.com/​technet/​security/​bulletin/​ms08-051.mspx;​ исследователям на заметку:​ в разных версиях Офиса обновляются разные файлы, список которых представлен ниже в таблице 1. Сам же формат .ppt файлов берется с официального сайта Microsoft: http://​download.microsoft.com/​download/​0/​B/​E/​0BE8BDD7-E5E8-422A-ABFD-4342ED7AD886/​PowerPoint97-2007BinaryFileFormat(ppt)Specification.pdf;​
 +
 +|**Microsoft Office PowerPoint 2007**|||||
 +|**File name**|**File version**|**File size**|**Date**|**Time**|
 +|Powerpnt.exe|12.0.6300.5000|467,​496|13-Dec-2007|06:​42|
 +|Msppt.olb|12.0.6300.5000|265,​792|07-Dec-2007|07:​17|
 +|Ppcore.dll|12.0.6307.5000|7,​998,​504|16-Mar-2008|08:​12|
 +|Pptpia.dll|12.0.6300.5000|250,​928|07-Dec-2007|07:​17|
 +|**Microsoft Office PowerPoint 2007 converter**|||||
 +|**File name**|**File version**|**File size**|**Date**|**Time**|
 +|Pptcnv.dll|12.0.6320.5000|1,​768,​448|18-Jun-2008|16:​46|
 +|Pxbcom.exe|12.0.6300.5000|71,​744|07-Dec-2007|07:​17|
 +|**Microsoft Office PowerPoint 2003**|||||
 +|**File name**|**File version**|**File size**|**Date**|**Time**|
 +|Powerpnt.exe|11.0.8227.0|6,​421,​512|04-Jul-2008|01:​33|
 +|**Microsoft Office PowerPoint Viewer 2003**|||||
 +|**File name**|**File version**|**File size**|**Date**|**Time**|
 +|Pptview.exe|11.0.8164.0|1,​661,​280|19-Apr-2007|13:​49|
 +|Gdiplus.dll|11.0.8165.0|1,​701,​216|30-Apr-2007|14:​43|
 +|Intldate.dll|11.0.5510.0|64,​064|14-Jul-2003|22:​57|
 +|Ppvwintl.dll|11.0.8161.0|131,​424|22-Mar-2007|19:​05|
 +|Pvreadme.htm|Not Applicable|4,​189|19-Jun-2008|12:​24|
 +|Saext.dll|11.0.8161.0|218,​456|22-Mar-2007|19:​25|
 +|Unicows.dll|1.0.3703.0|246,​424|30-Oct-2002|12:​21|
 +|**Microsoft PowerPoint 2002**|||||
 +|**File name**|**File version**|**File size**|**Date**|**Time**|
 +|Powerpnt.exe|10.0.6842.0|6,​095,​880|06-May-2008|17:​13|
 +|**Microsoft PowerPoint 2000**|||||
 +|**File name**|**File version**|**File size**|**Date**|**Time**|
 +|Powerpnt.exe|9.0.0.8969|4,​259,​892|26-Mar-2008|00:​55|
 +
 +Таблица 1 файлы PowePoint'​а,​ обновляемые заплаткой от MS
 +
 +===== MS Officegraph filters — множественные ошибки =====
 +
 +brief:​набор графических фильтров,​ используемых всеми приложениями Офиса, так же не свободен от ошибок,​ и этих ошибок там просто тьма. Последнее обновление от Microsoft, выпущенное 12 августа сразу затыкает 5 крупных дыр, связанных с дефектами обработки файлов следующих форматов:​ WPG, EPS, PICT и BMP, причем в простеньком PICT обнаружено сразу две дыры! Это же надо было так постараться! Где же они такую траву берут?​! И ведь даже не отсыпают! Допустить столько ляпов на трезвую голову… Ну, в Microsoft последнее время вообще много индусов. А в Индии растет нереально термоядерная трава, срывающая крышу так, что после этого ошибки переполнения в BMP уже никого не удивляют. BMP-уязвимости присвоен номер CVE-2008-3020,​ а гнездится она в BMPIMP32.FLT файле, считывающим BMP заголовок,​ содержащий среди прочего количество цветов,​ при превышении которого происходит разрушение кучи, допускающее возможность захвата управления по вполне стандартному сценарию:​ labs.idefense.com/​intelligence/​vulnerabilities/​display.php?​id=736,​ после подробно описывать дыры в остальных форматах мыщъх'​у откровенно лениво,​ поэтому,​ ограничимся тем, что перечислим их номера. CVE-2008-3019 — отвечает за ошибку в EPS, дыры в PICT награждены номерами CVE-2008-3018 и CVE-2008-3021 (по одному номеру на каждую дыру), а WPG (так же вызывающий контролируемое разрушение кучи) проходит под номером CVE-2008-3460 и уже довольно детально исследован хакерами:​ labs.idefense.com/​intelligence/​vulnerabilities/​display.php?​id=736.
 +
 +targets:​MS Office 2K SP3, Office XP SP3,​ Office 2K3 SP2,​ Office Project 2K2 SP1, MS Works 8;
 +
 +exploits:​сплоиты находятся в стадии активной разработки и пишутся мыщхъхем по заказу Endeavor Security, Inc для тестирования набора сигнатур,​ крупнейшим поставщиком которого она, собственно говоря,​ и является. поскольку,​ никакие права фирме не передается,​ то после выпуска сигнатур exploit'​ы вместе с исходным кодом будут опубликованы и выложены на мыщъхином сервере:​ http://​nezumi.org.ru/​souriz/​hack/;​
 +
 +{{exploit-review-0x1b_Image_2.png?​552}}
 +
 +Рисунок 3 техническая информация о дыре на сайте iDefenseLabs
 +
 +solution:​установить заплатки от Microsoft, доступные всем желающим (т.е. без проверки подлинности лицензии по адресу):​ http://​www.microsoft.com/​technet/​security/​bulletin/​ms08-044.mspx,​ если же заплатку по каким-либо причинам устанавливать не хочется,​ то можно воспользоваться временным обходным решением. Делается это так. Открываем папку \Program Files\Common Files\Microsoft Shared\Grphflt\,​ находим там файл имя_фильтра.ftl (например,​ для BMP это будет BMPIMP32.FLT),​ переименовываем его, например,​ в BMPIMP32.FLT_,​ после чего создаем пустой файл BMPIMP32.FLT. Несмотря на отсутствие фильтра BMP будет можно по прежнему импортировать в Офис (т. к. там в дополнение к набору фильтров имеются и внутренние конверторы),​ продолжив работать в безопасности,​ сухости и комфорте. Про остальные файлы такого сказать нельзя,​ однако,​ в реальной жизни они уже давно не встречаются,​ а вот подхватить "​заразу",​ заботливо подкинутую хакером с преднамеренно переименованным расширением,​ уже не получится. У нас против нее иммунитет по типу вырезанных гланд (удаленных графических фильтров). Решение,​ конечно,​ радикальное,​ но, учитывая,​ что это не первая и, очевидно,​ далеко не последняя заплатка от Microsoft, то радикальные меры оказываются намного более предпочтительными.
 +
 +{{exploit-review-0x1b_Image_3.png?​552}}
 +
 +Рисунок 4 http://​blogs.technet.com/​swi/​ — один из немногих Microsoft блогов снабжающий нас действительно объективной информации о безопасности
 +
 +===== >>>​ врезка:​ знаете ли вы что? =====
 +
 +Свершилось! Компания Tenable-Security взяла и выпустила некоммерческий аналог знаменитого коммерческого BinDiff'​а от Zynamics, обозвав его PatchDiff'​ом,​ причем,​ не просто выпустила,​ а даже обогнала его по функциональности. Что такое BinDiff и зачем он вообще нужен, когда есть куча всяких fc.exe, сравнивающих бинарные файлы, а WinDiff замечательно сравнивает текстовые. Казалось бы, ничего нового тут не придумаешь… На самом деле, BinDiff совсем не тоже самое, что fc.exe. Во-первых,​ это не самостоятельный продукт,​ а plug-in для IDA-Pro, а, во-вторых,​ он сравнивает файлы довольно изощренным образом,​ работая на высоком абстрактом уровне. Анализируя поток управления (со всеми ветвлениями) он разбивает его на блоки и, игнорируя мелкие различия,​ занимается поиском масштабных изменений,​ отыскивая похожие или полностью идентичные функции,​ что очень полезно при анализе заплаток. Ведь чтобы написать рабочий exploit, необходимо знать какая именно дыра была заткнута,​ а для этого необходимо "​запеленговать"​ измененный код. Побайтовое сравнение ничего не дает, поскольку заплатка представляет собой полностью перекомпилированный файл, причем,​ как правило с другими ключами оптимизации или даже совершенно другой версией компилятора. Короче,​ смещения всех функций "​уплывают",​ а в самом коде обнаруживается огромное количество несущественных изменений,​ "​ослепляющих"​ тривиальное побайтовое сравнение. Зато анализ потока управления (в смысле ветвлений) рулит только так. Конечно,​ без ложных срабатываний не обходится,​ но дополнительные проверки и другие подобные изменения обнаруживаются без всякого труда, причем визуализируются в наглядной графической форме. Скачать PatchDiff можно в любое время дня и ночи: http://​cgi.tenablesecurity.com/​tenable/​dl.php?​p=patchdiff2-2.0.3.zip. ​
 +
 +{{exploit-review-0x1b_Image_4.png?​553}}
 +
 +Рисунок 5 PatchDiff в действии
 +
 +===== >>>​ врезка:​ знаете ли вы что? =====
 +
 +15 февраля 2008 года, Microsoft выложила в открытый доступ достаточно полную спецификацию формата бинарных файлов,​ используемых в Офисе версий 97-2007, что радует как создателей бесплатного программного обеспечения,​ вынужденных поддерживать эти форматы в своих приложениях,​ так и хакеров,​ у которых буквально крышу срывает от радости. Вряд ли стоит объяснять насколько упрощается анализ заплаток на тот же MS Word при наличии спецификации на .doc, но даже и без всяких заплаток — теперь можно осознанно экспериментировать с различными полями,​ пытаясь добиться их переполнения,​ что совсем нетрудно. А чем еще можно объяснить взрывной рост дыр, обнаруживаемых в Офисе с конца зимы этого года?! Если раньше хакерам приходилось блуждать впотьмах,​ то теперь все тайное стало явным! Впрочем,​ не стоит обольщаться. Microsoft изменила бы самой себе, если бы не оставила кучу недокументированных возможностей,​ кстати говоря,​ уже известных конкурентам и успешно поддерживаемых пакетом OpenOffice, исходные тексты которого окажутся замечательным подспорьем к документации,​ выложенной на http://​www.microsoft.com/​interop/​docs/​officebinaryformats.mspx#​EAB.
 +
 +{{exploit-review-0x1b_Image_5.png?​553}}
 +
 +Рисунок 6 невероятно,​ но факт! теперь спецификация на формат Офисных файлов открыта для всех желающих
 +
 +