Туннелирование трафика через RDP-соединение
В этой статье пойдет речь о способе туннелирования трафика через RDP-соединение. Для этого воспользуемся утилитой rdp2tcp, которая является готовым инструментом для туннелирования трафика и проброса портов через существующую RDP-сессию. Сама работа инструмента устроена следующим образом (оригинал):
Для создания полноценного туннеля нам необходимо:
- Подключиться к целевой машине через RDP.
- Запустить rdp2tcp клиент на своей тачке.
- Запустить rdp2tcp сервер на целевой тачке.
- Добавить правило перенаправления трафика в специальном инструменте.
Разберем более подробно процесс компиляции и создания туннеля. Для начала скопируем репозиторий:
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 можно туннелировать трафик (главное не забыть изменить порт в конфиг-файле):