Вбудований Remote Desktop Connection (RDP) клієнт Windows (mstsc.exe) при кожному успішному з’єднанні з віддаленим комп’ютером зберігає в системі його ім’я (або ip адреса) і ім’я користувача, під яким був виконаний вхід. При наступному запуску клієнт RDP пропонує користувачеві вибрати одне з підключень, якими він вже користувався раніше. Користувач може вибрати зі списку ім’я віддаленого RDP / RDS сервера, і клієнт автоматично підставляє використовується раніше для входу ім’я користувача.

Це зручно з точки зору кінцевого користувача, але не безпечно. Особливо, коли ви підключаєтеся до свого RDP сервера з загальнодоступного або недовірених комп’ютера.

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

mstsc.exe відображає історію rdp підключень

У цій статті ми покажемо, де в Windows зберігається історія підключень до віддалених робочих столів і збережені паролі, і яким чином можна цю історію очистити.

Видалення журналу RDP підключень з реєстру системи

Інформація про всіх RDP підключених зберігається в реєстрі кожного користувача. Видалити комп’ютер (и) зі списку історії RDP підключень штатними засобами Windows не вийде. Доведеться вручну видаляти параметри з реєстру системи.

  1. Відкрийте редактор реєстру regedit.exe і перейдіть в гілку ХКЕЙ_СТРУМ_КОРИСТУВАЧПрограмне забезпеченняMicrosoftТермінал Сервер Клієнт;
  2. Усередині цього розділу нас цікавлять дві гілки: За замовчуванням (Зберігає історію про 10 останніх RDP підключених) і Сервери (Містить список всіх RDP серверів і імен користувачів, які використовуються раніше для входу);Terminal Server Client MRU гілка реєстру з останніми RDP підключеннями
  3. Розгорніть гілку реєстру HKEY_CURRENT_USER Software Microsoft Terminal Server Client За замовчуванням, В якій міститься список 10 адрес або імен віддалених комп’ютерів, які використовувалися останніми (MRU – Most Recently Used). Ім’я (IP адреса) віддаленого сервера зберігається в значенні ключа MRU *. Щоб очистити історію останніх RDP-з’єднань, виділіть всі ключі з іменами MRU0-MRU9, Клацніть правою клавішею і виберіть пункт Видалити;очищення rdp історії в реєстрі
  4. Тепер розгорніть гілку HKEY_CURRENT_USER Software Microsoft Terminal Server Client Сервери. У ній міститься список всіх RDP підключень, які використовувалися раніше під цим користувачем. Розгорніть гілку з ім’ям (IP адресою) будь-якого хоста. Зверніть увагу на значення параметра Ім’я користувача (Підказка імені користувача). У ньому вказано ім’я користувача, що використовується для підключення до RDP / RDS хосту. Саме це ім’я користувача буде підставлена ​​у вікно клієнта mstsc.exe, коли ви наступного разу спробуєте підключиться до цього хосту. Крім того в змінної CertHash знаходиться відбиток RDP сертифіката сервера (див. статтю про налаштування довірених TLS / SSL СЕРТФІКАТА для RDP);збережені дані rdp сервера в реєстру windows
  5. Щоб очистити історію всіх RDP-підключень і збережених імен користувачів потрібно очистити вміст гілки реєстру Servers. Оскільки виділити всі вкладені гілки не вийде, найпростіше видалити гілку Servers цілком, а потім перебудувати її вручну;видалити історію rdp підключень
  6. Крім зазначених вище параметрів і гілок реєстру, вам необхідно видалити файл дефолтного RDP підключення За замовчуванням.rdp. У цьому файлі зберігається інформацію про самому останньому RDP підключенні. Файл є прихованим і знаходиться в каталозі Документи (Документи);
  7. Windows також зберігає історію RDP підключень в списках швидкого переходу (jump lists). Якщо ви наберете в пошуковому рядку Windows 10 mstsc, То в списку з’явиться раніше використані RDP підключення. Ви можете відключити ведення історії швидкого переходу з допомогою dword параметра реєстру Почніть_TrackDocs в гілці HKEY_CURRENT_USERSoftwareMicrosoftWindowsCurrentVersionExplorerAdvanced, Або можна очистити списки Resent Items, видаливши файли в каталозі %AppData%MicrosoftWindowsRecentAutomaticDestinations.mstsc.exe rdp останні елементи

Примітка. Описана методика очищення історії підключень Remote Desctop Connection застосовна для всіх версій десктопних версій (від Windows XP і до Windows 10) і для серверних платформ Windows Server.

Скрипт очищення історії (логів) RDP підключень

Вище ми показали, як вручну очистити історію RDP підключень в Windows. Однак робити це вручну (особливо на декількох комп’ютерах) – заняття досить довгий. Тому ми пропонуємо невеликий скрипт (bat-файл), який дозволяє автоматично очистити історію підключень до віддалених робочих столів.

Для автоматизації очищення історії RDP, даний скрипт можна помістити в автозавантаження, або поширити його на комп’ютери користувачів за допомогою логоф скрипта групової політики.

@echo off
reg delete "HKEY_CURRENT_USERSoftwareMicrosoftTerminal Server ClientDefault" /va /f
reg delete "HKEY_CURRENT_USERSoftwareMicrosoftTerminal Server ClientServers" /f
reg add "HKEY_CURRENT_USERSoftwareMicrosoftTerminal Server ClientServers"
attrib -s -h %userprofile%documentsDefault.rdp
del %userprofile%documentsDefault.rdp
del /f /s /q /a %AppData%MicrosoftWindowsRecentAutomaticDestinations

Послідовно розберемо все команди скрипта:

  1. Відключений висновок інформації в консоль;
  2. Видалення всіх параметрів в гілці HKCU Software Microsoft Terminal Server Client Default (очищення списку останніх 10 RDP з’єднань);
  3. Видалення гілки HKCU Software Microsoft Terminal Server Client Servers разом з вкладеними елементами (очищення списку всіх RDP підключень і збережених імен користувачів);
  4. Перетворюємо гілку реєстру Servers;
  5. Прибираємо атрибути Прихований і Системний у файлу default.rdp в каталозі профілю поточного користувача;
  6. Видалення файлу default.rdp;
  7. Очищення останніх предметів.

Ви можете завантажити готовий скрипт тут: CleanRDPHistory.bat

Крім того, можна очистити історію підключень RDP за допомогою наступного PowerShell скрипта:
Get-ChildItem "HKCU:SoftwareMicrosoftTerminal Server Client" -Recurse | Remove-ItemProperty -Name UsernameHint -Ea 0
Remove-Item -Path 'HKCU:SoftwareMicrosoftTerminal Server Clientservers' -Recurse  2>&1 | Out-Null
Remove-ItemProperty -Path 'HKCU:SoftwareMicrosoftTerminal Server ClientDefault' 'MR*'  2>&1 | Out-Null
$docsfoldes = [environment]::getfolderpath("mydocuments") + 'Default.rdp'
remove-item  $docsfoldes  -Force  2>&1 | Out-Null

Примітка. До речі, функція очищення логів RDC вбудована в багато «чистильники» системи і реєстру, такі як, CCCleaner і т.д.

Як заборонити Windows зберігати історію RDP підключень?

Якщо ви хочете, щоб система Windows не зберігала історію RDP підключень, потрібно заборонити запис в гілку реєстру HKCU Software Microsoft Terminal Server Client для всіх акаунтів, в тому числі System. Спочатку вимкніть успадкування дозволів на зазначену гілку (Permissions -> Advanced -> Disable inheritance). Потім змініть ACL на гілку, виставивши Заперечувати галочку для користувачів (але, ви повинні розуміти, що це вже unsupported configuration …).

заборонити windows зберігати історію rdp підключень в реєстрі

В результаті mstsc просто не зможе записати інформацію про RDP підключенні до реєстру.

Очищення Bitmap кеша RDP

В клієнті Remote Desktop Connection є функціонал кешування зображень (persistent bitmap caching). Клієнт RDP при підключенні зберігає рідко змінюються шматки віддаленого екрану у вигляді кешу растрових зображень. Завдяки цьому клієнт mstsc.exe завантажує з локального кеша частині екрана, які не змінилися з моменту останньої промальовування. Цей механізм кешування RDP зменшує кількість даних, переданих по мережі.

RDP кеш є два типи файлів в каталозі %LOCALAPPDATA%MicrosoftTerminal Server ClientCache:

terminal server client кешированниє картинки для rdp підключення

У цих файлах зберігаються сирі растрові зображення RDP екрану у вигляді плиток 64 × 64 пікселя. За допомогою простих PowerShell або Python скриптів (легко шукаються за запитом RDP Cached Bitmap Extractor) можна отримати PNG файли з шматками екрану робочого столу і використовувати їх для отримання конфіденційної інформації. Розмір плиток малий, але достатній для отримання корисної інформації для вивчає RDP кеш.

RDP-кешований растровий екстрактор

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

відключити Постійне кешування точкових малюнків в rdp сесії

Кілька разів при використанні RDP кеша стикався з його пошкодженням:

Bitmap Disk Cache Failure. Your disk is full or the cache directory is missing or corrupted.  Some bitmaps may not appear.

В цьому випадку потрібно очистити каталог RDP кеша або відключити опцію Bitmap Caching.

Видалення збережених RDP паролів

Якщо при установці віддаленого RDP підключення, перед введенням пароля користувач поставив галку Remember Me / Запам’ятати мене, то ім’я користувача і пароль будуть збережені в системному менеджері паролів системи (Credential Manager). При наступному підключенні до цього ж комп’ютера, RDP клієнт автоматично використовує збережений раніше пароль для авторизації на віддаленому комп’ютері.

rdp клієнт пропонує зберегти пароль користувача

Ви можете видалити збережений пароль прямо з вікна клієнта mstsc.exe. Виберіть зі списку з’єднань теж саме підключення, і натисніть на кнопку Видалити. Далі підтвердіть видалення збереженого пароля.

mstsc - видалити збережений пароль rdp підключення

Або можна видалити збережений пароль безпосередньо з менеджера паролів Windows. Перейдіть в наступний розділ Панелі Управління: Control Panel User Accounts Credential Manager. Оберіть Керуйте обліковими даними Windows і в списку збережених паролів знайдіть ім’я комп’ютера (в форматі TERMSRV/192.168.1.100). Розгорніть знайдений елемент і натисніть на кнопку Видалити.

Видалити збережений rdp пароль в менеджері паролів

У доменній середовищі ви можете заборонити збереження паролів для RDP підключень можна за допомогою політики Доступ до мережі: Не дозволяйте зберігати паролі та облікові дані для автентифікації мережі (Див. Статтю).

Очищення RDP логів на сервері

Список підключення так само ведуться на стороні RDP / RDS сервера. Ви можете знайти інформацію про RDP підключених в логах Event Viewer:

  • Безпека;
  • Журнали програм та служб -> Microsoft -> Windows -> TerminalServices-RemoteConnectionManager -> Operational;
  • TerminalServices-LocalSessionManager -> Admin.

rdp логи в журналі подій TerminalServices-RemoteConnectionManager

Детальніше про аналіз логів RDP в статті.

Ви можете очистити журнали Event Viewer на RDP сервері за допомогою wevtutil або PowerShell.

Leave a Reply

Your email address will not be published. Required fields are marked *