Kali linux rdp сервер
Kali Linux is supported on many different devices and systems. On some of those systems, you may only get a bare-bones install and occasionally may not have direct access to a GUI such as with WSL or Docker. One simple way to get access to a GUI for Kali is by installing Xfce and setting up RDP. This can be done either manually or with the script provided here, and can be seen below:
Before we can start the process of setting up Xfce and RDP, we must first acknowledge some differences with certain systems Kali is on. The first is Docker. To use this setup with Docker, we must supply a launch command like the following:
docker run -p 3390:3390 —expose=3390 —tty —interactive kalilinux/kali-rolling /bin/bash
For additional usage on Docker, such as how to resume an exited container, please read using Kali Docker images.
For AWS, we must be sure to allow our IP to access the proper ports when we set up the machine.
To use the script we do the following:
[email protected]:/$ apt update && DEBIAN_FRONTEND=noninteractive apt install -y wget kali-linux-headless [email protected]:~$ wget https://gitlab.com/kalilinux/recipes/kali-scripts/-/raw/main/xfce4.sh [email protected]:~$ [email protected]:~$ chmod +x xfce4.sh [email protected]:~$ [email protected]:~$ sudo ./xfce4.sh [email protected]:~$
Setting this up manually will provide more control over what configuration is done, but also will take a bit longer.
If you are using WSL, dbus-x11 needs to be installed next for xrdp and xfce to connect:
[email protected]:~$ sudo apt install -y dbus-x11 [email protected]:~$
After you set up Xfce and RDP, you need to start the service:
[email protected]:~$ sudo systemctl enable xrdp --now [email protected]:~$ # If on WSL or Docker [email protected]:~$ sudo /etc/init.d/xrdp start [email protected]:~$
In the case of AWS, you will need to change the password to the default ‘kali’ account before connecting. This can be done with the following command:
[email protected]:~$ echo kali:kali | sudo chpasswd [email protected]:~$
If you are using Docker, you will need to create a new user. You can do this with adduser
[email protected]:~$ adduser kali [. ] [email protected]:~$
You can then connect with a RDP client to that system. Keep in mind the port that is being used. If you used the script, the port would be 3390. In the case of WSL and Docker, the IP would be 127.0.0.1:3390 that you would wish to connect to from your windows system (or the host systems IP from a separate computer). In the case of AWS, the IP would be the same as you use to connect via SSH.
You may encounter the error Authentication Required to Create Managed Color Device when trying to connect. Do the following to fix this issue.
Updated on: 2023-May-19
Author: gamb1t
Как установить и запустить RDP сервер в Linux
В этой инструкции мы рассмотрим два RDP сервера для Linux: freerdp-shadow (входит в пакет freerdp) и xrdp.
Как использовать freerdp-shadow для запуска RDP сервера
Для установки freerdp в Debian, Kali Linux, Linux Mint, Ubuntu и производные выполните команду:
sudo apt install freerdp2-shadow-x11 winpr-utils
Для установки freerdp в Arch Linux и производные выполните команду:
Исполнимые файлы в разных дистрибутивах называются чуть по-разному. В Debian, Kali Linux, Linux Mint, Ubuntu файл для запуска RDP сервера называется: freerdp-shadow-x11
А в Arch Linux файл для запуска RDP сервера называется: freerdp-shadow-cli
Но по сути это одна программа и опции у них одинаковые.
Чуть выше, говоря о rdesktop, мы уже столкнулись с Network Level Authentication (NLA), то есть проверкой подлинности на уровне сети. Для запуска RDP сервера на Linux вы должны выбрать один из двух вариантов:
- запустить сервер вовсе без аутентификации
- включить NLA и сделать необходимые для неё настройки
Чтобы запустить RDP сервер вовсе без аутентификации используйте опцию -auth:
Если аутентификация включена, PAM используется с подсистемой X11. Запуск от имени пользователя root не обязателен, однако, если запускать от имени пользователя, только тот же пользователь, который запустил freerdp-shadow, может аутентифицироваться. Предупреждение: если аутентификация отключена, каждый может подключиться.
Любая сетевая служба без аутентификации это беда для безопасности системы. Поэтому рассмотрим, как запустить freerdp-shadow с поддержкой NLA.
Прежде всего для NLA необходимо создать файл, в котором будет строка вида:
Имя пользователя Linux нам известно, для вычисления хеша нужно выполнить команду вида:
winpr-hash -u ПОЛЬЗОВАТЕЛЬ -p ПАРОЛЬ
К примеру, имя пользователя mial, а пароль цифра 2 тогда команда следующая:
8f33e2ebe5960b8738d98a80363786b0
Создаём текстовый файл SAM и в него записываем строку
mial. 8f33e2ebe5960b8738d98a80363786b0.
Теперь запускаем freerdp-shadow-x11 с двумя опциями:
- /sam-file:ФАЙЛ — указывает на расположение NTLM SAM файла для NLA аутентификации
- /sec:nla — принудительное включение аутентификации по протоколу NLA
Итак, моя команда следующая:
freerdp-shadow-x11 /sam-file:SAM /sec:nla
Для проверки подключаюсь из Windows:
У нас запрашивают пароль — это означает, что на сервере RDP включена аутентификация NLA.
Для того, чтобы делиться не всем экраном, а только его частью, используйте опцию /rect:x,y,w,h. Где:
- x,y — координаты верхнего левого угла прямоугольника
- w — ширина прямоугольника
- h — высота прямоугольника
К примеру, чтобы делиться частью экрана 500×500 пикселей с координатами 200,300:
freerdp-shadow-x11 /sam-file:SAM /sec:nla /rect:200,300,500,500
Ошибка freerdp-shadow «client authentication failure: -1»
Если при запуске RDP сервера freerdp-shadow вы получили ошибку:
[11:54:02:458] [1921:1925] [ERROR][com.freerdp.client.shadow] - client authentication failure: -1 [11:54:02:458] [1921:1925] [ERROR][com.freerdp.core.peer] - peer_recv_callback: CONNECTION_STATE_FINALIZATION - peer_recv_pdu() fail [11:54:02:458] [1921:1925] [ERROR][com.freerdp.core.transport] - transport_check_fds: transport->ReceiveCallback() - -1 [11:54:02:458] [1921:1925] [ERROR][com.freerdp.client.shadow] - Failed to check FreeRDP file descriptor
То необходимо создать файл SAM и запустить freerdp-shadow с опциями /sam-file:SAM /sec:nla как это показано выше.
Как запустить RDP сервер с xrdp
Для установки xrdp в Debian, Kali Linux, Linux Mint, Ubuntu и производные выполните команду:
Для установки xrdp в Arch Linux и производные выполните команды:
sudo pacman -S alsa-lib mesa git clone https://aur.archlinux.org/xrdp.git cd xrdp makepkg -si
Для запуски служб xrdp-sesman и xrdp в любом дистрибутиве выполните команду:
sudo systemctl start xrdp-sesman.service
Важные файлы xrdp:
- /etc/xrdp/xrdp.ini — файл настроек
- /var/log/xrdp.log — файл журналов событий
Подключаемся из Windows к xrdp. Вводим имя пользователя и пароль пользователя Linux:
Теперь мы можем выполнять команды на компьютере с Linux так, будто бы мы сидим за ним: