Аудит безпеки RDP

28 квітня 2023 2 хвилин Автор: Cyber Witcher

Все про RDP: від налаштування до злому

Служба віддалених робочих столів Remote Desktop Services (раніше відома як Terminal Services) — це компонент Microsoft Windows (серверної та клієнтської операційних систем), що дозволяє користувачам віддалено запускати програми або керувати сервером з будь-якої машини, де є клієнт підключення до віддаленого робочого столу та доступ до мережі. У сеансі Remote Desktop Services клієнт потребує доступу до всього середовища віддаленого комп’ютера або йому просто потрібно запустити окремі програми — сервер Remote Desktop Session Host виконує всю обробку та використовує свої апаратні ресурси. Технологія підключення забезпечується безпекою підключення двома способами. Але немає нічого неможливого.

Є методи, які можуть зломати безпеку підключення. Одним з них є брутфорс. Брутфорсом називається метод злому облікових записів шляхом підбору паролів до них. Суть підходу полягає у послідовному автоматизованому переборі всіх можливих комбінацій символів з метою рано чи пізно знайти правильну. Або “людина-всередині”, коли є здатність читати та видозмінювати за своєю волею повідомлення, якими обмінюються кореспонденти, причому жоден з останніх не може здогадатися про сторонню присутність у каналі. Зазвичай починається з прослуховування каналу зв’язку та закінчується намаганням підмінити перехоплене повідомлення, витягти з нього корисну інформацію, перенаправити його на який-небудь зовнішній ресурс. Тому потрібно заздалегідь потурбуватися про свою безпеку та розуміти, що інформація або доступ до неї можуть бути використані третьою особою. Тому у цьому розділі розглянуто інструменти та методи, пов’язані з пошуком та перевіркою захищеності віддалених робочих столів, роботу яких забезпечує служба RDP.

Як виявити комп’ютери з Remote Desktop Protocol (RDP)

Пошук RDP по відкритих портах

За замовчуванням сервер RDP прослуховує TCP-порт 3389 і UDP-порт 3389.

Комп’ютери з увімкненим віддаленим робочим столом можна шукати за допомогою Nmap командою виду:

Наприклад:

Результат пошуку за допомогою Nmap.

Для збору банерів можна додати опції : -sV –script=banner:

Брутфорс RDP

crowbar (levye)

Програма  crowbar, яка раніше називалася levye, це інструмент брутфорсу, який підтримує sshkey, vnckey, rdp, openvpn. Особливість програми – це її простота та ефективність.

Установка crowbar у Kali Linux:

Установка crowbar в BlackArch:

Як мету можна вказати діапазон IP адрес у форматі CIDR (опція -s) або файл з такими діапазонами (опція -S). Якщо потрібно вказати лише одну мету (одна IP адреса), просто використовуйте маску /32, наприклад, 192.168.0.101/32. Опцією –U вказує файл зі списком імен користувачів, а опцією -u можна вказати одного користувача. Опцією -C вказує файл зі списком паролів, а опцією -c можна вказати пароль. З опцією -b потрібно вказати протокол для атаки, у разі -b rdp. З опцією -p можна змінити стандартний порт протоколу. Опція -d робить так, що попередньо перевіряється перевірка, чи відкриті порти на вказаних цілях (тобто вказаних за допомогою опцій -S і -s).

Всі опції crowbar: https://kali.tools/?p=3636

Приклад успішної атаки на RDP:

Приклад успішної атаки на RDP.

Програма levye також працює, але в ній трохи інші опції:

Приклад успішної атаки levye.

Patator

Patator це найпотужніша програма для брут-форсу безлічі мережевих служб.

Приклад запуску брут-форсу RDP:

Детальніше про використання patator дивіться у картці програми https://kali.tools/?p=269, а також посилання на інструкції внизу картки програми.

Rdesktop-brute

Це модифікована версія вже розглянутої програми rdesktop, яка є клієнтом для підключення до Windows Remote Desktop. Ця версія відрізняється від оригінальної тим, що додано патч для брутфорсу. Нагадаю, що програма rdesktop вимагає додаткового налаштування у разі включеної автентифікації на рівні мережі (NLA), тому використовувати її не дуже зручно.

Збір інформації про RDP та через RDP

Rdp-sec-check для отримання характеристик налаштувань безпеки RDP служби

