Перехват RDP сессии с помощью tscon

Дата: 08.06.2020. Автор: CISO CLUB. Категории: Главное по информационной безопасности, Статьи по информационной безопасности
Перехват RDP сессии с помощью tscon

В этой статье Raj Chandel научит нас перехватывать сеанс RDP с использованием различных методов. Эту технику злоумышленники используют для проникновения вглубь инфраструктуры после получения доступа. Дальнейшее повествование идет от лица автора.

Введение в RDP

RDP представляет собой протокол удаленного рабочего стола, который работает по порту TCP / UDP 3389 и был разработан компанией Microsoft. Позднее RDP также начал работать и на других ОС. RDP позволяет пользователю подключаться к другому ПК удаленно, используя графический интерфейс. В Windows это стандартный способ для удаленного подключения, однако существует и множество аналогичных инструментов сторонних разработчиков, позволяющих удаленно управлять системами и приложениями.

Особенности RDP

В 2011 году RDP 6.0 поставляется с различными функциями. Эти функции перечислены ниже:

  • Приложения Windows Presentation Foundation
  • Поддержка нескольких мониторов
  • Перенаправление
  • Aero Glass Remoting
  • Шифрованное соединение
  • Уменьшение полосы пропускания
  • Поддерживает до 64 000 каналов для передачи данных

Работа RDP

Когда инициируется соединение RDP и данные готовы к передаче, система шифрует их. Эти зашифрованные данные затем дополнительно добавляются в кадры для передачи. Затем данные передаются по принципу TCP / IP.

Wdtshare.sys – драйвер RDP, управляет графическим интерфейсом и отвечает за шифрование и передачу данных. Он также заботится о сжатии данных и добавлении их во фреймы. Tdtcp.sys – транспортный драйвер, убедившись, что данные готовы он отправляет их по сети на по TCP / IP.

Введение в Tscon

Tscon — это утилита Microsoft Windows, представленная в ОС Windows Server 2012. Она используется для подключения к другому сеансу на сервере узла сеансов удаленных рабочих столов. Для работы ей требуется назначение и идентификатор сессии. Учетные данные пользователя также могут быть переданы в качестве параметра в tscon.

Руководство

Поняв протокол RDP и его работу, сосредоточимся на следующей составляющей — протокол RDP позволяет подключаться к другому пользователю в той же системе с помощью tscon.exe. И это то, что мы будем делать в этом методе. Сначала получим RDP-сеанс пользователя 1, то есть yashika, и как только установим RDP-соединение с yashika, получим RDP-соединение пользователя 2, то есть pavan, через yashika (user 1). Единственное условие в этом методе – нужны права администратора yashika (пользователь 1). Начнем с доказательства концепции.

Как можно видеть, на изображении ниже, у нас есть два пользователя — Yashika и Pavan

Перехват RDP сессии с помощью tscon

Теперь давайте получим IP-адрес yashika (user 1) с помощью команды ipconfig, как показано на рисунке ниже:

Перехват RDP сессии с помощью tscon

Запустим приложение для подключения к удаленному рабочему столу и введите IP-адрес целевой системы, в нашем случае это IP-адрес yashika (пользователь 1), а затем нажмите кнопку Connect, как показано на рисунке ниже:

Перехват RDP сессии с помощью tscon

Когда мы нажимаем кнопку «Подключиться», запрашиваются учетные данные для yashika (пользователь 1), как показано ниже:

Перехват RDP сессии с помощью tscon

После ввода учетных данных нажимаем кнопку «ОК», и как только мы нажимаем «ОК», графический интерфейс удаленного рабочего стола будет активирован. Теперь, когда есть доступ к yashika (пользователь 1), будем использовать пару команд из командной строки, чтобы сначала проверить информацию pavan (пользователь 2), такую ​​как их идентификатор пользователя, а затем будем использовать команду tscon для создания процесса, который будет взаимодействовать с pavan (пользователь 2), а затем запустим процесс для включения графического интерфейса удаленного рабочего стола pavan (пользователь 2).

Код:

sc create <process_name> binpath= "cmd.exe /k tscon <user 2_ID> /dest:<session_name>"

Код:

query user
sc create hijack binpath= "cmd.exe /k tscon 2 /dest:rdp-tcp#1"
net start hijack
Перехват RDP сессии с помощью tscon

И как вы можете видеть на изображении ниже, у нас есть графический интерфейс удаленного рабочего стола pavan (пользователь 2), который можно проверить с помощью команды whoami.

Перехват RDP сессии с помощью tscon

Диспетчер задач

