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:

Recommended for you:

6 Comments to Kali Linux Meta-packages

  1. shaji says:

    └─# 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.

    • Alex says:

      Even before you run any of the shown commands, your system is already sick.

      Please look at:

      2 not fully installed or removed.

      See further

      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):

      Try (yes, twice):

      sudo apt purge set
      sudo apt install -f -y
      sudo apt purge set
      sudo apt install -f -y

      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.

      • shaji says:

        └─# 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

  2. dcdiag says:

    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

Leave a Reply

Your email address will not be published. Required fields are marked *