Інструмент rdp-sec-check перевіряє, які використовуються алгоритми шифрування та методи автентифікації, а також деякі інші параметри безпеки. Наприкінці перевірки rdp-sec-check підбиває короткий підсумок про можливі проблеми безпеки служби віддаленого робочого столу.

Встановлення rdp-sec-check у Kali Linux

Послідовність встановлення.

Встановлення rdp-sec-check у BlackArch

Команда запуску дуже проста:

На скріншоті ви можете бачити методи забезпечення безпеки, що використовуються на віддаленому RDP сервері. Після рядка [+] Summary of security issues (короткий перелік проблем безпеки) нічого немає, отже, явних проблем не виявлено.

Приклад запуску.

Перевіримо інший, менш захищений хост:

Тут ми бачимо такі проблеми безпеки сервера RDP:

В них сказано, що немає NLA і тому можлива атака DOS. Якщо не використовується NLA, то ще й можлива атака людина-посередині. Далі сказано, що SSL підтримується, але не є обов’язковою, що уможливлює атаку MITM (людина-посередині).

Приклад запуску.

Скрипти Nmap для збору інформації та аудиту RDP

Повний перелік скриптів: https://nmap.org/nsedoc/. Серед них я знайшов 3, які стосуються RDP.

Rdp-enum-encryption

Визначає, який рівень безпеки та рівень шифрування підтримуються службою RDP. Це відбувається шляхом циклічного перебору всіх протоколів і шифрів. При запуску в режимі налагодження сценарій також повертає протоколи і шифри, що відмовили, а також всі виявлені помилки.

Rdp-ntlm-info

Цей скрипт перераховує інформацію від віддалених служб RDP із включеною автентифікацією CredSSP (NLA).

Rdp-vuln-ms12-020

Перевіряє, чи є машина вразливою для уразливості MS12-020 RDP.

Для запуску потрібно використовувати опцію –script, після якої можна вказати скрипт, або кілька скриптів через кому:

Також можна задіяти всі скрипти таким чином:

Перевіряємо вразливості.

Приклад пошуку серверів RDP у локальній мережі та отримання інформації за допомогою NSE скриптів:

Атака людина – посередині на RDP

Responder

Responder це комплексний інструмент виконання атаки людина-посередині щодо методів аутентифікації Windows. Серед інших є RDP сервер.

Pyrdp

Pyrdp – це інструмент для атаки людина-посередині та бібліотека для роботи з RDP написані на Python 3. Включає три інструменти:

  • pyrdp-clonecert

  • pyrdp-mitm

  • pyrdp-player

У pyrdp немає власного спуфера, тому перенаправлення трафіку потрібно виконувати сторонніми інструментами, такими як bettercapEttercap или MITMf. Автор pyrdp створив свою власну версію bettercap, головна відмінність від оригінальної, яка при атаці перенаправляє весь трафік, у тому, що ця версія перенаправляє лише RDP трафік. Подробиці про це тут: https://github.com/GoSecure/pyrdp/blob/master/docs/bettercap-rdp-mitm.md

Приклад запуску атаки людина посередині на RDP за допомогою pyrdp:

Помилка «ImportError: cannot import name ‘RsaKey’ from ‘Crypto.PublicKey.RSA’»

Можливе виникнення наступної помилки:

Для її виправлення виконайте такі команди:

Помилка «The server failed the negotiation. Error: The server requires that the client support Enhanced RDP Security»

Також можлива така помилка:

Причина в тому, що програма не підтримує Network Level Authentication (NLA), тобто перевірку справжності лише на рівні мережі. Network Level Authentication (NLA) є хорошим способом додаткового захисту RDP, оскільки без знання атакуючим пароля користувача Windows неможливо виконати атаку людина-посередині на RDP.

Seth

seth виконує атаку MitM і отримує облікові дані у вигляді простого тексту з RDP підключень.

Використання:

Приклад запуску:

Інші програми

Sensepost-xrdp

sensepost-xrdp це найпростіший інструмент віддаленого робочого столу X11 для експлуатації сесій X11, що не потребують аутентифікації.

Sticky-keys-hunter

sticky-keys-hunter це скрипт для тестування RDP хостів на sticky keys та utilman backdoor.

Використання:

Інші статті по темі
Знайшли помилку?
Якщо ви знайшли помилку, зробіть скріншот і надішліть його боту.