Данная статья описывает новшество RDP 8.1 – «Restricted Admin», его потенциальные выгоды и угрозы (аутентификация через передачу хэша) с точки зрения безопасности. Мы вкратце вспомним, что представляют собой атаки через передачу хэша, а также продемонстрируем подобную атаку на Windows 2012 R2 Server. Также расскажем о средстве, реализующем атаку передачи хэша на Windows 2012 R2 Server, - небольшой модификации FreeRDP клиента.
Сервера под управлением Windows 2012 R2 используют обновленную версию Remote Desktop Protocol (RDP), одна из особенностей которого будет интересна, как пен-тестерам, так и системным администраторам. Данная статья описывает новшество RDP 8.1 – «Restricted Admin», его потенциальные выгоды и угрозы (аутентификация через передачу хэша) с точки зрения безопасности. Мы вкратце вспомним, что представляют собой атаки через передачу хэша, а также продемонстрируем подобную атаку на Windows 2012 R2 Server. Также расскажем о средстве, реализующем атаку передачи хэша на Windows 2012 R2 Server, - небольшой модификации FreeRDP клиента.
Что такое атаки через хэш-аутентификацию?
Все довольно просто, хэш-аутентификация (Pass_the-Hash) подразумевают аутентификацию через имя пользователя и хэш его пароля. Пусть пользователем в нашем случае будет пен-тестер или нарушитель, так как для легитимных пользователей проще использовать свои пароли. Многие протоколы windows требуют хэш пароля, а не его сам. Также стоит отметить, что пен-тестеру, как правило, проще получить хэш, чем сам пароль пользователя.
До версии 8.1 в RDP требовался сам пароль пользователя. В версии 8.1 в большинстве случаев также требуется сам пароль, но существует ситуация (режим Restricted Admin), когда пользователь может аутентифицироваться с помощью хэша.
Майкрософт выпустила руководство по снижению эффективности атак через хэш-аутентификацию.
Что такое Restricted Admin режим?
Результат выполнения «mstsc /?» на Windows 2012 R2 дает следующее определение Restricted Admin режиму:
Если вкратце, то эффективность средств, вроде mimikatz (которые определяют пароли пользователей, находящихся в системе), должна быть снижена при использовании опции Restricted Admin. Я пока не исследовал эффект ее использования в постэксплуатационном периоде, и, возможно, это будет неплохой темой для будущих статей.
На первый взгляд, опция является интересной для администраторов 2012 R2. Угроза безопасности проявляется в том, что исходящее соединение RDP сессии (например, папки с открытым доступом) не работает. То есть данный режим будет максимально полезен при подключении к отдельным, а не к Jump-серверам.
RDP 8.1
Протокол RDP v8.1 датируется 22 июля 2013 года. Узнать используемую версию можно с помощью диалогового окна «О программе» («About»):
Чтобы избавить читателя от необходимости работы с 464-страничным руководством, подведу промежуточные итоги интересных для нас новшеств протокола:
Именно так.
Доказательство концепции: Сценарий.
Пусть мы проводим пен-тестирование сети. Мы хотим получить доступ к определенному Windows 2012 R2 серверу по RDP. Также предположим, что это отдельная система с межсетевым экраном, позволяющим только доступ по RDP – это сделает нашу задачу несколько сложнее.
В данной сети у нас уже есть скомпрометированный сервер, на котором запущен fgdump (или нечто похожее), и мы раскрыли следующие имя пользователя и пароль:
test:1001:NO PASSWORD*********************:36374BD2767773A2DD4F6B010EC5EE0D:::
И наконец, последнее допущение: пароль является сильным, и у нас нет возможности вычислить его. Традиционно мы не можем определить, является ли тот же пользователь test действующим пользователем целевого сервера. Однако, в Windows 2012 R2 мы можем аутентифицироваться с помощью имени пользователя и хэша пароля.
Доказательство концепции: Подключение с использованием хэша, вместо пароля.
Для доказательства концепции мной была использована последняя версия FreeRDP. Это отличный продукт, распространяемый под лицензией Apache Licence v2.0. RDP клиент поддерживает большинство новшеств, которые нам необходимы, в частности, SSL и CredSSP (NLA). Нам лишь остается внести некоторые изменения, упомянутые выше, чтобы добавить поддержку Restricted Admin режима.
Как правило, RDP подключение устанавливается следующим образом:
$ xfreerdp -u test -p Portcullis1 192.168.226.129
В модифицированной версии FreeRDP значение ключа –p было изменено на хэш пароля:
$ xfreerdp -u test
-p 36374BD2767773A2DD4F6B010EC5EE0D 192.168.226.129
Следующее изображение показывает нам, что мы можем подключиться. Внизу изображения командная строка, использованная для подключения.
Вот и все. Реализация довольно простая, но, тем не менее, будет полезной для пен-тестеров, когда Windows 2012 R2 станет общеиспользуемым.
Ограничения
Restricted Admin режим применим только для администраторов. Если пользователь находится в группе «Пользователи удаленного рабочего стола», данный метод не сработает. Вы получите следующее сообщение: