Skip to content

Instantly share code, notes, and snippets.

@patrickceg
Forked from mimura1133/install.sh
Last active March 24, 2020 02:08
Show Gist options
  • Save patrickceg/e4b9b645ce14a3b16ff4989be2caad86 to your computer and use it in GitHub Desktop.
Save patrickceg/e4b9b645ce14a3b16ff4989be2caad86 to your computer and use it in GitHub Desktop.
Enhanced Session for Kali Linux.
#!/bin/bash
# Original : https://raw.githubusercontent.com/Microsoft/linux-vm-tools/master/arch/install-config.sh
###############################################################################
# Update our machine to the latest code if we need to.
#
if [ "$(id -u)" -ne 0 ]; then
echo 'This script must be run with root privileges' >&2
exit 1
fi
apt update && apt upgrade -y
if [ -f /var/run/reboot-required ]; then
echo "A reboot is required in order to proceed with the install." >&2
echo "Please reboot and re-run this script to finish the install." >&2
exit 1
fi
###############################################################################
# Install XRDP
#
apt install -y xrdp
###############################################################################
# Configure XRDP
#
systemctl enable xrdp
systemctl enable xrdp-sesman
# Configure the installed XRDP ini files.
# use vsock transport.
sed -i_orig -e 's/use_vsock=false/use_vsock=true/g' /etc/xrdp/xrdp.ini
# use rdp security.
sed -i_orig -e 's/security_layer=negotiate/security_layer=rdp/g' /etc/xrdp/xrdp.ini
# remove encryption validation.
sed -i_orig -e 's/crypt_level=high/crypt_level=none/g' /etc/xrdp/xrdp.ini
# disable bitmap compression since its local its much faster
sed -i_orig -e 's/bitmap_compression=true/bitmap_compression=false/g' /etc/xrdp/xrdp.ini
sed -n -e 's/max_bpp=32/max_bpp=24/g' /etc/xrdp/xrdp.ini
sed -i_orig -e 's/X11DisplayOffset=10/X11DisplayOffset=0/g' /etc/xrdp/sesman.ini
# Use vsock listener
sed -i_orig -e 's,port=3389,port=vsock://-1:3389,g' /etc/xrdp/xrdp.ini
# rename the redirected drives to 'shared-drives'
sed -i_orig -e 's/FuseMountName=thinclient_drives/FuseMountName=shared-drives/g' /etc/xrdp/sesman.ini
# Change the allowed_users
echo "allowed_users=anybody" > /etc/X11/Xwrapper.config
#Ensure hv_sock gets loaded
if [ ! -e /etc/modules-load.d/hv_sock.conf ]; then
echo "hv_sock" > /etc/modules-load.d/hv_sock.conf
fi
# Configure the policy xrdp session
cat > /etc/polkit-1/localauthority/50-local.d/45-allow-colord.pkla <<EOF
[Allow Colord all Users]
Identity=unix-user:*
Action=org.freedesktop.color-manager.create-device;org.freedesktop.color-manager.create-profile;org.freedesktop.color-manager.delete-device;org.freedesktop.color-manager.delete-profile;org.freedesktop.color-manager.modify-device;org.freedesktop.color-manager.modify-profile
ResultAny=no
ResultInactive=no
ResultActive=yes
EOF
###############################################################################
# .xinitrc has to be modified manually.
#
#echo "exec gnome-session" > ~/.xinitrc
echo "exec startxfce4" > ~/.xinitrc # thanks @rasschaert and @patrickceg.
echo "You will have to configure .xinitrc to start your windows manager, see https://wiki.archlinux.org/index.php/Xinit"
echo "Reboot your machine to begin using XRDP."
@patrickceg
Copy link
Author

patrickceg commented Jan 22, 2020

Hmm I noticed there's updates to xrdp with updates to both .ini files, so I wonder if the newest Kali broke something.

EDIT: Confirmed after updates mine's broken in the same way. ...yay it's debugging time... The first thing I noticed is the update overwrote both /etc/xrdp/xrdp.ini and /etc/xrdp/sesman.ini so it would be useful to see what's changed in those.

EDIT 2: Also the error "address already in use" is not referring to IP address / port because there is nothing listening on port 3389 on my system. Therefore it's more likely referring to a "address" for a graphical system (like how VNC sessions have IDs :1, :2, etc). That's just speculation though; essentially it's just that xrdp is now crashing on startup.

@nathanVader
Copy link

I found a solution editing xrdp.ini and changing the port value to this:
port=vsock://-1:3389

That makes it work in Kali with Xfce

@VictorXLR
Copy link

VictorXLR commented Jan 22, 2020

Im using the gnome display and after i made the change in /etc/xrdp/xrdp.ini suggested by @nathanVader. I was able to get the slider to connect from HyperV and get the xrdp connect screen but after i input my username and password i get this message.

image

The enhanced session button is now active but i am unable to use it due to ^. Any Ideas?

does sessman.ini and xrdp.ini listen on the same port?

@nathanVader
Copy link

In Kali with Xfce works well. It seems a different problem with Gnome environment... I'm looking for a solution...

@VictorXLR
Copy link

I posted this before in a wrong conversation. I apologize
This is what my .xinitrc file says

image

but when i run echo $DESKTOP_SESSION i get gnome

Im not used to desktop environments and im not sure what one im using atm?

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment