| RSS



Меню

Bookmark and Share


Статистика
Ваш IP: 3.133.137.107
Вы используете: v





Сейчас на сайте:

Тех поддержка ->

Облако тэгов
ОС видио Tor Обратная сторона антенна 4.6 php libc rand() эксплоит Windows Server 2008 FreeBSD Jail Elastix QIP Virtual chroot Limit kernel proc sysctl Tune freeBSD bridge Boot LiveCD Disk Bluetooth GEO game DirectX emulator Python Shell червь Conficker вирус троян лаборатория касперского пиратство Apple iPhone Microsoft twitter социальная сеть анонимность лицензия Open Source уязвимость MySQL база данных Закон Франция Пират Skype мобильный Deutsche Telekom хакер trend micro кибератака Германия робот Персональные данные Ноутбук Интернет китай цензура windows vista acer Linux патент браузер Firefox Internet Explorer Opera Safari Intel Oracle патч Банкомат IBM США Dell Ford MAC контроль Internet кибербезопасность приговор Mozilla Chrome безопасность Госдума СМИ Windows 8 взлом Пентагон Украина Facebook Cisco Cloud Windows XP нетбук торрент музыка Биометрический Nokia Hardware Manager ФБР IP-адрес sms RSA java Google Captcha Symantec Спам Антивирус тест Anti-Malware Windows 7 операционная система windows провайдер авторское право rapidshare UNIX свиной грипп шантаж Дети ipod копирайт McAfee HTTPS icann студент Норвегия New York Times YouTube Warner Music КНДР Ubuntu AMD ATI касперский Россия РФ сервер хостинг Wi-Fi суд пароль блог фишинг одноклассники Медведев контрафакт мошенник sony Gps по JavaScript Хакеры Yahoo фас компьютер софт Минкомсвязи Сбой мошенничество Доктор ВЕб Вконтакте ie8 исходный код МВД фильтр порнография свобода слова казахстан Autodesk сисадмин Gmail кредитная карта LiveJournal шифрование Deep Purple банк HTML5 Нанотехнологии wikipedia выборы DNS bind KaZaA Android Basic атака Mac OS X домен ФСБ прокуратура уголовное дело ICQ Sophos Google Voice ошибка DARPA военные сайт турция конференция спамер Полиция Koobface Великобритания IRC белоруссия Грузия Bittorrent Европа Dr.WEB Linux Mint Билл Гейтс спецслужбы Royal Bank of Scotland смартфон Canonical F-Secure Symbian фильм Microsoft Office Новая Зеландия Adobe Австралия IDC Internet Explorer 9 iPad Ирландия поиск GOOGLE EARTH МТС Реклама слежка Mandriva BSD Zeus личные данные eset avast Avira G Data Software защита Defcon виртуализация dll LibreOffice Черный список BlackBerry индия Москва DVD социальные сети flash player paypal BitDefender email сертификат honda MasterCard Anonymous технологии IPv6 Ассанж Оптоволокно передача данных арест Fedora Samsung Иск Apache учетная запись iTunes исследование Cert Санкт-Петербург McDonald's SOPA PIPA Bioshock Infinite: Burial at Sea - ico Megaupload CES hotfile отчет приложение Инвестиции платформа DRM DDoS-атака роскомнадзор

Главная » Статьи » Общие Статьи

Пробиваем VMware vCenter

VMware vCenter

Многие корпоративные системы живут в виртуальных средах. Это дешевле и удобнее. И круче! Лидером в области обеспечения этих самых сред является небезызвестная компания VMware. Собственно, эти ребята имеют крутой гипервизор и, что также немаловажно, кучу всякого ПО для удобного развертывания, управления и контроля. Все это делает решения от VMware гибкими, масштабируемыми и в конечном счете эффективными. Для удобного администрирования ребята разработали серверное ПО, в котором консолидируется вся административная часть инфраструктуры, — VMware vCenter. То есть имеется у вас, к примеру, 10 железных машин с VMware ESX(i). На них в общей сложности у вас бегает 50 виртуальных машин. Админить этот виртуальный зоопарк было бы неудобно, если бы не было центральной системы управления vCenter. Помимо прочего, благодаря vCenter возможны разного рода хитрости, вроде прозрачной миграции виртуальных образов в случае отказа одного из ESX работать. Короче, мегаудобная и важная штука. На этом реклама закончена. Основная суть: если хакер взломает vCenter — вся сеть в его руках.

Прорываем оборону

Известный исследователь Клаудио Крисконе не раз сталкивался с «Центром», а потому знает, как его ломать. Вот и я на одном из пентестов столкнулся с этим самым ПО и решил воспользоваться мудростью Клаудио, чтобы запывнить там все. Идея Клаудио была проста: наш друг нашел уязвимость в менеджере обновлений vCenter’а. Уязвимость была даже не по вине программистов VMware. Дело в том, что веб-интерфейс этого менеджера (висит на TCP-порту 9084) использует в качестве веб-сервера Jetty и уязвимость нашлась именно там. Уязвимость классическая — выход за границы каталога:

http://target:9084/vci/download/health.xml/%3f/../../../../../../FILE.EXT

