Kali Linux 2020.4 Release (ZSH, Bash, CME, MOTD, AWS, Docs, Win-KeX & Vagrant)

Table of Contents

We find ourselves in the 4th quarter of 2020, and we are ecstatic to announce the release of Kali Linux 2020.4, which is ready for immediate download or updating.

What’s different with this release since 2020.3 in August 2020 is:

ZSH Shell By Default

In our previous quarterly release, 2020.3, we gave a heads up that we will be switching from Bash to ZSH as our default shell going forwards (where possible). We are happy to announce that after testing and feedback from users, the switch has now happened. Say hello to ZSH:

└─$ echo "Hello World. I'm $0"
Hello World. I'm zsh


Thank you to everyone who provided positive and constructive feedback. We are happy with it, and hope you are too. With that said, we know we cannot please everyone with it (so if you wish to revert back to Bash, please do: chsh -s /bin/bash).

ZSH will be the default shell on our desktop images (amd64/i386), and cloud. For the time being, other platforms (e.g. ARM, containers, NetHunter, WSL/) will still use Bash. We hope to switch more over in later versions. If you use adduser, regardless of the platform, it will also default to Bash for the time being (to avoid some edge cases of items breaking). In time, this will be changed as well.

How do I get it? Good question! If you:

  • Do a fresh install of Kali Linux 2020.4 or later, it will “just happen” during the setup.
  • If you are updating Kali, you will need to switch each user to ZSH (e.g. non-root & root since Kali Linux does not use the root account since 2020.1/).

I need to switch. How do I? This can be done by applying our default zshrc file. If you are not already using ZSH, you can simply copy it over. If you are, you will need to overwrite (make sure to backup first):

kali@kali:~$ [ -e ~/.zshrc ] && cp -i ~/.zshrc{,.bak}
kali@kali:~$ cp -i /etc/skel/.zshrc ~/
kali@kali:~$ chsh -s /bin/zsh
kali@kali:~$ zsh

If you’re reading this, you may also be the type of person who likes Easter eggs - our prompts contain a few! If you go looking you may find a few gems (e.g. new_line_before_prompt & root vs non-root)._

Bash Shell Makeover

Kali Linux now has a universal, cross-shell theme.

Whilst we were tweaking ZSH, we also updated our Bash prompt ($PS1), to make it feel similar (but not act similar) to our ZSH prompt. We started playing with the Bash prompt in Kali Linux 2020.3, when the colors changed for non-root users, from red to blue. Before then, we had not changed it since Kali Linux was first released.

How do I get it? Another good question! Very similar answer to ZSH, but this time using .bashrc instead. If you are doing:

  • A fresh installation of Kali Linux 2020.4 or later, it’s already applied.
  • If you are updating Kali, you will need to configure each user (e.g. non-root & root/)

If you have made any alterations to ~/.bashrc, make sure to back it up before replacing it:

kali@kali:~$ cp -i .bashrc{,.bak}
kali@kali:~$ cp -i /etc/skel/.bashrc ~/
kali@kali:~$ source ~/.bashrc
└─$ echo "Hello World. I'm $0"
Hello World. I'm bash

If you look & edit the contents of .bashrc, you can switch to the red “BackTrack” prompt to be nostalgic.

Partnership with tools authors: byt3bl33d3r’s CrackMapExec (CME)

Kali Linux is part of the greater community and we want to support tool authors where possible. If you have not heard of CrackMapExec (a.k.a CME), you may be missing a trick (or three) when it comes to doing infrastructure assessments (especially involving Active Directory).

We noticed that byt3bl33d3r made the decision to move to a sponsorware model. You may or may not agree with his decision, but we understand his reasoning. The tools which he makes are highly valuable and relied upon by many. We want to support him and our Kali Linux users. After various calls and email exchanges, we are delighted to reveal Kali has partnered with byt3bl33d3r.

What does this mean for me? The Kali package of CME is now pulling from a private source, allowing Kali Linux users to get access to the newest changes in CME 30 days before the tool is made public to everyone else. If you don’t use Kali, you either need to sponsor directly or wait for it to be released after 30 days.

Why are you doing this? Because we believe in Open-source and the community as a whole. This way, everyone benefits; both authors and users.

Kali is Open-source. What is stopping me from stealing/ripping/cloning from you? The code will be distributed with a banner saying something along the lines of, “for Kali users only”. Removing/altering the code will break the software license thus breaking copyright law. Do not be that guy.

Is that it? Yes! Kali Linux is Open-source. We understand and respect software licenses, and by doing so we hope to keep everything Open-source as much as possible. Putting checks & protection in place, you may be happy using someone else’s cracked/pirated software (warez) - but do you know what has been altered under the hood?

