Перечисление RDP и доступ по слабому паролю

LinuxBeginner
Практиковаться сейчас

Введение

Добро пожаловать в этот практический лабораторный практикум, посвященный перечислению (enumeration) и эксплуатации протокола удаленного рабочего стола (Remote Desktop Protocol, RDP). RDP — это распространенный протокол, используемый администраторами для удаленного управления системами Windows. Однако при неправильной настройке он может представлять значительный риск для безопасности.

В этом практикуме вы смоделируете распространенный вектор атаки, при котором злоумышленник сканирует открытые RDP-сервисы, выявляет слабые конфигурации и получает доступ, используя учетные данные по умолчанию или легко угадываемые. Вы будете использовать стандартные инструменты тестирования на проникновение, такие как nmap для сканирования и xfreerdp для подключения к удаленной сессии. Ваша конечная цель — навигация по скомпрометированной системе и извлечение скрытого флага.

По завершении вы научитесь:

  • Проверять сетевое подключение к целевой системе.
  • Использовать nmap для сканирования и перечисления RDP-сервисов.
  • Выявлять уязвимости безопасности, такие как низкие уровни шифрования.
  • Пытаться получить доступ с использованием слабых учетных данных с помощью xfreerdp.
  • Выполнять базовую пост-эксплуатацию для поиска конфиденциальной информации.

Приступим к этому практическому упражнению по кибербезопасности.

Проверка подключения к цели с помощью Ping

На этом этапе вы выполните первую фазу разведки: подтвердите, что целевая система находится в сети и доступна с вашей машины. Команда ping — это стандартный инструмент сетевой диагностики, который отправляет ICMP-пакеты на хост для проверки подключения.

Ваша среда включает целевую систему, доступную по имени хоста target. Чтобы убедиться, что вы можете с ней связаться, выполните следующую команду в терминале, чтобы отправить четыре пакета:

ping -c 4 target

Вы должны увидеть ответ, похожий на приведенный ниже. Это подтверждает, что цель активна, и ваш сетевой путь свободен. IP-адрес и время ответа могут незначительно отличаться.

PING target (172.17.0.2) 56(84) bytes of data.
64 bytes from target (172.17.0.2): icmp_seq=1 ttl=64 time=0.105 ms
64 bytes from target (172.17.0.2): icmp_seq=2 ttl=64 time=0.069 ms
64 bytes from target (172.17.0.2): icmp_seq=3 ttl=64 time=0.068 ms
64 bytes from target (172.17.0.2): icmp_seq=4 ttl=64 time=0.067 ms

--- target ping statistics ---
4 packets transmitted, 4 received, 0% packet loss, time 3075ms
rtt min/avg/max/mdev = 0.067/0.077/0.105/0.016 ms

После подтверждения подключения вы готовы перейти к более детальному сканированию.

Сканирование открытых портов с помощью Nmap

На этом этапе вы будете использовать nmap для сканирования целевой системы на наличие открытых портов и идентификации служб, работающих на них. Это критически важная часть перечисления, поскольку она раскрывает потенциальные поверхности атаки. Мы специально проверим службу RDP, которая обычно работает на порту 3389.

Выполните следующую команду nmap для сканирования версий (-sV) на порту 3389 (-p 3389) и запустите скрипт (--script) для проверки уровней шифрования RDP:

nmap -sV -p 3389 --script rdp-enum-encryption target

Вывод предоставит подробную информацию о службе RDP.

Starting Nmap 7.80 ( https://nmap.org ) at 2025-09-18 14:51 CST
Nmap scan report for target (172.17.0.2)
Host is up (0.00038s latency).

PORT     STATE SERVICE       VERSION
3389/tcp open  ms-wbt-server xrdp
| rdp-enum-encryption:
|   Security layer
|     CredSSP (NLA): SUCCESS
|     CredSSP with Early User Auth: SUCCESS
|     Native RDP: SUCCESS
|     RDSTLS: SUCCESS
|     SSL: SUCCESS
|   RDP Encryption level: High
|     128-bit RC4: SUCCESS
|_  RDP Protocol Version:  RDP 5.x, 6.x, 7.x, or 8.x server

Nmap done: 1 IP address (1 host up) scanned in 13.57 seconds

Из результатов сканирования видно, что порт 3389/tcp открыт и на нем работает служба xrdp. Хотя уровень шифрования указан как "High" (Высокий), основная уязвимость заключается в слабых учетных данных, а не в слабостях шифрования. Служба поддерживает несколько методов аутентификации, и на следующем шаге мы будем использовать аутентификацию по паролю со слабым паролем.

Подключение к цели через RDP

На этом этапе вы попытаетесь подключиться к службе RDP, используя учетные данные administrator и password. Эта пара является распространенной настройкой по умолчанию и часто является основной целью для атак методом перебора. Вы будете использовать xfreerdp, клиент RDP командной строки для Linux.

Сначала убедитесь, что xfreerdp установлен. Скрипт настройки должен был позаботиться об этом, но при необходимости вы можете выполнить sudo apt install freerdp2-x11.

Теперь выполните следующую команду для подключения к target:

xfreerdp /u:administrator /p:password /v:target
  • /u:administrator: Указывает имя пользователя.
  • /p:password: Указывает пароль.
  • /v:target: Указывает адрес сервера.

Вы можете увидеть предупреждение о сертификате, поскольку цель использует самоподписанный сертификат. Это нормально для лабораторных сред. Введите yes и нажмите Enter, чтобы продолжить.

[11:25:30:789] [INFO][com.freerdp.client.x11] - Please check if the server is running with the correct certificate.
[11:25:30:789] [INFO][com.freerdp.client.x11] - Certificate details:
...
The certificate is not trusted. Do you trust the certificate? (Y/N) yes
RDP Connection

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

Исследование целевой системы и поиск флага

На этом этапе ваша конечная цель — исследовать удаленную систему и найти флаг. Это имитирует фазу пост-эксплуатации, когда злоумышленник ищет ценные данные.

В окне RDP-сессии вы увидите рабочий стол. Существует несколько способов найти и просмотреть флаг:

Способ 1: Использование файлового менеджера

  1. Найдите и откройте приложение Файловый менеджер (оно может выглядеть как значок папки).
  2. Перейдите в папку Documents в домашнем каталоге пользователя administrator: /home/administrator/Documents.
  3. Найдите файл с именем flag.txt.
  4. Дважды щелкните flag.txt, чтобы открыть его в текстовом редакторе (Mousepad).
File Manager

Способ 2: Использование терминала

  1. Откройте приложение Терминал с рабочего стола или из меню.
  2. Выполните команду: cat /home/administrator/Documents/flag.txt
Terminal window showing command to display flag

Любой из этих способов отобразит содержимое файла с флагом.

labex{w34k_p4ssw0rd_rdp_pwn3d}

Поздравляем! Вы успешно провели перечисление RDP-сервиса, использовали слабый пароль и получили флаг.

Важно: Для завершения проверки лаборатории вам необходимо скопировать значение флага и сохранить его в файл на хост-машине. Создайте файл с именем flag.txt в каталоге /home/labex/project и вставьте в него содержимое флага.

echo "labex{w34k_p4ssw0rd_rdp_pwn3d}" > /home/labex/project/flag.txt

Теперь вы можете закрыть окно RDP, чтобы отключить сессию.

Резюме

В этой лаборатории вы успешно выполнили симуляцию атаки на неправильно сконфигурированную службу Remote Desktop Protocol. Вы прошли ключевые этапы тестирования на проникновение:

  • Разведка (Reconnaissance): Вы использовали ping для подтверждения доступности цели.
  • Перечисление (Enumeration): Вы использовали nmap с определенными скриптами для обнаружения открытого порта RDP и сбора сведений о его конфигурации, таких как низкий уровень шифрования.
  • Эксплуатация (Exploitation): Вы использовали xfreerdp для получения доступа к удаленной системе, используя слабый, предсказуемый пароль для учетной записи administrator.
  • Пост-эксплуатация (Post-Exploitation): Вы перемещались по структуре файлов скомпрометированной системы, чтобы найти и получить флаг.

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