Захватить контроль над VMware vCenter

Пару номеров назад я описывал в Easy Hack новый модель для Metasploit'a - универсальный NTLM relay от WebstersProdigy (goo.glMqDII). Такого модуля давно не хватало M5F. NTLM relay (SMB relay) как тип атаки - ого - го! И мощна, и гибка. А вот тулзы для юзания всей мощи не было. Теперь же в наших руках мощное оружие. Ну да ладно с похвалой...
Как я и писал в прошлый раз, проблема кроется в самой NTLM-аутентификации, а потому уязвимыми продуктами являются все, что используют ее (и не используют каких-то дополнительных средств для своей защиты). И в подтверждение тех слов - данная задачка.
Есть такая вещь, как VMware vCenter - система централизованного управления ESXi-серверами и виртуалками на них. Поломать ее - лакомое дело, ведь мы можем «выдрать» из нее привилегированные доменные креды и получить привилегированный доступ ко всем виртуалкам. То есть в общем случае поовнить vCenter равняется поовнить всю корпоративную сеть. Алексей Синцов в одном из номеров писал о нашем опыте, о том, как это можно сделать на основе найденных им уязвимостей. Он, конечно, маг и волшебник в поиске уязвимостей.
Но сейчас немного о другом, о «неисправимом». Вообще, и vCenter, и ESXi серверы (и, вероятно, другие) построены в своей основе на одной платформе. Для общения с ними (не считая веба) нужно использовать специальный vSphere Client. Но если посмотреть на передаваемые данные, то мы увидим, что по сути это обычный веб-сервис, использующий в качестве основы 50АР. То есть можно написать и свой клиент для управления. Во-вторых, у продуктов VMware по умолчанию имеется поддержка Windows-аутентификации. А это в простейшем и основном случае стандартная NTLM-аутентификация. Но и это еще не все. VCenter под виндой в качестве основы для разделения прав использует доменных пользователей. Это все ведет к тому, что мы можем очень просто и легко проводить атаку типа NTLM relay.
И для этого дела я написал NTLM relay модуль для MSF под VMware vCenter - приводящий или к обходу аутентификации (если повезло админу), или к полной компрометации всей инфраструктуры.
Не могу не описать самой атаки в простейшем виде. Итак, у нас есть: жертва - админ, мы - хакеры и vCenter-сервер. Мы находимся в локальной сети с жертвой.
1. Мы заставляем браузер жертвы (IE, например) зайти на наш вебсервер - модуль M5F.
2. Наш модуль требует у браузера аутентифицироваться по NTLM. Так как мы находимся водной сети, то жертва может обратиться к нам по короткому доменному имени (типа http://hacker/lalala),
и потому IE автоматом попробует аутентифицироваться по NTLM, «не теребя» жертву вопросами.
3. IE посылает первый NTLM-пакет с именем жертвы и общей инфой.
U. Мы его пихаем в тело SOAP-запроса и отправляем на vCenter.
5. Сервер возвращает на SOAP ответ с challenge (рандомная строчка) для NTLM и куки - vmware_soap_session.
6. Мы пересылаем NTLM-пакет с chalieng'eM нашей жертве.
7. Жертва хеширует свой хеш и challenge и отправляет нам его.
8. Мы это переправляем на сервер.
9. Сервер нам говорит, что все ОК и мы аутентифицированы!
Все просто, как видишь. Здесь главное - чтобы у админчика были права в vCenter.