ÃÂÕáÛãçÃÂÙÃÂÞ CUDA ØÔÕÃÂœ? phpMyAdmin - Xakep Online
ÃÂÕáÛãçÃÂÙÃÂÞ CUDA ØÔÕÃÂœ? phpMyAdmin - Xakep Online
ÃÂÕáÛãçÃÂÙÃÂÞ CUDA ØÔÕÃÂœ? phpMyAdmin - Xakep Online
Create successful ePaper yourself
Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.
взлом<br />
обзор<br />
эксплоитов<br />
обзор<br />
эксплоитов<br />
обзор<br />
эксплоитов<br />
Если «отдебажить» парсинг .maki-файла, то мы получим следующую<br />
картину:<br />
ор<br />
плоитов<br />
НИ К ЧЕМУ НЕ ОБЯЗЫВАЮЩИЙ ЭКСПЛОЙТ ДЛЯ WINAMP<br />
.text:12094F62 loc_12094F62:<br />
.text:12094F62 mov ax, [ebx]<br />
.text:12094F65 movsx edi, ax ; sign extension<br />
.text:12094F68 inc ebx<br />
.text:12094F69 push edi ; Size<br />
.text:12094F6A inc ebx<br />
.text:12094F6B lea eax, [ebp+MultiByteStr]<br />
.text:12094F71 push ebx ; Src<br />
.text:12094F72 push eax ; Dst, buffer is located in the<br />
stack<br />
.text:12094F73 call memmove<br />
ор<br />
плоитов<br />
ор<br />
плоитов<br />
ор<br />
плоитов<br />
ор<br />
плоитов<br />
ор<br />
плоитов<br />
ор<br />
плоитов<br />
04<br />
WINAMP BUFFER OWERFLOW<br />
MULTIPLE EXPLOITS<br />
>> Brief:<br />
На этот раз не обошлось без музыкальных жертв — под прицел багоискателей<br />
попал самый популярный Windows-player — Winamp от Nullsoft.<br />
За один лишь месяц в нем было найдено две громких уязвимости, о<br />
которых я спешу тебе рассказать.<br />
1. Как я уже писал, все продукты базируются на каких-либо компонентных<br />
библиотеках. И если в софте практически идеальный код, то уязвимость<br />
может находиться во вспомогательной библиотеке. Особенно<br />
тяжело положение, если исходники библиотеки закрыты (с одной стороны,<br />
сложно найти уязвимость, но с другой — никто от нее в принципе не<br />
застрахован :)). Но в случае с Winamp — баг тривиален. Умельцы нашли<br />
изъян в функциях «voc_read_header()» и «aiff_read_header()», принадлежащих<br />
библиотеке «libsndfile» и читающих заголовки «.voc»- и «.aiff»-<br />
файлов (по-видимому, обе функции написаны по одному алгоритму).<br />
Если верить экспертам, в этих функциях содержится код, приводящий к<br />
переполнению динамической памяти. Как следствие, любой желающий<br />
может создать «.voc» или «.aiff»-файл со специальным заголовком, после<br />
чего Winamp послушно выполнит произвольный системный код.<br />
К сожалению, все ограничилось словами, и сплойт никто так и не выложил.<br />
Однако у тебя имеется вся информация к размышлению, чтобы<br />
написать собственный сплойт (перерывай старые подшивки журнала и<br />
смотри статьи Криса — по подобным наводкам он это делал не раз ;)).<br />
2. Ответь мне на простой вопрос: «Любишь ли ты скины Winamp, как люблю<br />
их я?». На самом деле, шучу, но было время, когда я часами изучал<br />
различные шкурки от проигрывателя, останавливаясь на самом лучшем.<br />
Думаю, и сейчас есть фанаты модных скинов... Гхм, к чему это я? :) Короче<br />
говоря, совсем недавно обнаружили возможность переполнения буфера<br />
в парсере «MAKI» (библиотека gen_ff.dll). Maki — это, собственно, и есть<br />
скрипты Winamp’а, образующие скин (привязку кнопок, функционал<br />
и т.п.). Если углубиться в технические подробности, будет понятно, что<br />
механизм парсинга .maki состоит в последовательном чтении двух байт,<br />
отвечающих за длину. Если чуть увеличить эту длину, произойдет... правильно<br />
— переполнение стека и аварийное завершение программы. А<br />
если чуток подумать и увеличить длину с умом, мы добьемся перезаписи<br />
адреса возврата и выполнение произвольного системного кода. Что и<br />
происходит в эксплойте.<br />
payload = "\x41»*16756<br />
payload += "\x74\x06\x90\x90"<br />
payload += "\x32\x55\xF0\x12" # universal p/p/r in_mod.<br />
dll<br />
payload += shellcode # calc shellcode from metasploit<br />
В этом фрагменте эксплойта происходит смещение строки на адрес<br />
шелл кода, который успешно вызовется после обработки .maki-файла.<br />
.text:120951E5 loc_120951E5:<br />
.text:120951E5 mov edi, [ebx]<br />
.text:120951E7 add ebx, 4<br />
.text:120951EA mov ax, [ebx]<br />
.text:120951ED movsx esi, ax ; sign extension<br />
.text:120951F0 inc ebx<br />
.text:120951F1 push esi ; Size<br />
.text:120951F2 inc ebx<br />
.text:120951F3 lea eax, [ebp+var_10144]<br />
.text:120951F9 push ebx ; Src<br />
.text:120951FA push eax ; Dst, buffer is located in the<br />
stack<br />
.text:120951FB call memmove<br />
Все испытания проводились на скине от «Big Bento», который ты<br />
можешь найти на официальном сайте. Файл mcvcore.maki находится в<br />
«PROGRAMFILES/Winamp/Skins/Bento/Scripts». А теперь подумай, что<br />
будет, если аккуратно впарить якобы крутой скин своему сотоварищу?<br />
Правильно! Но я тебе этого не говорил :).<br />
>> Targets<br />
Уязвимыми считаются:<br />
1. Библиотека «libsndfile» до версии Solution<br />
Зайди на «winamp.com» и обновись до последнего релиза. Благодаря<br />
своевременному оповещению разработчиков, баг был исправлен в тот<br />
же день. Хорошо это или нет — не знаю, но в любом случае в Сети еще<br />
осталось огромное количество уязвимых версий.<br />
>> Exploit:<br />
По первому багу, как я уже сказал, эксплойта никто не предоставил. Зато<br />
по второму — их целых два. Один написан на Си (securitylab.ru/poc/<br />
extra/380450.php), а второй на Питоне (securitylab.ru/poc/extra/380454.<br />
php).<br />
05<br />
PHP > Brief:<br />
Нашлась дырка и в самой свежей версии PHP, позволяющая<br />
осуществить обход ограничений «safe_mode». Напомню, что<br />
взведенная в php.ini опция «safe_mode» не позволяет инклудить<br />
файлы, выполнять системные вызовы и т.п. Но багоискатели<br />
нашли способ выполнения команд при включенном<br />
052<br />
XÀÊÅÐ 07 /127/ 09