Pull to refresh

Туннелирование трафика через RDP-соединение

Level of difficultyMedium
Reading time2 min
Views13K

Данная статья представлена исключительно в образовательных целях. Red Team сообщество "GISCYBERTEAM" не несёт ответственности за любые последствия ее использования третьими лицами.

Всем привет, в этой статье пойдет речь о способе туннелирования трафика через RDP-соединение. Такой способ может подойти для тех случаев, когда мы нашли машину с доступом в новые сегменты сети, к которой есть возможность подключиться по RDP, но мы не можем подключиться к серверу chisel или прокинуть meterpreter оболочку из-за ограничений фаерволла. Именно в таких ситуациях можно использовать инструмент rdp2tcp.

rdp2tcp - инструмент для туннелирования трафика и проброса портов через существующую RDP-сессию. Сама работа инструмента устроена следующим образом (оригинал):

Для создания полноценного туннеля нам необходимо:

  1. Подключиться к целевой тачке через RDP.

  2. Запустить rdp2tcp клиент на своей тачке.

  3. Запустить rdp2tcp сервер на целевой тачке.

  4. Добавить правило перенаправления трафика в специальном инструменте.

Разберем более подробно процесс компиляции и создания туннеля. Для начала скопируем репозиторий:

git clone https://github.com/V-E-O/rdp2tcp.git

Перед самой компиляции необходимо поправить файл с инструкцией для компиляции сервера под Windows. Если взглянуть на файл Makefile.mingw32 в каталоге server, мы увидим на второй строчке компилятор, который будет использоваться для сборки бинарного файла:

Нужно изменить эту строчку с именем компилятора для нужной архитектуры. Если у вас нет компилятора - можете установить его следующим образом:

sudo apt install mingw-w64

После этого установятся разные версии под любые архитектуры. Для компиляции под x86_64 достаточно изменить значение на второй строчке на x86_64-w64-mingw32-gcc.

После этого достаточно в корневом каталоге репозитория написать:

sudo make

Теперь у нас должны скомпилироваться сервер и клиент, которые необходимы для обмена данными (см. картинку выше).

Следующим шагом будет подключение по RDP к целевой машине. Можно использовать как rdesktop, так и xfreerdp. Рассмотрим на примере подключения через xfreerdp:

xfreerdp /v:target_ip /u:user /p:pass /rdp2tcp:~/tools/rdp2tcp/client/rdp2tcp

Здесь в параметре rdp2tcp указывается путь до клиентского бинаря. Следующим шагом будет запуск сервера на целевой машине. Его можно передать через drag-n-drop, с помощью монтирования папки, и т.п., выбор за вами. После запуска сервера появятся подобные сообщения:

Последнее, что остается сделать - это добавить правило для перенаправления трафика. Для этого в каталоге tools в репозитории есть питоновский скрипт:

С помощью этого скрипта можно прокидывать порты или организовывать полноценные туннели. Для socks5-туннеля достаточно написать следующее:

python2 rdp2tcp.py add socks5 127.0.0.1 1085

Теперь с помощью proxychains можно туннелировать трафик (главное не забыть изменить порт в конфиг-файле):

Заключение

В данной статье мы рассказали, как можно туннелировать трафик через RDP-соединение, по аналогии с SSH. С помощью rdp2tcp можно также прокидывать прямые (forward) и реверсивные (reverse) порты. Мы надеемся, что эта статья поможет вам в ситуациях, подобным описанной во вступлении.

Подписывайтесь на наш Telegram-канал https://t.me/giscyberteam

Tags:
Hubs:
Total votes 7: ↑7 and ↓0+7
Comments5

Articles