diff --git a/README.md b/README.md index 74fbba5..749b1dc 100644 --- a/README.md +++ b/README.md @@ -1,2 +1,9 @@ -# This Repo Has Been Archived -This repo has been archived. You can continue to use the optimized Ubuntu image that is available by default in the Hyper-V Quick Create Gallery. If you are looking for an integrated Linux developer experience on Windows, we encourage you to check out [WSL 2](https://docs.microsoft.com/en-us/windows/wsl/). WSL 2 lets developers run a GNU/Linux environment -- including most command-line tools, utilities, and applications -- directly on Windows, unmodified, without the overhead of a traditional virtual machine or dualboot setup. The ability to run Linux GUI apps in WSL is also on the [roadmap](https://devblogs.microsoft.com/commandline/whats-new-in-the-windows-subsystem-for-linux-september-2020/#gui-apps). +# Repo Overview +This repository is the home of a set of bash scripts that enable and configure an enhanced session mode on Linux VM -- especially for Kali Linux -- for Hyper-V. + +# For Kali-Linux Users. +This project's code has merged to https://gitlab.com/kalilinux/packages/kali-tweaks/-/blob/kali/master/helpers/hyperv-enhanced-mode
+So, please use "kali-tweaks" command instead of it. + +how to use: +https://www.kali.org/docs/virtualization/install-hyper-v-guest-enhanced-session-mode/ diff --git a/kali/2019.x/install.sh b/kali/2019.x/install.sh new file mode 100644 index 0000000..0913190 --- /dev/null +++ b/kali/2019.x/install.sh @@ -0,0 +1,71 @@ +#!/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 +# 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 < ~/.xinitrc +echo "exec startxfce4" > ~/.xinitrc +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." \ No newline at end of file diff --git a/kali/2020.x/install.sh b/kali/2020.x/install.sh new file mode 100644 index 0000000..7ceb268 --- /dev/null +++ b/kali/2020.x/install.sh @@ -0,0 +1,73 @@ +#!/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 +# 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 < ~/.xinitrc +#echo "exec startxfce4" > ~/.xinitrc +#echo "exec mate-session" > ~/.xinitrc exec mate-session +#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." diff --git a/kali/2021.x/install.sh b/kali/2021.x/install.sh new file mode 100644 index 0000000..85505b9 --- /dev/null +++ b/kali/2021.x/install.sh @@ -0,0 +1,78 @@ +#!/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 +# 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 < ~/.xinitrc +#echo "exec startxfce4" > ~/.xinitrc +#echo "exec mate-session" > ~/.xinitrc exec mate-session +#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." \ No newline at end of file diff --git a/ubuntu/19.04/install.sh b/ubuntu/19.04/install.sh new file mode 100644 index 0000000..199c423 --- /dev/null +++ b/ubuntu/19.04/install.sh @@ -0,0 +1,113 @@ +#!/bin/bash + +# +# This script is for Ubuntu 18.04 Bionic Beaver to download and install XRDP+XORGXRDP via +# source. +# +# Major thanks to: http://c-nergy.be/blog/?p=11336 for the tips. +# + +############################################################################### +# 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 + +############################################################################### +# XRDP +# + +# Install hv_kvp utils +apt install -y linux-tools-virtual +apt install -y linux-cloud-tools-virtual + +# Install the xrdp service so we have the auto start behavior +apt install -y xrdp + +systemctl stop xrdp +systemctl stop 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 + +# Add script to setup the ubuntu session properly +if [ ! -e /etc/xrdp/startubuntu.sh ]; then +cat >> /etc/xrdp/startubuntu.sh << EOF +#!/bin/sh +export GNOME_SHELL_SESSION_MODE=ubuntu +export XDG_CURRENT_DESKTOP=ubuntu:GNOME +exec /etc/xrdp/startwm.sh +EOF +chmod a+x /etc/xrdp/startubuntu.sh +fi + +# use the script to setup the ubuntu session +sed -i_orig -e 's/startwm/startubuntu/g' /etc/xrdp/sesman.ini + +# rename the redirected drives to 'shared-drives' +sed -i -e 's/FuseMountName=thinclient_drives/FuseMountName=shared-drives/g' /etc/xrdp/sesman.ini + +# Changed the allowed_users +sed -i_orig -e 's/allowed_users=console/allowed_users=anybody/g' /etc/X11/Xwrapper.config + +# Blacklist the vmw module +if [ ! -e /etc/modprobe.d/blacklist_vmw_vsock_vmci_transport.conf ]; then +cat >> /etc/modprobe.d/blacklist_vmw_vsock_vmci_transport.conf < /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 <&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 + +############################################################################### +# XRDP +# + +# Install hv_kvp utils +apt install -y linux-tools-virtual +apt install -y linux-cloud-tools-virtual + +# Install the xrdp service so we have the auto start behavior +apt install -y xrdp + +systemctl stop xrdp +systemctl stop 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 + +# Add script to setup the ubuntu session properly +if [ ! -e /etc/xrdp/startubuntu.sh ]; then +cat >> /etc/xrdp/startubuntu.sh << EOF +#!/bin/sh +export GNOME_SHELL_SESSION_MODE=ubuntu +export XDG_CURRENT_DESKTOP=ubuntu:GNOME +exec /etc/xrdp/startwm.sh +EOF +chmod a+x /etc/xrdp/startubuntu.sh +fi + +# use the script to setup the ubuntu session +sed -i_orig -e 's/startwm/startubuntu/g' /etc/xrdp/sesman.ini + +# rename the redirected drives to 'shared-drives' +sed -i -e 's/FuseMountName=thinclient_drives/FuseMountName=shared-drives/g' /etc/xrdp/sesman.ini + +# Changed the allowed_users +sed -i_orig -e 's/allowed_users=console/allowed_users=anybody/g' /etc/X11/Xwrapper.config + +# Blacklist the vmw module +if [ ! -e /etc/modprobe.d/blacklist_vmw_vsock_vmci_transport.conf ]; then +cat >> /etc/modprobe.d/blacklist_vmw_vsock_vmci_transport.conf < /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 <