Боковое движение - RDP

Протокол удаленного рабочего стола (RDP) широко используется во внутренних сетях администраторами. Это позволяет администраторам и администраторам систем дистанционно управлять средами Windows. Однако RDP может дать различные возможности атакующему для проведения атак, которые могут использоваться для бокового перемещения в сценариях красной команды. Атаки ниже могут позволить красной команде получить учетные данные, захватить сеансы RDP других пользователей и выполнить произвольный код для удаленных систем, которые будут использовать RDP в качестве механизма аутентификации для зараженных рабочих станций.

RDP Man-in-the-Middle

Внедрение атаки «Человек-в-середине» часто может привести к захвату учетных данных. Выполнение этой атаки на сеансы RDP позволит злоумышленнику тривиально получить пароль открытого текста учетной записи домена для целей бокового перемещения. Seth - это инструмент, который может автоматизировать атаки RDP Man-in-the-middle независимо от того, включена ли аутентификация уровня сети (NLA). Для реализации этой атаки требуются четыре параметра:
  • Интерфейс Ethernet
  • IP атакующего
  • IP-адрес рабочей станции-жертвы (клиента)
  • IP целевого RDP хоста (сервера)
1
./seth.sh eth0 10.0.0.2 10.0.0.3 10.0.0.1
Сет - Человек в центре
Сет - Человек в центре
После выполнения инструмент выполнит на заднем плане ряд шагов, чтобы убедиться, что атака будет успешно выполнена. Эти шаги:
  1. Подмена ответов ARP
  2. Включить пересылку трафика IPv4 для перенаправления трафика с хоста-жертвы на машину злоумышленника, а затем на целевой RDP-сервер.
  3. Настройте правило iptable для отклонения пакета SYN для предотвращения прямой проверки подлинности RDP.
  4. Захват SYN-пакета хоста назначения.
  5. Клон сертификата SSL.
  6. Переконфигурируйте правила iptables для маршрутизации трафика с рабочей станции-жертвы на целевой хост RDP.
  7. Блокируйте трафик на порт 88, чтобы обновить аутентификацию Kerberos до NTLM.
Шаги 1-3 будут выполняться до аутентификации жертвы. Пользователь, который попытается выполнить аутентификацию через RDP на целевой сервер, будет представлен следующим сообщением:
Подключение к удаленному рабочему столу - ошибки сертификата
Подключение к удаленному рабочему столу - ошибки сертификата
Когда пользователь установит соединение, учетные данные будут отображаться в текстовом виде злоумышленнику.
Пароль Seth - RDP в обычном тексте
Пароль Seth - RDP в обычном тексте

Создание RDP

MDSec обнаружил технику, которая позволяет злоумышленнику выполнять боковое перемещение внутри сети, выполняя произвольный код при запуске и распространяясь через cоединения RDPЧтобы облегчить эту атаку, MDSec разработала пакетный скрипт для реализации доказательства концепции и сценария кобальтового удара. Выполнение пакетного скрипта на рабочей станции, которое уже получил доступ злоумышленник, будет результатом оболочки.
Запуск RDP - выполнение файла BAT
Запуск RDP - выполнение файла BAT
Если пользователь с повышенными правами (администратор или администратор домена) пытается аутентифицироваться через RDP с уже зараженным хостом, пакетный скрипт будет скопирован и в системе другого пользователя.
Начало RDP - администратор подключается к рабочей станции через RDP
Начало RDP - администратор подключается к рабочей станции через RDP
Пакетный скрипт будет выполняться каждый раз, когда рабочая станция запускается, чтобы добиться настойчивости.
Начало RDP - распространение кода
Начало RDP - распространение кода
Когда повышенный пользователь, прошедший проверку подлинности через RDP с зараженным хостом, перезагрузит свою машину, код будет выполнен.
Начало RDP - выполнение кода на DC
Начало RDP - выполнение кода на DC
Новый сеанс Meterpreter откроется, однако на этот раз на хосте администратора, злоупотребляя службой RDP и без необходимости атаковать эту систему напрямую.
Начало RDP - Meterpreter на DC
Начало RDP - Meterpreter на DC
Список активных сеансов Meterpreter будет проверять, имеет ли доступ злоумышленник в обеих системах.
Начало работы RDP - активные сеансы Meterpreter
Начало работы RDP - активные сеансы Meterpreter

Удар по сеансу RDP

В случае получения доступа локального администратора в целевой системе злоумышленник может захватить RDP-сеанс другого пользователя. Это устраняет необходимость обнаружения злоумышленником учетных данных этого пользователя. Этот метод был первоначально обнаружен Александром Корзниковым, и это было описано в его блоге .
Список доступных сеансов, которые можно использовать, можно получить из диспетчера задач Windows на вкладке « Пользователи ».
RPD Session Gui
RDP Session Gui
Та же информация может быть получена из командной строки.
1
query user
Терминал сеансов RDP
Терминал сеансов RDP
Создание службы, которая будет выполнять tscon с правами системного уровня, приведет к захвату сеанса, который имеет 3 в качестве идентификатора.
1
2
sc create sesshijack binpath= "cmd.exe /k tscon 3 /dest:rdp-tcp#0"
net start sesshijack
При запуске службы пользователь « test » может использовать сеанс netbiosX, не зная его пароля.
Захват сеанса RDP через службу - netbiosX Пользователь
Захват сеанса RDP через службу - netbiosX Пользователь
Mimikatz также поддерживает эту технику. Первый шаг - получить список сеансов служб терминалов.
1
ts::sessions
Mimikatz - сеансы служб терминалов
Mimikatz - сеансы служб терминалов
Попытки использовать сеанс 1 напрямую не сработают, поскольку Mimikatz не был выполнен как SYSTEM. Поэтому следующие команды повысят токен от локального администратора до SYSTEM, чтобы использовать другой сеанс без необходимости знать пароль пользователя.
1
2
3
ts::remote /id:1
privilege::debug
token::elevate
При повторном выполнении следующей команды будет захвачен сеанс пользователя netbiosX.
1
ts::remote /id:1
Mimikatz - сессия RDP netbiosX
Mimikatz - сессия RDP netbiosX

Комментарии