Теперь то же самое можно сделать через диспетчер задач. Единственное условие этого метода — знать учетные данные обоих пользователей. А затем, используя описанные выше метод , просто получаем удаленный рабочий стол пользователя yashika (пользователь 1), а затем открываем диспетчер задач и переходим на вкладку пользователя. На вкладке пользователя мы можем увидеть pavan (пользователь 1), как на картинке ниже. Кликним правой кнопкой мыши на pavan (пользователь 2). Появится раскрывающееся меню. В этом меню нажмем «Подключиться».

Перехват RDP сессии с помощью tscon

Как только мы нажимаем кнопку «Подключиться», мы получаем учетные данные pavan (пользователь 2), как показано на рисунке ниже:

Перехват RDP сессии с помощью tscon

Как только мы предоставим учетные данные, будет запущен удаленный рабочий стол пользователя pavan, как показано на рисунке ниже. И затем мы снова можем проверить сеанс с помощью команды whoami.

Перехват RDP сессии с помощью tscon

Mimikatz

Еще один способ перехвата RDP — Mimikatz. Это один из лучших методов, так как в этом методе нет условий. Как только мы подключимся к yashika (user1), запустим Mimikatz. Используем следующую команду для получения различной информации о пользователе:

ts::sessions
Перехват RDP сессии с помощью tscon

Получив необходимую информацию о пользователе, используем следующую команду для повышения привилегий:

privilege::debug
token::elevate

И когда привилегии повышены, используем следующую команду, чтобы инициировать удаленное подключение GUI к pavan (пользователь 2):

ts::remote /id:1

здесь, в id: 1, 1 — номер сеанса, который мы получили с помощью команды ts :: session .

Как только вышеуказанный набор команд будет выполнен, осуществится удаленное подключение GUI к pavan (пользователь 2) через yashika (пользователь 1).

Для предотвращения взлома сеансов RDP необходимо:

  • Применять различные групповые политики, такие как авто log off после завершения RDP-сеанса,
  • Сегментация и межсетевое экранирование ЛВС,
  • Двухфакторная аутентификация,
  • Не отключать RDP полностью,
  • Убедится, что ваши сотрудники знают о том, как происходит взлом RDP,
  • Ограничить права доступа пользователя к RDP,
  • Регулярно проверять пользователей удаленного рабочего стола,
  • Мониторить tscon.exe,
  • Следить за всеми сервисами, использующими параметры cmd.exe / k или cmd.exe / c в отношении RDP.

Условия для практики

  • Для подключения к другому сеансу должно быть разрешение на полный доступ или специальное разрешение на подключение по RDP,
  • Параметр / dest: <SessionName> позволяет подключить сеанс другого пользователя к другому сеансу,
  • Если вы не укажете пароль в параметре <Password> и целевой сеанс принадлежит другому пользователю, произойдет сбой tscon.
  • Вы не можете подключиться к сеансу консоли.

TL; DR

Злоумышленники могут подключаться к различным системам / пользователям в сети, используя RDP. Этот метод известен как перехват сеанса удаленного рабочего стола. Они могут использовать различные методы кражи учетных данных, но такие инструменты, как Mimikatz, позволяют перехватывать сеансы RDP, вообще не зная учетных данных. Большое количество сеансов RDP может выполняться как удаленно, так и локально как для активных, так и для отключенных сеансов с помощью следующих команд:

query user
sc create hijack binpath= "cmd.exe /k tscon 2 /dest:rdp-tcp#1"
net start hijack

tscon.exe позволяет злоумышленнику получить сеанс RDP без ввода учетных данных. Взлом RDP-сеанса также может быть выполнен с помощью диспетчера задач (который описан выше в статье), для реализации такого метода с Mimikatz, используйте следующие команды:

privilege::debug
token::elevate
ts::remote /id:1

Вывод

Перехват RDP сессии имеет большие последствия. Популярные С2 серверы (например, Cobalt Strike и Kodiac) позволяют инициировать RDP-соединение, что дополнительно приводит к перехвату RDP-сеанса. Мошенники часто перехватывают RDP, например, Lazarus Group использовала RDP для распространения, WannaCry пытался выполнить себя в каждом сеансе, Leviathan использовал целевые учетные данные RDP и использовал его для перемещения по сети, FIN8 также использовал RDP и т. д. Поэтому важно ознакомиться с со способами перехвата RDP, чтобы защитить себя, так как неосведомленность работает в пользу злоумышленников.

CISO CLUB

Об авторе CISO CLUB

Редакция портала cisoclub.ru. Добавляйте ваш материал на сайт в разделе "Разместить публикацию".
Читать все записи автора CISO CLUB

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *