Обзор эксплойтовАндрей «Skvoz» Комаров Многочисленные уязвимости в продуктах OracleBriefОчередным ежеквартальным обновлением специалисты из Oracle прикрыли около 40 брешей в своих продуктах. Все из них классифицируются удаленной эксплуатацией и затрагивают такие маститые проекты, как: WebLogic Server 7.0/8.0/10.0, Oracle 9i/10g/11g, E-Business Suite 11i и многие другие. Пару лет назад, после заявления Ларри Эллисона о том, что детища его компании носят титул «unbreakable», хакеры доказали, что он поторопился с выводами. Отметим, что почти все ниже перечисленные багги, имеют достаточно высокие критерии по риску (степени критичности). По подсчету CVSS2 Risk Score - Microsoft Windows (10) / Linux и Unix (7,5). Кособокость всех продуктов Oracle состоит из навороченности, при которой зачастую не соблюдаются простые истины. Выполнение произвольного кода в Oracle Secure Backup (10.1.0.3 <- 10.2.0.2)Уязвимость найдена в сценарии авторизации (login.php). Он входит в поставляемый с сервером хранения резервных копий PHP-фронтенд, поэтому уязвимость можно назвать кроссплатформенной, вне зависимости от того, под какой ОС будет установлен сервер. Передающиеся данные с login.php напрямую отправляются утилите obt.exe. При этом не осуществляется никаких проверок на ограничение и контент данных, в чем можно убедиться, проанализировав исходный код:
TargetsВся линейка операционных систем, под которые написан сей продукт. ExploitЭксплуатация вполне наглядна – в том месте, где мы имеет доступ к серверу и минимальные права, можно создать собственный сценарий и попробовать что-либо исполнить. Неавторизированное создание файла выполняется следующим ядовитым линком: SolutionСамое простое решение проблемы – отключить WEB-сервер, не забыв о вышедших обновлениях. В версии 10.2.0.3 брешь устранена. Переполнение буфера в компоненте «Apache Connector» Oracle BEA WebLogic ServerBriefПутем посылки специально сформированного HTTP-пакета фиксированной длины злоумышленник может удаленно нарушить корректную работу WEB-сервера. Успешная реализация приводит к DoS-атаке. На Java достаточно обратиться с помощью POST-запроса к /.jsp с достаточно длинным параметром. Реализация атаки в псевдо-коде будет примерно следующей:
TargetsBEA WebLogic Server 6.x,7.x,8.x,9.x, 10.x ExploitОдним из первых авторов, обнаруживших уязвимость задолго до публичного релиза (в июле 2008), стал товарищ KingCope. Боевой эксплоит можно найти здесь – milw0rm.com/exploits/6089. Solution Установить на сервер специальный плагин и радоваться жизни: TeamSpeak Server <= 2.0.23.17 remote read fileBriefПервыми, заметившими проблему, были люди из Heise-Security (heise-online.co.uk/security/Vulnerability-in-TeamSpeak-2-server--/news/93734), но в паблик никакой подробной информации они не пустили. В итоге, наш соотечественник c411k расковырял этот сервис и выпустил на потеху народу опасный эксплоит. Опасность заключается в том, что при непосредственном взаимодействии с TeamSpeak возможно чтения локальных файлов на сервере. Так, если TS установлен на сервере, который админится через PLESK/Cpanel, то при грамотном раскладе у хакера будет возможность прочитать их конфиги и влезть в саму панель. TS открывает по умолчанию три TCP-порта:
Все бы ничего, да при выводе справки «help ver» читает файл из папки ./tcpquerydocs/ ver.txt. Существует возможность изменить параметр в этом обращении и прочитать конкретный файл на системе. Пример:
Особый интерес для чтения могут представлять файлы: TargetsОписанные версии на платформах Windows/Linux/Unix. ExploitПолноценный эксплоит можно найти на форуме Antichat.ru (forum.antichat.ru/showthread.php). SolutionОзнакомиться с рекомендациями разработчиков и установить соответствующий патч можно здесь - forum.teamspeak.com/showthread.php?t=38515. Microsoft HTML Workshop <= 4.74 Universal Buffer OverflowBriefИнтересное переполнение буфера, демонстрирующее новый метод в эксплуатации – «shellhunting», благодаря которому эксплоит универсально исполняется на 2k, XP, Vista . По сути, «shellhunter» – это просто участок кода, обладающий некой хитростью. Шелл-код ставит SEH-обработчик:
Баг присутствует из-за неправильной обработки заголовка файла. Все управление при ее исполнении передается на «Shellhunter».
По идее, сюда можно было бы сразу впихнуть шелл-код, но это не есть хорошо, – шелл-код может не уместиться по размеру. «Shellhunter» ищет в памяти приложения, наша задача – просканировать память на заведомо известные сигнатуры, которые задаются в самом начале эксплоита:
Можно было бы сделать эксплоит под какую-то одну из версий Windows, но был бы он универсальным? Чтобы переполнить буфер, в конкретно заданном примере требуется всего 280 байт. Соответственно, такого места просто недостаточно для импорта reverse/bind шелл-кода. Сканирование памяти:
В этом коде сравнивается значение памяти по адресу в edi с 24242424 и 42424242.
Теперь – в eax 424242. Далее сравниваем:
Если совпало - берем следующее число: Умножаем eax на 2 (получаем 484848). Если опять совпало - берем другое: Итог: если в программе возникает исключение, «Shellhunter» устанавливает seh-handler (такой участок кода, на который будет передана обработка) – а исключения у нас возникают, когда «shellhunter» попадает в несуществующие участки памяти при сканировании на предмет поиска shellcode, в чем можно убедиться из примера. Кстати, при анализе эксплоита я пошел от противного. Сначала можно просто запустить эксплоит, получив на выходе файл. Затем, с помощью стандартной утилиты (
Грузим программу в OllyDbg, вводим адрес начала секции данных и переходим туда (ПКМ -> New Origin Here). Такой прием позволит встать строго на начало шелл-кода. TargetsWindows 2k, XP, Vista ExploitЭксплойт можно слить по адресу http://milw0rm.com/exploits/7727. Он генерирует файл определенного формата (s.hpp). При реверсе формата опознается примерно следующим образом:
Уязвимость затрагивает секцию OPTIONS в параметре Index File. SolutionВ настоящий момент уязвимость неустранима. Раскрытие данных при хранении графических изображений на шифрованных контейнерахBrief Эскизы (thumbnails) — уменьшенные изображения, дающие приблизительное представление об их оригиналах. В Windows ME/2000/XP/2003 эскизы хранились в файлах Thumbs.db, которые находились в директориях с графическими файлами. Начиная с Windows Vista, эскизы хранятся централизованно для каждого пользователя. Аналогичная система хранения эскизов присутствует во множестве окружений рабочего стола для Unix-like систем (например, GNOME). Сейчас будут рассмотрены особенности баз данных эскизов в Windows Vista и в среде GNOME (Linux) при работе с зашифрованными файловыми системами. Файл «thumbcache_idx.db» является индексом всей базы данных — в нем хранится информация о соответствии эскизов в файлах «thumbcache_NN.db» с файлами на различных файловых системах. Этот файл начинается со строки «IMMM». Файл «thumbcache_NN.db» содержит в себе эскизы и начинается со строки «CMMM». Эскизы хранятся в различных форматах, например, BMP и PNG, в «пачках» (chunks) данных – с целью исключения фрагментации. Цифра «NN» в имени файла обозначает размер (в пикселях) большей стороны эскиза. Стоит отметить, что в базе данных эскизов отсутствует явная информация о путях к файлам, которым соответствует тот или иной эскиз. Вместо пути используется специальный идентификатор, который описывает исходный файл в системе. В механизме генерации эскизов в Windows Vista были обнаружены следующие особенности:
Подобные особенности приводят к тому, что мы получаем:
Проведенные тесты показали, что следующие продукты позволяют Windows создавать эскизы графических файлов, расположенных на зашифрованных файловых системах (сам эскиз при этом хранится на незашифрованном системном разделе):
Для извлечения эскизов из базы данных можно использовать как специализированные продукты (например, DM Thumbs — www.dmthumbs.com), так и программное обеспечение, предназначенное для извлечения файлов по их внутренней структуре (например, foremost – http://foremost.sf.net и hachoir-subfile – http://hachoir.org). В среде GNOME эскизы графических файлов хранятся в домашней директории пользователя ( Держи дамп эскиза, созданного для графического файла на примонтированном контейнере TrueCrypt: Дамп эскиза, созданного для графического файла на CD: Дамп эскиза, созданного для графического файла теперь можно наглядно лицезреть локально на своем компьютере в подлинном виде, что говорит о дефекте в хранении графических изображений на современных операционных системах. Автором данной уязвимости в ПО для крипо-защиты является Максим Суханов (fuf@itdefence.ru). Шлем ему всяческие респекты и пожелания :). |