Skip to content

Instantly share code, notes, and snippets.

@mimura1133
Last active January 29, 2023 21:24
Show Gist options
  • Star 21 You must be signed in to star a gist
  • Fork 9 You must be signed in to fork a gist
  • Save mimura1133/25451be04929d65993e0fb658d0b6890 to your computer and use it in GitHub Desktop.
Save mimura1133/25451be04929d65993e0fb658d0b6890 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
sed -i_orig -e 's/port=3389/port=vsock://-1:3389/g' /etc/xrdp/xrdp.ini # 2020.1 support.
# 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
# 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."
@Nathan-Gautrey
Copy link

Likewise just tried it on Kali 2020.02 (upgraded hyper-v image from 2019.4), only worked once Kali was fully shut down (rather than a reboot) after that worked like a charm.

Thanks @mimura1133

@under-hill
Copy link

FYI: for Kali 2020.3 I had to replace the sed slashes ('/') with percent signs ('%') as described here https://serverfault.com/questions/857477/sed-e-expression-unknown-option-to-s

Besides that, everything else worked great.

Thanks @mimura1133

@holidayz1
Copy link

Hi Team,
This worked fine for me earlier but I am having issue finding xrdp package in Kali Repo with Kali 2021.1 ( it 404ed ),
anyone hitting the same issue,

( though if i get the repo via deb.debian then it also doesn't works )
any advice would be really appreciated :)

@mimura1133
Copy link
Author

mimura1133 commented May 14, 2021

@holidayz1
Copy link

Thanks @mimura1133
yes, I believe tried https://github.com/mimura1133/linux-vm-tools/blob/master/kali/2020.x/install.sh , It didn't worked.
Though I tried linux-vm-tools/ubuntu/19.04/install.sh since i got xrdp from deb.debian and it worked like a charm

@mimura1133
Copy link
Author

Hi @holidayz1,
Unfortunately, I have not been able to reproduce the problem with clean installation.
However, if you using GNOME (gdm3) or latest version of xrdp, the ubuntu/19.04/install.sh be better, as you said.

if you're using GNOME shell (gdm3), need to set "WaylandEnable=false" at /etc/gdm3/custom.conf, because the xrdp will use Xorg.
other changes are in the way the VSOCK settings are written.

If you know of a way to improve the code in the kali version, please send us a pull request, thanks. :)

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