Fun with Windows Terminal - WSL / Kali
Previously I explained how to get started with windows terminal by setting up PowerShell Core as the default profile, Next I setup Ubuntu as my first WSL (Windows Subsystem for Linux) distro but why stop there? Next we'll go through setting up Kali, a Linux distro known for being designed for digital forensics and penetration testing (aka a heavy focus on digital security scenarios which is why I like having access to it).
For this post I'll assume that you have already setup Ubuntu or another WSL distro to look at how easy it is to add additional distros once the pre-reqs have been completed for another.
If you want to use the same icons and backgrounds as me you can find them in my terminal github repository where I sync my setup to.
Kali is now ready to finish setting up The steps are intuitive, last one being setting up a username for yourself in this distro
Launch Windows Terminal and execute
code $settings
> this will bring up VS Code with the Windows Terminal profile.json in it, look for a section with commandline="Windows.Terminal.Wsl" and name="Kali" and update it like below.{ "$schema": "https://aka.ms/terminal-profiles-schema", "defaultProfile": "{61c54bbd-c2c6-5271-96e7-009a87ff44bb}", "profiles": { "defaults": { "fontFace":"Delugia Nerd Font", "acrylicOpacity": 0.8, "useAcrylic": true, "startingDirectory": "C:\\_" }, "list": [ ... { "guid": "{46ca431a-3a87-5fb3-83cd-11ececc031d2}", "hidden": false, "name": "kali", "source": "Windows.Terminal.Wsl", "backgroundImage": "C:\\_\\_terminal\\kali.png", "backgroundImageOpacity": 0.3, "backgroundImageAlignment": "bottomRight", "backgroundImageStretchMode": "none", "icon": "C:\\_\\_terminal\\icon-kali.png" }, ... ] }, ... }
Mostly repeated from part 1, let's look at the important sections:
- [8-14] : For me I wanted to have some settings the same across profiles such as font and starting directory
- [19-27] : In order to more easily identify the terminal type (but mostly because it's fun) I've updated the profile with and icon and background image.
Now in Windows terminal you should see Kali as an option for a new tab and you should see something like this: And as great as this is, we can do better so lets add powerline
Execute the following in the new Kali terminal
sudo apt-get update sudo apt install golang-go sudo apt install git go get -u github.com/justjanne/powerline-go
- [1] : This will update the package repository cache, only needed for an initial install
- [3-5] : Installs Go, Git, and uses them to install powerline-go
Execute
code ~/.bashrc
and add the following to the bottomGOPATH=$HOME/go function _update_ps1() { PS1="$($GOPATH/bin/powerline-go -modules nix-shell,venv,ssh,cwd,perms,git,hg,jobs,exit,root,vgo -error $?)" } if [ "$TERM" != "linux" ] && [ -f "$GOPATH/bin/powerline-go" ]; then PROMPT_COMMAND="_update_ps1; $PROMPT_COMMAND" fi
Similar to the Ubuntu post the WSL Kali distro includes the
code
command for downloading and installing the VSCode server to seamlessly execute VSCode installed on your local machine.Adding these lines will enable powerline-go as part of bash. One tweak I made to this code taken from the powerline-go installation page was changing the list of default modules being loaded on line [3] to remove the username@computer from the powerline.
If you compare my Ubuntu and Kali posts you'll see that the process is nearly identical, a slight tweak to the steps to install git because Kali doesn't come with it by default and you end up with the same result. Clearly overkill but if you have penetration tests or any other security related scripts that you sync to a git repo it may be convenient to setup powerline like I have here. You can see below a screenshot of the final result.
What do you think of WSL running Kali via Windows Terminal? What is your linux distro of choice? What different customizations did you make? Share in the comments below?
Special thanks to blurrystock for the photo used in this post!