This script automates the installation of a wide range of penetration testing tools on a Debian-based Linux distribution. It is designed to be flexible and customizable, allowing users to select which tools and categories of tools to install via a simple JSON configuration file.
- Customizable Installation: Use the
tools_config.jsonfile to select which tools and categories to install. - Isolated Python Environments: Python-based tools are installed using
pipxto prevent dependency conflicts. - Automatic Shell Detection: The script automatically detects your shell (bash, zsh, fish) and updates the correct configuration file.
- Go and Python Installation: Installs specified versions of Go and Python.
- Virtual Environment Support: Optionally creates a dedicated Python virtual environment for tools that are not installed via
pipx. - Installation Report: Generates a detailed report of the installed tools.
To run the script, use the following command:
sudo bash install_pentest_tools.shThe script needs to be run with sudo because it installs packages using apt and writes to system directories.
The installation is controlled by the tools_config.json file. You can edit this file to enable or disable the installation of individual tools or entire categories of tools.
The tools_config.json file is organized into categories, such as web_application, reconnaissance, cloud_security, etc. You can enable or disable a whole category by setting the "enabled" flag to true or false.
Within each category, you can enable or disable individual tools by setting their "enabled" flag.
The script supports several installation types:
apt: Installs the tool using theaptpackage manager.go: Installs the tool usinggo install.pipx: Installs Python-based tools in isolated environments usingpipx.custom: Installs the tool using a custom shell command defined in theinstall_cmdfield.
After the script has finished, you may need to open a new terminal or source your shell's configuration file for the changes to take effect. The script will automatically detect your shell and modify the appropriate file (.bashrc, .zshrc, etc.).
For example, if you are using zsh, you would run:
source ~/.zshrcAn installation report will be generated at install_report.txt in the script's directory.
A verification script is included to check the status of the installed tools. To use it, first make it executable:
chmod +x verify_tools.shThen, run the script:
./verify_tools.shThe script will read the tools_config.json file and report which tools are installed and which are not, based on their verify_cmd.