Все просто: читаем любые файлы, на которые у учетной записи хватает прав. Но Клаудио задался вопросом: какой же файл читать? В общем, покопался он в файловой системе и нашел чудесный файл журналирования доступа, в котором хранился код сессии (см. скрин).

Что представляет собой этот код? Дело в том, что vSphere-клиент работает с vCenter по протоколу SOAP, то есть манипулирует обычным HTTPS-трафиком, в теле которого XML-структура с данными, командами и так далее. При этом после аутентификации администратора ему прописывается код SOAP-сессии, и впоследствии этот код проверяется как cookie c PHPSESSIONID, типа аналог :). Очевидно, что, похитив этот код, мы можем подсунуть его в свой SOAP-запрос и vCenter будет думать, что мы уже аутентифицировались как какой-то там админ (если сессия еще жива). То есть Клаудио предлагает через уязвимость в Jetty-веб-сервере прочитать лог с этими SOAP-кодами.

http://target:9084/vci/download/health.xml/%3f/../../../../../../ProgramData\VMware\VMware VirtualCenter\Logs\vpxd-profiler-6.log

Затем подставлять коды в запросы от vSphere. Для этого он даже разработал свой прокси-сервер, который на лету подменяет код сессии в пакетах от vSphere, и включил этот прокси в состав своего add-on’а к Metasploit’у — VASTO. Данный модуль был выпущен в 2010 году и презентован на конференции Black Hat 2010. Несмотря на то что тулза аж двухлетней давности, некоторые ее модули актуальны и работоспособны и сейчас (не говоря уже о том, что далеко не всегда администраторы обновляют свои виртуальные среды, поэтому вполне можно встреть старый vCenter, на котором баги еще не закрыты).

Содержимое злосчастного файла

Содержимое злосчастного файла

Таким вот образом наш итальянский друг из компании Google предлагает наказывать vCenter. Но беда в том, что все эти уязвимости к моменту моего пентеста устарели, на тот момент (весна - лето 2011) нам пришлось иметь дело с последней версией ПО, а это значит, что и Jetty был патченным-перепатченным.

Слайд Клаудио с конференции Black Hat ;-) 
Слайд Клаудио с конференции Black Hat ;-)

В одну и ту же воронку снаряд дважды не попадает?

Весьма разочарованный (халявы не получилось), я стал думать, что делать. Вообще, любой пентестер в такой ситуации просто пройдет мимо и напишет в отчете, что на данном ресурсе уязвимостей нет. Но, как обычно, почувствовав возмущения в Силе, я не доверился всем этим патчам. Что-то заставило меня продолжить издеваться над Jetty, комбинируя варианты эксплойта для выхода за пределы каталога. И через 15 минут я получил результат. Уже в другом месте того же менеджера обновления опять была уязвимость:

http://target:9084/vci/download/.\..\..\..\..\..\..\..\..\FILE.EXT

Это уже что-то, ведь опять можно идти читать файл с SOAP-кодами!

Уже кое-что! 
Уже кое-что!

Но опять нас ждало разочарование — коды сессий больше в этом чудесном файле не содержатся. Можно только отметить отличную работу программистов из VMware, которые подмели логи и сделали нам бяку. Что ж, поищем сами, что еще в файловой системе может нам пригодиться… Самое первое, что приходит в голову, — это найти и спереть секретный ключ для SSL. С ним мы смогли бы перехватывать SSL-трафик и расшифровывать его (whireshark позволяет делать это без проблем). Сам ключ можно найти так:

http://target:9084/vci/downloads/.\..\..\..\..\..\..\..\Documents and Settings\All Users\Application Data\VMware\VMware VirtualCenter\SSL\rui.key

Соответственно, если мы организуем MITM-атаку с помощью ARP-SPOOFING, то мы сможем перехватывать трафик между сервером и административной рабочей станцией. Кстати, IP-адреса администраторов и их логины по-прежнему можно узнать из файла профайлера. Конечно, мы можем подменить SSL-сертификат (cain умеет делать это без проблем), и тогда мы расшифруем трафик без хищения ключа, но в этом случае администратор увидит предупреждение о неверном SSL-сертификате. А если мы похитили ключ — администратор ничего не увидит, поскольку сертификат будет верным. То есть такая атака более хитрая и скрытная.

Попытка найти свое счастье… 
Попытка найти свое счастье…

VMware vCenter Orchestrator

А ведь на сервере с vCenter есть еще одна чудесная вещь, которая идет бесплатным довеском и устанавливается по желанию, — это «Оркестратор». Еще один интерфейс управления, в этот раз самим «Центром». Это целый «фреймворк» для разработки и автоматизации различных процессов в виртуальной инфраструктуре. Крутая штука. Изучая файловую систему, я наткнулся на следующий файл:

http://target:9084/vci/download/.\..\..\..\..\..\..\..\..\Program files\VMware\Infrastructure\Orchestrator\configuration\jetty\etc\passwd.properties

В нем содержится некий MD5-хеш. Очевидно, что там запрятан пароль от административной учетной записи в этот самый «Оркестратор». Что тут можно сказать? Использовать MD5 без соли — это небезопасно. Вот и сейчас мы очень быстро получили пароль.

