26 Июня, 2013

Взломать за 137 секунд

Dmitriy Evteev

Затрагивая тему конечных целей тестирований на проникновение, можно отметить, что в преобладающем большинстве случаев ключевой целью атаки является получение максимальных привилегий в корневом домене Active Directory. Как ни крути, но большинство корпоративных сетей построено на решениях Microsoft и как следствие в качестве централизованного управления идентификаторами и механизмами авторизации к информационным активам используется Microsoft Active Directory. Обладая соответствующими привилегиями в каталоге становиться возможным использовать их для развития огромного числа всевозможных сценариев атак. Поэтому, как правило, после "захвата" домена пентест переходит в другие плоскости. Например, в плоскость технологического аудита или в сторону развития атаки в направлении смежных систем, напрямую не завязанных на Active Directory (коммуникационное оборудование, ERP и пр.).

Итак, как же можно максимально сократить время на реализацию успешной атаки в отношении каталога домена? Прям до 1 минуты? Я постараюсь раскрыть секрет успеха в данной публикации.

Ntlm relay: начало

Давным-давно, когда компьютеры были большими брррр... где-то я уже это говорил. В общем, все началось с того, что в компании Microsoft придумали не самый безопасный протокол сетевой аутентификации - LanManager . За ним последовало наследие в виде NTLM , который решал только часть недостатков своего предшественника. Впоследствии, накрутив более тяжелые криптографические алгоритмы, появился NTLMv2, который вместе со своими предшественниками перекантовал и до наших дней.

Но вернемся в прошлое. В 1996 году появляется первое исследование на тему фундаментальной уязвимости в протоколе NTLM, а через пять лет появляется и  полноценный пруфф . Суть атаки хорошо проиллюстрирована на следующей картинке.


В 2008 году, под давлением появившихся к тому времени готовых к употреблению сплоитов ( 1 , 2 , 3 ), компания Microsoft все-таки решает устранить уязвимость , однако делает это как нельзя криво и вектор атаки перерождается в новое амплуа.


Кроме того, пресловутый патч ms08-068 никак не стесняет атакующего, который осуществляет атаку в отношении кластера . То есть, сценарий 2001 года частично проигрывается и сегодня.

Ntlm relay: сегодня

Несмотря на то, что сегодня атака NTLM Relay широко известна, реализованы концепты межпротокольного перенаправления (например, HTTP->SMB и наоборот), которые в свою очередь портированы в популярные инструменты пентестера (например, MSF ), но при всем этом многообразии до 2012 года не хватало универсального "швейцарского ножа". Им стала сборка под названием ZackAttack .

ZackAttack – это фреймворк, который позволяет проводить атаки NTLM-relay на качественно новом уровне. Наибольшую ценность этого фреймворка представляет возможность многократного использования сессии авторизованного пользователя для доступа к любым (с ограничениями) сервисам, авторизация в которых базируется на протоколе NTLM. Другими, не менее ценными достоинствами ZackAttack является автоматизация сценариев атаки (например, создание нового пользователя в Active Directory и добавление его в группу администраторов домена), а также возможность взаимодействия с атакуемыми системами используя пониженные привилегии (отличные от привилегий администратора) поверх proxychains  (см. видео ). Но стоит озвучить и половник дегтя в банке с медом. Дело в том, что Zack Fasel писал свою балалайку на скорую руку, в следствии чего для эффективного использования текущей сборки ZackAttack требуется бубен, а взаимодействие с атакуемым узлом по протоколу SMB поверх proxychains очень быстро заканчивается на первом же бинарном файле (аналогичная ситуация наблюдается и с передачей паролей через RPC).



ЗЫ. Если кто желает пофиксить баги ZackAttack и допилить поддерживаемый функционал, welcome! -- >> @zfasel

Альтернатива Ntlm relay в режиме реального времени

Ранее я уже писал , что в случае использования аутентификации по протоколу NTLMv1 существует возможность восстановить NT-хеш за приемлемое время, что в перспективе позволяет проводить атаки типа pass-the-hash . Однако этот метод не работает в случае использования аутентификации по протоколу NTLMv2.

Автор Intercepter-NG взглянул на проблему гораздо шире и глубже. Он задал себе вопрос: "Зачем нам релеить авторизацию жертвы, если она сама прекрасно авторизуется на нужном ресурсе?! Нам всего лишь нужно встать посередине и проксировать соединение, дождаться пока Host_A авторизуется на Host_B, а затем взять контроль над сессией в свои руки!" ( подробнее ). Логика идеи представлена на картинке ниже.


Реализация данной атаки получила название SMB Hijacking и уже доступна для экспериментов в последней версии Intercepter-NG . Have fun!


или введите имя

CAPTCHA