Skip to main content

i3 Window Manager on Kali Linux

When it comes to Kali I've always been using whatever it comes with, but I recently found Dewalt's amazing pimpmyi3 script and was blown away by how easy I can get i3 set up on Kali along with pimpmykali and lots of other bonus tools. It's all pretty awesome.

With a clean and fresh Kali vm ready to go you just need to cd into /opt and run the commands on the pimpmyi3 github Readme. I would either do sudo su - to become root during installation or use sudo for each command that needs it. When I run pimpmy-i3.sh I pick the first option for setting it up with the root account.

cd /opt
rm -rf pimpmyi3/
git clone https://github.com/Dewalt-arch/pimpmyi3
cd pimpmyi3
sudo ./pimpmy-i3.sh

It will take a little while to finish just like pimpmykali. When it's done you'll need to reboot. When I rebooted I noticed that i3 still wasn't installed but you can do that with apt.

Save Lists of Kali Tools in Text Files

When I set up a new Kali VM I'll create some lists of all the packages and tools that were installed on the previous VM just in case there is something I forgot about that I might want to use again or I want to know what version of a tool I was using because I may want to keep using the same version. It can be hard to remember how a tool was installed, like with dpkg, apt, pip3 or even pip so I'll create a list for each of them.

First I usually make a directory to hold the files.

mkdir installed_packages
cd installed_packages

dpkg piped into a couple other commands will give you a clean list.

dpkg --get-selections | grep -v deinstall | cut -f 1 > dpkg_installed.txt

apt list will give you the same list of packages as dpkg. This will also show all the versions.

Pipe colored winPEAS output to a file

I wanted to find a way to save the winPeas output to a text file with all the colors intact so I could view the file offline with cat in Kali and see the same colored output. I looked at tmux first since that is what I use. I found a way to do this with the Advanced-Use piping-pane-changes in tmux. With pipe-pane you can pipe the output to a command. The command that I'm doing this with is one that can read and write output. It's called is tee. The option I'm using is -a.

$ tee --help
Usage: tee [OPTION]... [FILE]...
Copy standard input to each FILE, and also to standard output.

  -a, --append              append to the given FILEs, do not overwrite

Install Juiceshop from sources in Kali

There are some vulnerabilities in Juiceshop that won't work if you use install it with docker and some other methods. XXE Data Access is one that doesn't work with the docker installation. I install Juiceshop form sources with nodejs so every vulnerability is supported. I also use fish shell and there is a little extra setup for fish.

Instead of installing nodejs with apt, it's better to use nvm. With nvm you can install multiple versions of node and switch back and forth between versions.
github.com/nvm-sh/nvm

curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.2/install.sh | bash

After it's installed you need to make sure it adds these lines to .zshrc or .bashrc, whichever one you are using.

"Running either of the above commands downloads a script and runs it. The script clones the nvm repository to ~/.nvm, and attempts to add the source lines from the snippet below to the correct profile file (~/.bash_profile, ~/.zshrc, ~/.profile, or ~/.bashrc)."

export NVM_DIR="$([ -z "${XDG_CONFIG_HOME-}" ] && printf %s "${HOME}/.nvm" || printf %s "${XDG_CONFIG_HOME}/nvm")"
[ -s "$NVM_DIR/nvm.sh" ] && \. "$NVM_DIR/nvm.sh" # This loads nvm

If you are using fish (github.com/fish-shell/fish-shell), you'll need to install a few more things and create a config file.

tmux configuration

Here is how I setup tmux in Kali. This is the file I start with or just use as it is: tmux.conf

Put the .tmux.conf file in the home directory, wherever your home may be: /home/USERNAME/.tmux.conf or /root/.tmux.conf

I usually use Kali as root. The easiest way to get started with root in Kali is with with the incredibly handy pimpmykali.

Create a tmux plugins directory inside the home directory:

cd /root/
mkdir /root/.tmux/plugins

Use git to clone tpm:

...