Kali Linux Meta-packages
What are meta-packages in Kali Linux for?
Meta-packages are empty packages that only describe dependencies. They facilitate the installation of a collaborative group of programs previously selected by the maintainer of the meta-package; thus the command
apt install META-PACKAGE
will automatically install all of these programs using the META-PACKAGE dependencies. The kali-desktop-gnome, kali-desktop-kde, and kali-linux-default packages are examples of meta-packages.
Meta-packages are used to install multiple packages at the same time, created as a list of dependencies on other packages. Kali Linux uses them in several ways. One way is to let users decide how many packages from the general Kali list they would like to install. Need to install packages just to run Linux itself? Do you want packages that are enough to run a penetration test in a specific area? Perhaps you want to install all the packages that Kali comes with? Meta-packages can help you with any of these tasks.
Meta-packages and Virtual Package
It is important to clearly distinguish between metapackages and virtual packages. The former are real packages (including real .deb files) whose sole purpose is to express dependencies.
Virtual packages, however, do not physically exist; they are only a means of identifying real packages based on common logical criteria (for example, services provided or compatibility with a standard program or an existing package). Sometimes virtual packages are used as short, handy, or commonly used aliases for real packages.
List of Kali Linux Metapackages
System
- kali-linux-core: A basic Kali Linux system – basic elements that are always present in any installation
- kali-linux-default: The “standard” system images that you can download from the download page (AMD64/i386) include the tools of these images
- kali-linux-light: Used to create an image of Kali-Light, a light version of the system
- kali-linux-arm: All tools suitable for ARM devices
- kali-linux-nethunter: Tools used as part of Kali NetHunter
Desktop environments/window managers
Desktop environments are full-fledged graphical shells like GNOME, Cinnamon, KDE, XFCE and others.
Window managers perform only some functions of the graphical interface, in fact, they only allow you to open several windows, add a desktop background, and can have a simple menu. Due to this simplicity, window managers consume a minimum of resources. But from the point of view of user convenience, they are inferior to a full-fledged desktop environment
- kali-desktop-core: Any key tools needed to display the GUI.
- kali-desktop-e17: Enlightenment (window manager)
- kali-desktop-gnome: GNOME (desktop environment)
- kali-desktop-i3: i3 (window manager)
- kali-desktop-kde: KDE (desktop environment)
- kali-desktop-lxde: LXDE (window manager)
- kali-desktop-mate: MATE (desktop environment)
- kali-desktop-xfce: XFCE (window manager)
Tools
- kali-tools-gpu: Tools that work best when you have access to GPU computing
- kali-tools-hardware: Hardware Hacking Tools
- kali-tools-crypto-stego: Tools based on cryptography and steganography
- kali-tools-fuzzing: For fuzzing protocols
- kali-tools-802-11: 802.11 (commonly known as “Wi-Fi”)
- kali-tools-bluetooth: For targeting Bluetooth devices.
- kali-tools-rfid: RFID tools
- kali-tools-sdr: Software-Defined Radio Tools
- kali-tools-voip: Voice over IP tools
- kali-tools-windows-resources: Any programs that can run on Windows hosts.
Menu-based tool sets
All tools in Kali Linux are structured in menus and sub-menus. Menus are a convenient way to learn about a new tool, but practically useless from the point of view of running utilities, since most of them have a command line interface.
Meta-packages are also generated from these carefully sorted lists.
When installing a meta-package, the corresponding menu item will be created automatically, and relevant programs will also be automatically placed in it.
- kali-tools-information-gathering: Used for open source intelligence (OSINT) and information gathering
- kali-tools-vulnerability: Tools for finding vulnerability
- kali-tools-web: Designed to attack web applications
- kali-tools-database: Selected tools for any database attacks
- kali-tools-passwords: Useful for password cracking attacks – online and offline brute force
- kali-tools-wireless: all tools based on wireless protocols – 802.11, Bluetooth, RFID and SDR
- kali-tools-reverse-engineering: To reverse engineer binaries
- kali-tools-exploitation: Typically used to exploit found vulnerabilities
- kali-tools-social-engineering: Designed to perform social engineering techniques
- kali-tools-sniffing-spoofing: Any tools designed for sniffing and spoofing (man-in-the-middle attack).
- kali-tools-post-exploitation: Post-exploitation tools (backdoors, stealth shells, etc.)
- kali-tools-forensics: Digital Forensics Tools – Real Time and Offline
- kali-tools-reporting: Reporting tools
Others
- kali-linux-large: Previous default tools for AMD64/i386 images
- kali-linux-everything: All the meta-packages and tools listed here
- kali-tools-top10: Most used tools (10 tools in total)
- kali-desktop-live: Used during live session when booting from image
Meta-packages for courses
Tools used for Offensive Security courses,
- offsec-awae: Advanced Web Attacks and Exploitation
- offsec-pwk: Penetration Testing with Kali
Meta-packages kali-linux, kali-desktop-common and kali-linux-*
The meta-packages kali-linux, kali-desktop-common, as well as all metapackages of the form kali-linux-* have been renamed and the old names are no longer used. If you come across them, then you are reading an outdated source.
How to install a meta-package
To install any meta-package, use a command like this:
sudo apt install META-PACKAGE1 [META-PACKAGE2] ...
One or more meta-packages can be installed at a time.
How to see which programs are included in the meta-package
To find out which programs are included in the meta-package, use a command like:
apt depends META-PACKAGE
For example:
apt depends kali-tools-wireless
Be aware that other meta-packages may be present in the output of this command!
Another way to check which programs make up the meta-package is to visit https://tools.kali.org/kali-metapackages, which lists the available meta-packages and shows the programs included in them.
Meta-packages for WSL (Windows Subsystems for Linux)
By default, no Kali Linux tools are included in the WSL image. This is done to keep the image as small as possible. Optionally, you can install any tool from the Kali Linux repository or use the meta-packages.
You can set the tool categories you need using the meta-packages described above.
For example, a set with the most popular tools for most users
sudo apt install kali-tools-information-gathering kali-tools-vulnerability kali-tools-web kali-tools-passwords kali-tools-exploitation
The easiest way to get most of the tools is to install the kali-linux-large metapackage with the following command:
sudo apt install kali-linux-large
In WSL, you don't need tools from the following meta-packages (due to lack of access to hardware):
- kali-tools-wireless (all wireless attacks)
- kali-tools-802-11 (Wi-Fi attacks)
- kali-tools-bluetooth (Bluetooth attacks)
- kali-tools-rfid
- kali-tools-sdr
- kali-tools-gpu (currently there is no access to compluting using a video card, but they promise to add it)
- kali-tools-hardware
- kali-tools-sniffing-spoofing (sniffing and spoofing is also not possible due to the fact that the WSL Linux images run on their own virtual network).
Making your own Kali Linux Metapackages
You can create and use your own metapackages to deploy the right environment for you. See “Making your own Kali Linux Metapackages” for details.
Sources:
- https://www.kali.org/docs/general-use/metapackages/
- https://tools.kali.org/kali-metapackages
- https://kali.training/topic/apt-package-reference/
- https://www.kali.org/tutorials/making-your-own-kali-linux-metapackages/
- https://www.kali.org/news/major-metapackage-makeover/
Related articles:
- How to install a package for which there is no dependency of the required version (in Kali Linux, Debian) (81%)
- Package management in Kali Linux and other Debian-based distributions (searching, installing and removing programs, troubleshooting) (69.5%)
- How to change the desktop environment in Kali Linux without reinstalling the operating system (63.8%)
- Error "E: Could not access the lock file /var/lib/dpkg/lock" in Kali Linux (SOLVED) (60.4%)
- Kali Linux updating troubleshooting (60.4%)
- How to install Go (compiler and tools) on Linux (RANDOM - 51.1%)
└─# apt install kali-tools-exploitation
Reading package lists… Done
Building dependency tree
Reading state information… Done
kali-tools-exploitation is already the newest version (2020.4.8).
0 upgraded, 0 newly installed, 0 to remove and 12 not upgraded.
2 not fully installed or removed.
After this operation, 0 B of additional disk space will be used.
Do you want to continue? [Y/n] y
Setting up set (8.0.3+git20200609-0kali2) …
[Errno 2] No such file or directory: '/usr/share/set/src/payloads/set_payloads/multi_pyinjector.py'
[Errno 2] No such file or directory: '/usr/share/set/src/payloads/set_payloads/pyinjector_args.py'
[Errno 2] No such file or directory: '/usr/share/set/src/payloads/set_payloads/shell.py'
dpkg: error processing package set (--configure):
installed set package post-installation script subprocess returned error exit status 1
dpkg: dependency problems prevent configuration of kali-tools-exploitation:
kali-tools-exploitation depends on set; however:
Package set is not configured yet.
dpkg: error processing package kali-tools-exploitation (--configure):
dependency problems - leaving unconfigured
Errors were encountered while processing:
set
kali-tools-exploitation
E: Sub-process /usr/bin/dpkg returned an error code (1)
┌──(root💀DESKTOP-NF4O0MG)-[~]
└─# apt depends kali-tools-exploitation
kali-tools-exploitation
Depends: armitage
Depends: beef-xss
Depends: exploitdb
Depends: metasploit-framework
Depends: msfpc
Depends: set
Depends: shellnoob
Depends: sqlmap
Depends: termineter
┌──(root💀DESKTOP-NF4O0MG)-[~]
└─# apt-cache showpkg set
Package: set
Versions:
8.0.3+git20200609-0kali2 (/var/lib/apt/lists/http.kali.org_kali_dists_kali-rolling_main_binary-amd64_Packages) (/var/lib/dpkg/status)
Description Language:
File: /var/lib/apt/lists/http.kali.org_kali_dists_kali-rolling_main_binary-amd64_Packages
MD5: ac8f70cda2355ffa34eda5f489af1096
Reverse Depends:
kali-linux-headless,set
kali-tools-social-engineering,set
kali-tools-exploitation,set
Dependencies:
8.0.3+git20200609-0kali2 - aircrack-ng (0 (null)) ettercap-common (0 (null)) libapache2-mod-php (0 (null)) metasploit-framework (0 (null)) nginx (0 (null)) openssl (0 (null)) python3-impacket (0 (null)) python3-openssl (0 (null)) python3-paramiko (0 (null)) python3-pefile (0 (null)) python3-pexpect (0 (null)) python3-pil (0 (null)) python3-pycryptodome (0 (null)) python3-pymssql (0 (null)) python3-qrcode (0 (null)) python3-requests (0 (null)) upx-ucl (0 (null)) python3:any (0 (null)) apache2 (0 (null)) sendmail-bin (0 (null))
Provides:
8.0.3+git20200609-0kali2 -
Reverse Provides:
┌──(root💀DESKTOP-NF4O0MG)-[~]
└─# uname -a
Linux DESKTOP-NF4O0MG 4.4.0-19041-Microsoft #488-Microsoft Mon Sep 01 13:43:00 PST 2020 x86_64 GNU/Linux
┌──(root💀DESKTOP-NF4O0MG)-[~]
└─# cat /etc/issue
Kali GNU/Linux Rolling \n \l
┌──(root💀DESKTOP-NF4O0MG)-[~]
└─#
The package installation fails with same error for set package. I had the same error ealier which was solved by purging python3.9. Do I need to do the same.
Even before you run any of the shown commands, your system is already sick.
Please look at:
See further
Try (yes, twice):
If you really want the ‘set’ package you can try installing it later. If the problem persists, you can download ‘set’ source code from GitHub and use it instead of buggy package.
Also remove the second package causing the problem.
└─# apt purge set
Reading package lists… Done
Building dependency tree
Reading state information… Done
The following packages were automatically installed and are no longer required:
ettercap-common ettercap-graphical libimagequant0 libluajit-5.1-2 libluajit-5.1-common libsybdb5 python3-bcrypt
python3-blinker python3-certifi python3-chardet python3-click python3-colorama python3-dnspython python3-flask
python3-future python3-idna python3-impacket python3-invoke python3-itsdangerous python3-jinja2 python3-ldap3
python3-ldapdomaindump python3-lib2to3 python3-markupsafe python3-nacl python3-olefile python3-openssl
python3-paramiko python3-pefile python3-pil python3-pycryptodome python3-pyinotify python3-pymssql python3-qrcode
python3-requests python3-requests-toolbelt python3-simplejson python3-urllib3 python3-werkzeug python3-yaml
Use 'apt autoremove' to remove them.
The following packages will be REMOVED:
set*
0 upgraded, 0 newly installed, 1 to remove and 12 not upgraded.
1 not fully installed or removed.
After this operation, 50.9 MB disk space will be freed.
Do you want to continue? [Y/n] y
(Reading database … 189274 files and directories currently installed.)
Removing set (8.0.3+git20200609-0kali2) …
dpkg: error processing package set (--remove):
unable to securely remove '/usr/share/set/src/payloads/set_payloads/shell.py': No such file or directory
dpkg: too many errors, stopping
Errors were encountered while processing:
set
Processing was halted because there were too many errors.
E: Sub-process /usr/bin/dpkg returned an error code (1)
┌──(root💀DESKTOP-NF4O0MG)-[~]
The removal also ends in error
Any suggestions for above error
typo in
sudo
apt
install
kali-tools-information-gathering kali-tools-vulnerability kali-tools-web kali-tools-password kali-tools-exploitation
should be
kali-tools-passwords
Thank you! Fixed.