Используя полученный пароль, мы вошли в систему через веб-интерфейс «Оркестратора». Удобно, мило, симпатичный дизайн, но нам нужно больше. Поковырявшись, мы заметили, что для управления виртуальной инфраструктурой используется тот же vCenter-сервер, а значит, «Оркестратор» должен уметь в нем аутентифицироваться и в настройках лежит пароль.

HTML-код страницы, где указывается пароль, меня очень порадовал — пароль там отображался в открытом виде, как есть, хотя визуально, в браузере, он прятался за звездочками.

Кроме того, я нашел там пароли от почтового аккаунта, от доменных учетных записей и от прочих вещей, которыми «Оркестратор» должен уметь пользоваться. Прямо менеджер паролей для хакера :). Понятно, что вся система была успешно взломана, причем не только виртуальная, но и контроллер домена, а значит, всё, что там было.

Админская учетка от vCenter наша! 
Админская учетка от vCenter наша!

Moarrrrrr!

Казалось бы, всё, но есть еще одна деталь. Ты мог обратить внимание, что «Оркестратор» хранит пароли в открытом виде, а не в виде хеша. Можно поискать, где именно он их хранит на диске. Покопавшись немного, я нашел это место:

http://target:9084/vci/download/.\..\..\..\..\..\..\..\..\Program Files\VMware\Infrastructure\Orchestrator\app-server\server\vmo\conf\plugins\VC.xml

Пароль был все-таки чем-то зашифрован. Однако, судя по формату закодированной строки, это шифрование обратимо. Более того, похожие пароли выглядят в зашифрованном виде очень похоже.


<virtual-infrastructure-hosts>
<virtual-infrastructure-host xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:type="VirtualCenterHost">
<enabled>true</enabled>
<url>https://new-virtual-center-host:443/sdk</url>
<administrator-username>vmware</administrator-username>
<administrator-password>000a506275767b74786b383a4a60be767864740329d5fcf324ec7fc98b1e0aaeef </administrator-password>
<pattern>%u</pattern>
</virtual-infrastructure-host>
</virtual-infrastructure-hosts>

Еще интересный файл — C:\Program Files\VMware\Infrastructure\Orchestrator\app-server\server\vmo\conf\vmo.propirties. Тут таким же способом закодирован пароль от СУБД. Осталось разобрать суть метода кодирования и понять, верна наша догадка или нет. Тут в дело вступает мой друг и коллега, а по совместительству еще и игрок CTF-команды LeetMore — Александр Миноженко. Для него такие задачки как два пальца… smile С одного взгляда он определил, что первые два байта описывают длину всего пароля, а далее идет кодированное представление. Саша просто декомпилировал Java-класс «Оркестратора», отвечающий за сохранение пароля, и разобрал алгоритм кодирования. Суть проста: берем длину пароля, затем кодируем в хекс каждый байт пароля, добавляя к нему номер позиции байта (начиная с нуля). Таким образом, закодированный «Password01.» выглядит как:

000a506275767b74786b383a4a60be767864740329d5fcf324ec7fc98b1e0aaeef

Саша написал декодер (на Руби):

# Закодированная строка
pass = "000a506275767b74786b383a4a60be767864740329d5fcf324ec7fc98b1e0aaeef"
# Считаем длину
len = (pass[0..2]).to_i # Первые три символа — длина пароля
enc_pass = pass[3..-1].scan(/.{2}/)
# Разбиваем hex-строку на байты
dec_pass = (0...len).collect do |i|
byte = enc_pass[i].to_i(16) # Переводим hex в целое число
byte -= i # Вычитаем позицию байта и получаем раскодированное значение
byte.chr
end

# Результат — чистый пароль: "Password01."
puts "Password: # {dec_pass.join()}"

Таким образом, атака сводится к использованию нашего 0-дэя для чтения файла и второго — для раскодирования паролей из считанных файлов. И опять получаем полный доступ к vCenter. За несколько секунд, ведь уже готов соответствующий модуль для Metasploit.

Финал

Как видишь, 0-дэи бывают простыми, но очень опасными. Конечно, провести атаку было бы намного сложнее, если бы администраторы фильтровали доступ с помощью файрвола, ограничив доступ к административным портам. Но до этого додумываются далеко не всегда. Защита виртуальной инфраструктуры — дело не одной минуты.



Источник: http://www.xakep.ru/post/59334/
Категория: Общие Статьи | Добавил: aka_kludge (06.12.2012) | Автор: Алексей Синцов
Просмотров: 2688 | Рейтинг: 0.0/0
Всего комментариев: 0
Добавлять комментарии могут только зарегистрированные пользователи.
[ Регистрация | Вход ]
    Главная      
...
На службе : дней

07:51
Обновить


Пользователи
aka_kludge
qwerty
LeadyTOR
aka_Atlantis
AdHErENt
mAss
Sissutr
hiss
DrBio
tHick

Поиск


Copyright tHR - TeAM 2025 г. admin: aka_kludge (ICQ:334449009) Moderator's: LeadyTOR, ... Яндекс.Метрика