12.07.2015 Views

img - Xakep Online

img - Xakep Online

img - Xakep Online

SHOW MORE
SHOW LESS
  • No tags were found...

You also want an ePaper? Increase the reach of your titles

YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.

ВЗЛОМAcrobat Reader. Эксплойт сработал как часы. SWF-файл внутри PDFcorelanc0d3r, выпустил недавно свой 10-й туториал о том, как писатьсовременные эксплойты, используя технику возвратно-ориентированногопрограммирования. Неудивительно, что и этот эксплойтоснован на той же идее.EXPLOITДанный эксплойт создает файл плейлиста cst-blazedvd.plf, при открытиикоторого с помощью BlazeDVD Player выполнится фирменныйшеллкод — вызов MessageBoxA с сообщением о том, что «хак» удался:). Трудности такого эксплойта в Windows 7 две. Во-первых, память,где лежит у нас шеллкод (а лежит он в стеке) является неисполняемой,поэтому шеллкод не имеет никакого морального права выполниться.Вторая проблема — адрес функции MessageBox нам неизвестен, таккак все системные библиотеки в Windows 7 имеют случайный сдвиготносительного базового адреса. Таким образом, после перехватауправления (а именно — перезаписи SEH в стеке), эксплойт долженкак-то сделать стек исполняемым, например, с помощью вызовафункции VirtualProtect, а еще должен как-то определить адресаиспользуемых функций (VirtualProtect/MessageBox). Если ты читалпредыдущие номера, то в курсе, что такое ROP, и с чем его едят. Еслинет, то напомню — после завершения работы уязвимая функция беретиз стека переписанный нами адрес возврата. Этот адрес указывает нанекий участок исполняемой памяти с некими нужными инструкциями,обычно их одна-две штуки. Эти нужные инструкции в идеале должнызаканчиваться командой RETN, которая берет следующий адрес изстека, который также втиснут туда при переполнении буфера. Такимвот путем выполняется код, как бы из кусочков чужого кода. mr_meправильно заметил, что если брать такой код из библиотек самого плеера,то даже несмотря на наличие ASLR код всегда будет находитьсяпо одному и тому же адресу. Дело в том, что плеер скомпилирован безподдержки ASLR, и поэтому все его модули всегда грузятся по одномуи тому же адресу (со следующего номера я уже не буду подробно расписыватьROP, иначе Forb меня загрызет за трату ценной бумаги натакую избитую тему (и правильно сделает — прим. ред.)). Нетривиальнойбыла и задача заставить этот ROP работать. Ведь в чем штука: вовремя обработки SEH блока стек содержит лишь адреса на обработчики следующий блок. Все остальное в стеке далеко от ROP программы.mr_me нашел в статичных модулях адрес смены значения вершиныстека. Тогда процессор переходит по этому адресу (думая, что тамобработчик) и выполняет изменение указателя на вершину стека:BlazeDVD. Результат открытия плейлистапосвященной разработке эксплойта (который уже успел стать классическим...черт, себя не похвалишь, никто же...) с использованиемвозвратно-ориентированного программирования. Все. Больше о ROPне говорю. Ну и, конечно, эксплойт с комментариями ищи на диске.SOLUTIONЧто делать пользователям, понятное дело — обновить плеер. А вотпрограммистам надо бы быть аккуратнее. Учитывая то, что от ошибокникто не застрахован, особенно не стоит пренебрегать /dinamicbase /G S-флагами при компиляции. И еще — в связке с SehOP все это добропозволит перестраховаться и сохранить честь, так как такой тандемпрактически не пробиваем.03CVECVE-2010-1297ОШИБОЧНАЯ ОБРАБОТКАУКАЗАТЕЛЯ В FLASH PLAYERTARGETS• Adobe Acrobat Reader < 9.4• Adobe Flash Player < 10.1BRIEFВ очередной раз мир поразила 0day-угроза для любителей продукцииAdobe. А куда деваться? Темная сторона Силы нашла уязвимость вобработке байткода SWF Flash. Что примечательно, эксплойт, разработанныйтьмой, был заточен и под Acrobat Reader. Фича в том, чточиталка поддерживает воспроизведение флеш-анимации, а отсюда ипоследствия — атака сразу на два продукта. Эксплойт этот был разреверсени добавлен в Metasploit. Так что добро пожаловать...0x616074AE : ADD ESP, 4080x616074B4 : RETN 4; ÐÎÏ âîññòàíîâëåí, áåðåì àäðåñ è äâèãàåì ïî öåïî÷êåТаким образом, ROP-программа исполняется дальше, так как RETN4 берет из уже изменившегося стека значения, подсунутые mr_me.Более подробно о работе ROP можешь прочитать в моей статье,EXPLOITПытаясь разобраться в том, откуда пришла проблема, исследователиобратили внимание на то, что SWF-файл, который использовался дляэксплуатации уязвимости и заражения бедных юзеров, был практическиидентичен файлу AES-PHP.swf, который есть в свободном доступев Сети. Собственно, отличие было лишь в одном байте, а именно— в оригинальном файле байт-код 0x66 (GetProperty) заменен на044 XÀÊÅÐ 08 /139/ 10

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!