But Kali Linux being Open-source, has to respect other people license agreements, as do any other respectable organizations. This also includes when tools which have their license agreements changed in software updates, as a result, we have removed them from Kali.

We have more to announce about direction step in a 2021.x release (as well as looking for other authors to sponsor with). Stay tuned for more information!

Message At Login

We have noticed there being a large uprise of the amount of people saying “Kali Linux is missing ‘XYZ’” or “XYZ feature is broken”, when this is not always the case. We have done our best to write up various issues on our docs pages, however it appears they are not always being read. We also know that not everyone has a unix beard as long as @elwood-offsec, but hope you still are an experienced Linux user. There is always a reason why something is the way it is, but it may require more than the usual basic troubleshooting.

With all of that said, we are wanting to improve our communications going forwards. Most of the actions in Kali are done by the command line. So now, upon logging into a Kali terminal or console, you may be presented with a mixture of the following (depending on the configuration of your system, as it is dynamic):

$ ssh [email protected]
Last login: Thu Nov 12 15:12:29 2020 from
┏━(Message from Kali developers)
┃ This is a minimal installation of Kali Linux, you likely
┃ want to install supplementary tools. Learn how:
┃ ⇒
┃ This is a cloud installation of Kali Linux. Learn more about
┃ the specificities of the various cloud images:
┃ ⇒
┃ We have kept /usr/bin/python pointing to Python 2 for backwards
┃ compatibility. Learn how to change this and avoid this message:
┃ ⇒
┗━(Run "touch ~/.hushlogin"

We hope this helps various common problems to be quickly fixed, but at the same time, not feel intrusive. Each of the issues have a link to our documentation page in order to correct the issue. After its been addressed, the message should not be displayed again. For whatever reason (unable or do not want to), you can permanently hide any messages from us being displayed by doing: touch ~/.hushlogin (per user) or touch /etc/kali-motd/disable-all (for a global setting).

We have a few other things in the works to help communicate items out planned for 2021.x. Stay tuned!

AWS EC2 Cloud Image Refresh

Kali Linux has been on AWS since 1.0.6. Over the years, we have done various refreshes of our build-scripts to produce the cloud images. Finally with Kali 2020.2, we have a fully automated system in place. However during the changeover, we were shipping the image without any GUI or any tools by default. This was to give the cleanest, smallest image as possible. In hindsight, we didn’t communicate this change over well, and a lot of you noticed “tools missing” (as kali-linux-default was not included/). However, in 2020.4, we have created a new metapackage, kali-linux-headless, and included it which only has the default set of command line tools.

Upon doing the refresh, we have worked with AWS to get Kali Linux added to “GovCloud”. Which may be useful to a certain audience. With how the accounts were setup, we have had to start from fresh. As a result, we have a new marketplace entry.

What does this mean for people who are using the old entry? As Kali Linux is a rolling distribution, not a lot! You can still keep updating Kali Linux as usual. However, you will no longer be able to spin up the latest version using the latest instance. For that, you will need to switch to the new entry.

Note: We have tried to say it as many different places as possible, but putting it here is not going to hurt. The default login for AWS EC2 username is “kali” (not the standard “ec2-user”).

Kali-Docs & Packaging Guides

In 2019.4, we moved from a WordPress solution to using Hugo. In September, we finished (for now) tweaking the theme, making it easier to use, super fast at loading and easier to anyone to edit.

We have started to go though all the pages and refreshing them, bringing them all up-to-date, and adding more in. We are doing it section by section, and so far have completed the first three (so we still have a way to go! After it is completed, it will be easier to keep them up-to-date, making it an on-going task. For the sections that are missing or lacking content, we have been generating issues to help track. If you want to help get involved with Kali Linux, this is an easy place to start.

We have also created various new pages, all about our packaging process:

We have also the pages from our login messages:

And various other pages created:

New Tools & Updates

As with every Kali release, there are new tools and updates. The kernel got an upgrade to 5.9, so you benefit with all the loveliness that that brings. We have switched to “proxychains4” (aka ProxyChains-NG) as the default (everything from v3 should still work: same flags and configuration files & folder locations for legacy users, else the paths will reflect the version if starting from fresh). Also, GNOME was updated to 3.38 & KDE to 5.19.

New tools in Kali Linux:

One last thing. We have tweaked how we handle our wallpaper packages:

  • kali-wallpapers-all ~ Give me all the wallpapers
  • kali-wallpapers-2019.4 ~ Default for Kali Linux between 2019.4 and 2020.3
  • kali-wallpapers-2020.4 ~ Default for Kali Linux between 2020.4 and onwards
  • kali-wallpapers-legacy ~ Nostalgic value

Kali NetHunter

@yesimxev has added a new settings menu, allowing for easy back up and restore of configuration files. It also allows you to change the Kali NetHunter boot animation. How is this as a teaser?

Call on all boot animation devs out there: We’d love to hear from you. If you have a cool boot animation you’d like to share, please submit a merge request to our Kali NetHunter boot animation repository.

The new images also contain a “Magisk persistence” module, so we no longer have to flash Magisk again after we installed Kali NetHunter.

Win-KeX 2.5

Win-KeX 2.5 includes a new “Enhanced Session Mode (–esm)”, which works like the “Window” mode but uses the Remote Deskop Protocol (RDP/) & client native to Windows. This mode will allow users of “Windows on ARM” devices to use Win-KeX and it adds sharpness to Win-KeX on HiDPI devices.

We have also added a --ip option to address a bug in WoA causing massive packet losses when using “localhost”. To start Win-KeX with sound on arm devices, just type:

kali@kali:~$ kex --esm --ip --sound

The --ip parameter has one little downside though: Win-KeX asks for the Kali Linux user password when launched for the first time and stores it in the Windows credentials store. Since the IP address changes after every reboot, you will be prompted again. This is a known WSL2 bug and we’ll expect it to be fixed soon so that we can drop the --ip parameter and we’ll never have to enter the password again.

Win-KeX 2.5 on a Surface Pro X

Kali Vagrant & VMware

We have had a Vagrant image since Kali Linux 2018.3. However, it’s always been for VirtualBox. Until now. We are now also producing a VMware Vagrant image!

Note, you will need to have a separate license for both VMware and Vagrant for this to work, as it is a paid-for plugin. For more information, you can see here and here.

Kali ARM devices

We have been working away on our ARM images as usual, and this release is no exception. We have reduced the amount of pre-generated images (now 14) as there has not been the demand for these other devices. We have left their build scripts (now up to 43 devices supported), in case you wish to generate the images yourself.

Community Shoutouts

Following on from last time, these are people from the public who have helped Kali and the team for the last release. We are super grateful and want to praise them for their work (giving credit where due!):

  • @1y for generating a ARM build script for a new device, imx6-ull-evk
  • @dracode for the awesome work on NetHunter, in particular the GPS fixes.
  • @mirivan for all the amazing additions and fixes to NetHunter as well as helping out with the issue tracker.
  • @TheMMcOfficial for his continued help with NetHunter and DuckHunter
  • @Martinvlba for his great contributions to NetHunter, especially hostapd
  • @s133py for all the tireless work on NetHunter and helping with issues

Not a community member per se, but we do want to give an honorable mention to GitLab. Kali Linux is now a Open-Source Partner (different to their Open-Source Program). We made the switch middle of 2019, and we could not have been happier. Thank you GitLab for supporting us, and for everything you do for the Open-source communities as a whole!

And on the subject, Kali Linux is apart of Docker’s Open-source Community.

Download Kali Linux 2020.4

Fresh Images: So what are you waiting for? Start downloading already!

Seasoned Kali Linux users are already aware of this, but for the ones who are not, we do also produce weekly builds that you can use as well. If you cannot wait for our next release and you want the latest packages when you download the image, you can just use the weekly image instead. This way you’ll have fewer updates to do. Just know that these are automated builds that we do not QA like we do our standard release images. But we gladly take bug reports about those images because we want any issues to be fixed before our next release.

Existing Upgrades: If you already have an existing Kali Linux installation, remember you can always do a quick update, followed by setting the default shell to ZSH. If you’re already using ZSH, and want our new configuration, you can do the following:

kali@kali:~$ echo "deb kali-rolling main contrib non-free" | sudo tee /etc/apt/sources.list
kali@kali:~$ sudo apt update && sudo apt -y full-upgrade
kali@kali:~$ cp -i /etc/skel/.bashrc ~/
kali@kali:~$ cp -i /etc/skel/.zshrc ~/
kali@kali:~$ chsh -s /bin/zsh
kali@kali:~$ [ -f /var/run/reboot-required ] && sudo reboot -f

You should now be on Kali Linux 2020.4. We can do a quick check by doing:

kali@kali:~$ grep VERSION /etc/os-release
kali@kali:~$ uname -v
#1 SMP Debian 5.9.1-1kali2 (2020-10-29)
kali@kali:~$ uname -r

NOTE: The output of uname -r may be different depending on the system architecture.

As always, should you come across any bugs in Kali, please submit a report on our bug tracker. We’ll never be able to fix what we do not know is broken! And Twitter is not a Bug Tracker!

Table of Contents