WeaponizeKali.sh

Automate installation of extra pentest tools on Kali Linux

View on GitHub

banner

WeaponizeKali.sh is a Bash script aimed at automating the process of downloading and installing extra tools for internal penetration tests with Kali Linux.

Basic principles behind this project are:

  1. Use bleeding-edge versions of offensive toolkits to possess their latest features and fixes.
  2. When installing 3rd party software, use isolated environments to minimize potential dependency hell.
  3. Keep Windows exploitation scripts and binaries on hand in case you find yourself in an “offline situation”.

The script will create two directories within CWD: tools and www. The first one contains all the tools that will be installed on Kali. The second one contains all the scripts and binaries that will be downloaded and may be delivered onto the victim host later.

Usage

WeaponizeKali.sh heavily relies on Python virtual environments and uses pipx and poetry to orchestra venvs.

In order to launch the bleeding-edge version of a tool installed with pipx and not the version that is already shipped with Kali, you should modify the PATH variables:

  1. Modify PATH for a normal user with any method you want (.bashrc / .profile / .zshrc / etc.): export PATH="$HOME/.local/bin:$PATH".
  2. Modify PATH for the superuser by modifying secure_path within sudoers (sudo visudo):

sudoers

Now you can download WeaponizeKali.sh and run it from your home directory (pip may prompt for unlocking the keyring during the process). When it’s done, you can check the results in ~/tools and ~/www:

~$ cd
~$ curl -sL https://github.com/penetrarnya-tm/WeaponizeKali.sh/raw/main/WeaponizeKali.sh | bash -s -- -idtw
~$ ls -la tools www

:warning: Warning: when using the -i switch, existing ./tools and ./www directories will be deleted.

If you only want to get the deliverable scripts and binaries (i.e., www directory), you can do it like this:

~$ mkdir www
~$ curl -sL https://github.com/penetrarnya-tm/WeaponizeKali.sh/raw/main/WeaponizeKali.sh | bash -s -- -w
~$ ls -la www

It’s recommended to run WeaponizeKali.sh once on a clean installation of Kali Linux.

Rerun the Installations

To execute WeaponizeKali.sh with full set of arguments again after it has already been ran once, remove the existent virtual environments first and then run the script:

~$ cd
~$ rm -rf ~/.local/pipx
~$ ./WeaponizeKali.sh -idtw

Help

~$ ./WeaponizeKali.sh -h
                                                         )
 (  (                                                  ( /(       (                )
 )\))(   '   (     )                    (         (    )\())   )  )\ (          ( /(
((_)()\ )   ))\ ( /(  `  )    (    (    )\  (    ))\  ((_)\ ( /( ((_))\     (   )\())
_(())\_)() /((_))(_)) /(/(    )\   )\ )((_) )\  /((_) _ ((_))(_)) _ ((_)    )\ ((_)\
\ \((_)/ /(_)) ((_)_ ((_)_\  ((_) _(_/( (_)((_)(_))  | |/ /((_)_ | | (_)   ((_)| |(_
 \ \/\/ / / -_)/ _` || '_ \)/ _ \| ' \))| ||_ // -_) | ' < / _` || | | | _ (_-<| ' \
  \_/\_/  \___|\__,_|| .__/ \___/|_||_| |_|/__|\___| |_|\_\\__,_||_| |_|(_)/__/|_||_|
                     |_|
                           "the more tools you install, the more you are able to PWN"
                    { https://github.com/penetrarnya-tm/WeaponizeKali.sh } { vX.Y.Z }

usage: WeaponizeKali.sh [-h] [-i] [-d] [-t] [w]

optional arguments:
  -h                    show this help message and exit
  -i                    initialize filesystem (re-create ./tools and ./www directories)
  -d                    resolve dependencies
  -t                    download and install tools on Kali Linux
  -w                    download scripts and binaries for delivering onto the victim host

extra/

Evil-WinRM

Install the laster version of Evil-WinRM using rbenv:

~$ ./evil-winrm.sh

PowerShellArmoury

Create armored .ps1 scripts containing all the PowerShell tools you want with PowerShellArmoury:

PS > . .\New-PSArmoury.ps1
PS > New-PSArmoury -ValidateOnly -Config PSArmoury.json
PS > New-PSArmoury -Path armored.ps1 -Config PSArmoury.json -EnhancedArmour

misc/

Get a random name of a .exe or .dll binary:

~$ EXE="`curl -sL https://github.com/penetrarnya-tm/WeaponizeKali.sh/raw/main/misc/binaries.txt | shuf -n1`.exe"
~$ DLL="`curl -sL https://github.com/penetrarnya-tm/WeaponizeKali.sh/raw/main/misc/system32-dlls.txt | shuf -n1`.dll"

Available Tools

tools/

www/