Обзор эксплоитовАндрей Комаров (ITDefence, komarov@itdefence.ru) Сводка новых уязвимостей этого месяца опять перед тобой. Удивительно, но факт, меньше их по сравнению с предыдущими месяцами не стало. Вообще, это очевидно, ведь тенденции злоумышленника всегда опережают разработчиков, тем самым поддерживая баланс между выпускающим ресурсом и подавляющим. Обход авторизации в продукте резервного копирования OracleBRIEFOracle Secure Backup представляет собой технологию централизованного управления резервного копирования на ленточные накопители. Отличительная особенность продукта в том, что процесс резервирования может происходить без использования ресурса мощностей (server-less) посредством прямого копирования данных с физического ленточного носителя по протоколу NDMP. EXPLOITПо словам разработчиков, в средах сетей хранения данных (Storage Area Network, SAN) решение Oracle Secure Backup обеспечивает высокий показатель использования ленточных накопителей путем их динамического «разделения» между несколькими медиа-серверами. Стоимость лицензии Oracle Secure Backup составляет $3,5 тыс. в расчете на один ленточный накопитель, включая защиту данных для неограниченного числа серверов, устройств NAS и баз данных Oracle. Сам понимаешь, какие суммы могут накапать в хорошо развернутой сетевой инфраструктуре, где одной лентой уж точно не обойдешься. Обход авторизации позволяет несанкционированно получать доступ к резервируемым ресурсам, а также исполнять команды на целевой системе. Свет долгое время не мог увидеть подробностей уязвимости, так как афиширована она была сугубо вендорскому полю зрению и компаниям-разработчикам IPS/IDS и антивирусных решений для отслеживания соответствующих аномальных действий при анализе трафика. По сути, уязвимость подразделяется на две составляющих, которые по логике и были задокументированы в базе CVE, им выданы следующие номера: «Unspecified vulnerability in the Oracle Secure Backup component in Oracle Secure Backup 10.2.0.3 allows remote attackers to affect confidentiality, integrity, and availability via unknown vectors». Эксплуатация осуществляется в два этапа. Сначала злоумышленником получается валидная сессия, которую генерирует движок WEB-интерфейса системы:
Теперь остается только перейти к делу! Настоящий эксплоит по неавторизированному выполнению команд пишется в три строки:
Финальной строкой мы просто убеждаемся, что вывод команды показал название версии СУБД и платформы. Полный сценарий для эксплуатации можно скачать здесь: downloads.securityfocus.com/vulnerabilities/exploits/35672_35678.sh. TARGETSOracle Secure Backup Server 10.3.0.1.X. SOLUTIONВендор такого уровня своевременно отреагировал на появившееся сообщение в лентах bugtrack и выпустил исправление. Подбор существующих пользователей Apache TomcatBRIEFИзвестно, что на системе, где установлен Apache, находится (или может находиться) много пользователей. Конечно, сам Apache часто запускают с правами «nobody», но песня о другом! Используя ошибку класса «Design Error», а именно ошибку в реализации и проектировании со стороны разработчиков, существует возможность перечислить текущих пользователей системы! В принципе, такая возможность существовала и ранее во многих версиях известного WEB-сервера:
Между прочим, одним из первых сканеров безопасности, который проводил проверки на предмет перебора пользователей по Apache, был Nessus (существует реализованный плагин на NASL), а затем и отечественный XSpider. EXPLOITСейчас это можно делать, формируя специальный POST-запрос:
Комбинируя связки логин и пароль, можно добиться раскрытия данных учетных записей локальных пользователей, а по возврату ошибки, наоборот, убедиться, что их нет в системе. TARGETSМножество платформ, позволяющих установку JAVA + Apache (Tomcat). SOLUTIONОбновления нашли своих героев, распространяется на многие ОС. Реализация обхода безопасности в Oracle (CTXSYS.DRVXTABC.CREATE_TABLES)BRIEFНарушение безопасности заключается в том, что непривилегированный пользователь унаследует права dba, после чего сможет произвести практически любые действия, используя всю мощь СУБД. EXPLOITКод эксплоита выполнен в двух вариациях - классический обход авторизации и SQL-injection, а во второй применяется метод Cursor Injection. Классический обход ограничений:
TARGETSOracle DB 9i/10g. SOLUTIONПока нет, но скоро выйдет обновление, устраняющее уязвимость. Уязвимости в протоколе TLS / SSLv3BRIEFЕще в начале ноября специалистами была создана заметка о возможности эксплуатации некоторых уязвимостей протокола TLS в SSLv3. Ей даже была присвоена метка в базе CVE (CVE-2009-3555), но должного внимания со стороны общественности она не привлекла, хотя использование TLS крайне широко (Microsoft Internet Information Services, mod_ssl, GNUTLS, Mozilla Network Security Services). Уязвимость вызвана некорректной обработкой renegotiation handshakes с существующим подключением, что позволяет осуществлять атаку «человек в середине» (MITM) и внедрять произвольные данные, в том числе и вредоносные, в HTTPS/SSL/TLS-сессию. Организуется такая процедура путем отправки специально сформированного пакета, который воспринимается сервером в post-negotiation контексте, что еще носит альтернативное название «plaintext-атака». Когда речь идет о «Man in the middle», по-хорошему, подразумевается перехват и последующая подмена данных. Для этого существует множество сценариев, поэтому описанное далее относится не к одному привычному HTTP/HTTPS-протоколу, но и ко всем приложениям и протоколам, использующим SSLv3 или TLS. Общий сценарий эксплуатации основан на следующих принципах:
Применительно к HTTPS возможностей сделать инжект собственных данных в авторизированный поток несколько: 1. Внедрение GET/POST-запросов, без их конечного завершения. Это позволяет смешивать запросы клиента и атакующего, подавляя команды клиента. 2. Принудительный уход от использования HTTPS к HTTP. Атакующий внедряет HTTP-запрос, направленный на ресурс, который доступен по SSL, после чего выполняется перенаправление на HTTP. Иным названием атаки является термин «Downgrading» (HTTPS > HTTP). Реализацию можно изучить в утилите, созданной Peak (Pavel Konkovsky), а позже модифицированной Thierry Zoller (g-sec.lu/ssl-302-inp.c).
3. Использование метода TRACE. Злоумышленник внедряет метод TRACE в ряд HTTP-запросов, получая управление над содержимым, которое посылается от сервера клиенту по HTTPS. Наверняка, по старинке тебе известно, что TRACE используют для проведения XSS-атак. Рассмотрим сценарий. Сначала клиент по SSL-сессии цепляется за удаленный ресурс по WEB'у: Все бы ничего, но как только мы встанем у него на пути, запрос изменится на следующий:
Если все прошло ОК, сервер ответит:
В контексте клиента может выполниться вредоносный код, причем самой разной направленности. Конечно, многие браузеры устойчивы к такому типу атак, но ведь существует ряд браузеров, которые используют TRIDENT-движок (mshtml.dll) и грешат корявой обработкой HTTP-заголовков. Частичное раскрытие пользовательских данных в метаописании формата PDFBRIEFВопрос выборки пользовательских данных из офисных данных очень часто применяется в области промышленного шпионажа и разведки. Скажем, тебе в руки попал какой-либо документ, тебя интересует его подлинное авторство, возможный список машин, по которым «гулял» этот документ, имена машин, на которых он был прочтен и редактирован. Поверь, даже с такой информации можно в явном виде понять заказчика и исполнителя, их подрядчиков и промежуточные конторы, взаимосвязи между науко-техническими департаментами и отделениями, кураторов новых разработок, ответственных за ведение какого-либо направления (администратор ресурса, бухгалтер) и много другой полезной узкому кругу лиц информации. Недавно, мир ИБ и прочих шалостей немного удивила новость, что во множестве PDF-документов были раскрыты пути хранения документа более чем у миллиона пользователей! EXPLOITДля поиска подобной информации с использованием открытых источников (например, Google) можно использовать следующие поисковые запросы:
Имея явные склонности к злодейству, приведу пару примеров выборки:
Письмецо
Если ты соберешься сделать срез по общедоступным документам .pdf (filetype:pdf), то ты получишь количество в более чем 190.000.000 штук. Поверь, львиная доля из них страдает таким косяком. После взаимодействия с Microsoft и Adobe Security Team, стало ясно, что Microsoft планирует исправить это в Microsoft IE 9, а Adobe отреагировала, не назвав какие-либо даты к действию. Как же выглядит метаописание в реалиях?
Как так выходит? Попробуй сам проделать следующие действия. 1. Открой .HTM, .HTML, .MHT на своем компьютере в осле (IE) и зажми Ctrl+P либо организуй печать, в качестве принтера выберите любой софт для работы с PDF (Adobe PDF / CutePDF / PrimoPDF), жми «Print». 2. Система спросит тебя об имени файла, не игнорируй запрос и вбей любое. На выходе ты получишь сгенеренный PDF'ник. Открой его в блокноте и сделай поиск по сигнатуре «file://». SOLUTIONЗамечено, что такое грозит только при использовании печати на своих локальных файлах из-за включения подобной информации в них. Если ты скачаешь файл из интернета, просто распечатав его, то, даже используя такой метод, ничего плохого не случится. После ряда экспериментов стало ясно, что таким делом грешат не все софтины для работы с PDF, а именно: bullzip, pdfcreator. Кроме того, рекомендую ознакомиться с одной из статей в корпоративных информационных блогах Adobe (blogs.adobe.com/acrobat/2009/02/properly_removing_sensitive_in.html), которая называется «Properly removing sensitive information». Она посвящена непосредственному удалению критичной информации из документов PDF. Начиная с восьмой версии Acrobat (Acrobat 8, Acrobat 9), появилось две новых утилиты (Redactor, Content Optimzer), целиком и полностью направленных на выделение и удаление подобной инфы из тела документов. Другой документ (help.adobe.com/en_US/Acrobat/9.0/Professional/WS7E9FA147-10E3-4391-9CB6-6E44FBDA8856.w.html) описывает методику удаления скрытой от глаз пользователя информации, которая включает в себя:
Локальное повышение прав в FreeBSDBRIEFИтак, заявлен новый способ повышения привилегий! Установка руткитов теперь обзавелась еще одним вариантом. Автором боевого эксплоита является Kingcope (он же Nikolaos Rangos). Уязвимость была найдена в Run-Time Link-Editor (rtld). Вообще, rtld не позволяет использовать опасные переменные окружения, вроде LD_PRELOAD при исполнении setugid-бинарников (ping, su). С помощью специального трюка этот процесс может быть нарушен. Rtld располагается в libexec/rtld-elf/rtld.c. Переменная LD_PRELOAD указывает rtld на использование какой-либо дополнительной библиотеки (shared object), которая будет подгружена. Как правило, это дело игнорируется при запуске SUID/SGID-приложений. Рассмотрим этот момент более детально:
Соответственно, если бинарник имеет SUID/SGID-бит, с него будут сняты некоторые LD_ переменные окружения с помощью функции unsetenv (src/lib/libc/stdlib/getenv.c). Проблема заключается именно в этой функции. Деактивация нужной переменной происходит с помощью предварительного вызова findenv, который как раз и может оплошать:
Исходный код вызова __findenv():
Соответственно, если это дело оплошает, результат от выдачи unsetenv получится с ошибкой, и, в итоге, LD-переменная удалена не будет. Код эксплоита успешно демонстрирует помещение вредоносного кода в shared library и его устройство в переменной окружения. EXPLOITА вот полноценный PoC (естественно, лишь для ознакомления):
TARGETSЭксплойт успешно работает на 7.1, 7.2 и 8.0 релизах FreeBSD. Обладателям FreeBSD 6.3-RELEASE и FreeBSD 4.9-RELEASE бояться нечего. |