Новости
Дана стаття описує нововведення RDP 8.1 - «Restricted Admin», його потенційні вигоди і загрози (аутентифікація через передачу хеша) з точки зору безпеки. Ми коротко згадаємо, що представляють собою атаки через передачу хеша, а також продемонструємо подібну атаку на Windows 2012 R2 Server. Також розповімо про засіб, що реалізує атаку передачі хеша на Windows 2012 R2 Server, - невеликої модифікації FreeRDP клієнта.
Автор: MRL
Сервера під керуванням 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-сторінковим керівництвом, підведу проміжні підсумки цікавих для нас нововведень протоколу:
- Внизу 37-сторінки PDF файлу можна побачити новий прапор RESTRICTED_ADMIN_MODE_REQUIRED, який може бути відправлений RDP клієнтом. Нам буде необхідно відправити його в нашу прграмм.
- Також на 37 сторінці можна прочитати «Якщо сервер підтримує даний режим, клієнт може відправити порожні облікові дані (ім'я користувача / пароль) в структурі« TSPasswordCreds », певної в [MS-CSSP] розділі 2.2.1.2.1.». Таким чином, наша PoC повинна відправляти null в якості домену, ім'я користувача та пароль сервера в TSPasswordCreds структуру.
Саме так.
Доказ концепції: Сценарій.
Нехай ми проводимо пен-тестування мережі. Ми хочемо отримати доступ до певного 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 режим застосовується лише для адміністраторів. Якщо користувач знаходиться в групі «Користувачі віддаленого робочого стола», даний метод не спрацює. Ви отримаєте наступне повідомлення:
Що таке атаки через хеш-аутентифікацію?
Що таке Restricted Admin режим?
Результат виконання «mstsc /?