Расматривая тему уязвимостей Windows систем мы продолжим расказ о атаках направленных на корпоративные сети затронутой ранее. Удивительное дело, но теперь техника Pass-the-Hash работает и для RDP-подключений. То есть мы можем аутентифицироваться с помощью NTLM-хеша пользователя при подключении по RDP!
С другой стороны, я недавно узнал, что, оказывается, не все люди в курсе, что это такое — PtH. А потому кратенько расскажу про это дело.
Итак, начнем с того, что в ОС Windows многопользовательская система и потому ей надо хранить пароли пользователей. Но хранить их в открытом тексте не секьюрно, а потому их хранят захешироваными. Хеширование — это однонаправленная функция, по результату которой нельзя узнать входное значение (то есть нельзя «расшифровать»). NT-хеш — это тот формат, в котором винда хранит пароли. Причем подчеркну, что даже если это отдельный хост или домен — формат хранения один.
Второй важный момент — это глубокая поддержка Single Sign-on («единая» автоматическая аутентификация) виндой на базе NTLM-аутентификации. В ней не передается в открытом виде ни пароль, ни сам NT-хеш. Алгоритм такой: сначала клиент посылает запрос на подключение, потом сервер возвращает ему случайно сгенеренную последовательность (challenge). После этого клиент берет хеш-пользователя, соединяет c challeng’eм, хеширует и отправляет на сервер. Тот, в свою очередь, делает то же самое. И если хеши совпадают, то пользователь верный.
Выводом здесь будет то, что NT-хеш является полным эквивалентом пароля пользователя. Ведь почти все сервисы, которые есть в экосистеме Windows, поддерживают NTLM-аутентификацию. Например, HTTP, SMB (через который мы можем подключаться и управлять хостом удаленно), SMTP, FTP, подключения к SQL-серверу и так далее.
[ad name=»Responbl»]
Исключением всегда был протокол RDP. Раньше можно было подключиться, только введя пароль. И это составляло проблему, так как очень часто бывают закрытые сегменты (DMZ, например) в корпоративной сети, где на файрволе разрешен доступ только RDP (чтобы админы могли админить).
Так вот, в Windows 8.1 и 2012 R2 по умолчанию теперь есть поддержка аутентификации с хешем. Но изначально у микрософта эта функция называется Restricted Admin Mode, и о «поддержке» PtH они, конечно, не говорят.
А потому давайте скажем спасибо ресерчерам сlabs.portcullis.co.uk за то, что они поведали миру всю правду (подробности, видеосмотри там же). Теперь коротко о практике. Все, что нам нужно для подключения, — результат трудов FreeRPD Project, то бишь опенсорсный RDP-клиент (по умолчанию входит в Kali). После публикации исследования они внедрили поддержку PtH прямо в него. А потому для подключения нам требуется следующая строка в консоли:
1
|
xfreerdp /d:domain_name /u:Administrator/pth:8846F7EAEE8FB117AD06BDD830B7586C /v:192.168.0.1
|
где после /d: — имя домена,
после /u: — имя пользователя,
после /pth: —хеш,
после /v: — IP сервера.
И еще одна тонкость. Данная функция (Restricted Admin) работает только для администраторов. То есть залогиниться под юзерами из группы RDP Users не получится. Но невелика потеря!