Данный пост является логическим продолжением исследований, начатых в тыц и тыц.
В первом посте я писал о старом добром SMB Relay в контексте современных условий эксплуатации.
Второй пост затрагивал новую технику под названием SMB Hijacking с помощью которой можно выполнить код даже если исходящая SMB сессия использует Kerberos.
В этот раз речь пойдет об очередной технике, в основе которой лежит классический NTLM Relay.
Ничего принципиально нового в ней нет, она отличается от SMB Relay только сервисом на который проводится перенаправление данных, но по силе воздействия эта техника невообразимо превосходит своего прародителя.
Как вы помните, в доменной сети контроллер защищен от SMB Relay достаточно простым и эффективным механизмом под названием SMB Signing, поэтому перенаправление на DC в качестве third-party host невозможно. Проблема в том, что одна из центральных систем домена Active Directory, которая снаружи выглядит как LDAP сервер, по-умолчанию не требует обязательной подписи пакетов при удаленном сетевом взаимодействии! Мягко говоря это довольно откровенный бекдор в системе, оставленный по непонятной причине. Либо это сделано намеренно для обратной совместимости, либо сотрудники Microsoft посчитали, что раз нет рабочих эксплойтов, то нет и повода для беспокойства.
Отсутствие инструментов для проведения NTLM релея на LDAP (Active Directory) тоже не совсем понятно. Вектор достаточно очевидный, но освещен крайне скудно, возможно исследователи просто не могли подумать, что контроллер домена может быть настолько беззащитным в конфигурации по-умолчанию.
В 2012 году на конференции Blackhat некий Zack Fasel представил свой инструмент под названием ZackAttack. Среди заявленного функционала значился и релей на LDAP. Несмотря на довольно сырую, но местами рабочую реализацию, главной заслугой Zack'а, лично для меня, стало не создание инструмента, а как раз упоминание об отсутствии обязательной подписи пакетов при работе с Active Directory. Прошло довольно много времени, прежде чем у меня дошли руки заняться этой темой, но это случилось и рабочая реализация атаки появилась в Intercepter-NG.
Для проведения атаки требуется одно единственное условие: необходимо знать за каким компьютером в данный момент работает действующий администратор домена. Атакующему даже необязательно быть членом домена, достаточно просто подключиться к сети. Как и в случае других атак, для ускорения действий в трафик атакуемого инжектится ссылка на псевдо-веб службу Intercepter'а, которая затребует NTLM авторизацию. Во время web-серфа атакуемый автоматически и незаметно для себя отправит аутентификационные данные, которые затем будут перенаправлены на Active Directory. В результате атаки будет создан новый пользователь с правами Domain Admins.
Атака успешно протестирована на серверных ОС Windows 20003 и 2008R2, но так же должна работать и на Windows 2012, т.к. политика «Domain controller: LDAP server signing requirements» аналогичным образом установлена в none по-умолчанию.
Самостоятельно опробовать проведение атаки можно будет с выходом новой версии Intercepter-NG, который запланирован на осень.
Автор: Intercepter